mirror of
https://github.com/ipfs/kubo.git
synced 2025-08-06 19:44:01 +08:00
34 lines
684 B
Go
34 lines
684 B
Go
package bitswap
|
|
|
|
import (
|
|
key "gx/ipfs/Qmce4Y4zg3sYr7xKM5UueS67vhNni6EeWgCRnb7MbLJMew/go-key"
|
|
"sort"
|
|
)
|
|
|
|
type Stat struct {
|
|
ProvideBufLen int
|
|
Wantlist []key.Key
|
|
Peers []string
|
|
BlocksReceived int
|
|
DupBlksReceived int
|
|
DupDataReceived uint64
|
|
}
|
|
|
|
func (bs *Bitswap) Stat() (*Stat, error) {
|
|
st := new(Stat)
|
|
st.ProvideBufLen = len(bs.newBlocks)
|
|
st.Wantlist = bs.GetWantlist()
|
|
bs.counterLk.Lock()
|
|
st.BlocksReceived = bs.blocksRecvd
|
|
st.DupBlksReceived = bs.dupBlocksRecvd
|
|
st.DupDataReceived = bs.dupDataRecvd
|
|
bs.counterLk.Unlock()
|
|
|
|
for _, p := range bs.engine.Peers() {
|
|
st.Peers = append(st.Peers, p.Pretty())
|
|
}
|
|
sort.Strings(st.Peers)
|
|
|
|
return st, nil
|
|
}
|