mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-27 05:17:49 +08:00
41 lines
845 B
Go
41 lines
845 B
Go
package bitswap
|
|
|
|
import (
|
|
"sort"
|
|
|
|
cid "gx/ipfs/QmV5gPoRsjN1Gid3LMdNZTyfCtP2DsvqEbMAmz82RmmiGk/go-cid"
|
|
)
|
|
|
|
type Stat struct {
|
|
ProvideBufLen int
|
|
Wantlist []*cid.Cid
|
|
Peers []string
|
|
BlocksReceived int
|
|
DataReceived uint64
|
|
BlocksSent int
|
|
DataSent uint64
|
|
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
|
|
st.BlocksSent = bs.blocksSent
|
|
st.DataSent = bs.dataSent
|
|
st.DataReceived = bs.dataRecvd
|
|
bs.counterLk.Unlock()
|
|
|
|
for _, p := range bs.engine.Peers() {
|
|
st.Peers = append(st.Peers, p.Pretty())
|
|
}
|
|
sort.Strings(st.Peers)
|
|
|
|
return st, nil
|
|
}
|