manage

package
v1.65.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 25, 2020 License: BSD-3-Clause Imports: 22 Imported by: 2

Documentation

Overview

Package manage p2p manage

Index

Constants

This section is empty.

Variables

View Source
var CacheLimit int32 = 50

CacheLimit cachebuffer

Functions

This section is empty.

Types

type ConnManager

type ConnManager struct {
	Done chan struct{}
	// contains filtered or unexported fields
}

ConnManager p2p connection manager

func NewConnManager

func NewConnManager(host core.Host, discovery *net.Discovery, tracker *metrics.BandwidthCounter, cfg *p2pty.P2PSubConfig) *ConnManager

NewConnManager new connection manager

func (*ConnManager) AddNeighbors

func (s *ConnManager) AddNeighbors(pr *peer.AddrInfo)

AddNeighbors add neighbors by peer info

func (*ConnManager) BandTrackerByProtocol added in v1.65.0

func (s *ConnManager) BandTrackerByProtocol() *types.NetProtocolInfos

BandTrackerByProtocol returan allprotocols bandinfo

func (*ConnManager) BoundSize

func (s *ConnManager) BoundSize() (insize int, outsize int)

BoundSize get in out conn bound size

func (*ConnManager) CheckDiraction

func (s *ConnManager) CheckDiraction(pid peer.ID) network.Direction

CheckDiraction 检查连接的节点ID是被连接的还是主动连接的

func (*ConnManager) Close

func (s *ConnManager) Close()

Close close connection manager

func (*ConnManager) Delete

func (s *ConnManager) Delete(pid peer.ID)

Delete delete peer by id

func (*ConnManager) FetchConnPeers

func (s *ConnManager) FetchConnPeers() []peer.ID

FetchConnPeers 获取连接的Peer's ID 这个连接包含被连接的peer以及主动连接的peer.

func (*ConnManager) FetchNearestPeers

func (s *ConnManager) FetchNearestPeers() []peer.ID

FetchNearestPeers fetch nearest peer ids

func (*ConnManager) Get

func (s *ConnManager) Get(pid peer.ID) *peer.AddrInfo

Get get peer add info by id

func (*ConnManager) GetLatencyByPeer

func (s *ConnManager) GetLatencyByPeer(pids []peer.ID) map[string]time.Duration

GetLatencyByPeer get peer latency by id

func (*ConnManager) GetNetRate added in v1.65.0

func (s *ConnManager) GetNetRate() metrics.Stats

GetNetRate get rateinfo

func (*ConnManager) InBounds

func (s *ConnManager) InBounds() []peer.ID

InBounds get in bounds conn peers

func (*ConnManager) InboundSize

func (s *ConnManager) InboundSize() int

InboundSize get inbound conn size

func (*ConnManager) IsNeighbors

func (s *ConnManager) IsNeighbors(pid peer.ID) bool

IsNeighbors check is neighbors by id

func (*ConnManager) MonitorAllPeers

func (s *ConnManager) MonitorAllPeers(seeds []string, host core.Host)

MonitorAllPeers monitory all peers

func (*ConnManager) OutBounds

func (s *ConnManager) OutBounds() []peer.ID

OutBounds get out bounds conn peers

func (*ConnManager) OutboundSize

func (s *ConnManager) OutboundSize() int

OutboundSize get outbound conn size

func (*ConnManager) RateCaculate added in v1.65.0

func (s *ConnManager) RateCaculate(ratebytes float64) string

RateCaculate means bytes sent / received per second.

func (*ConnManager) Size

func (s *ConnManager) Size() int

Size connections size

type Conngater added in v1.65.0

type Conngater struct {
	// contains filtered or unexported fields
}

Conngater gater struct data

func NewConnGater added in v1.65.0

func NewConnGater(host *host.Host, cfg *p2pty.P2PSubConfig, timecache *TimeCache) *Conngater

NewConnGater connect gater

func (*Conngater) InterceptAccept added in v1.65.0

func (s *Conngater) InterceptAccept(n network.ConnMultiaddrs) (allow bool)

InterceptAccept tests whether an incipient inbound connection is allowed.

func (*Conngater) InterceptAddrDial added in v1.65.0

func (s *Conngater) InterceptAddrDial(_ peer.ID, m multiaddr.Multiaddr) (allow bool)

InterceptAddrDial tests whether we're permitted to dial the specified multiaddr for the given peer.

func (*Conngater) InterceptPeerDial added in v1.65.0

func (s *Conngater) InterceptPeerDial(p peer.ID) (allow bool)

InterceptPeerDial tests whether we're permitted to Dial the specified peer.

func (*Conngater) InterceptSecured added in v1.65.0

func (s *Conngater) InterceptSecured(_ network.Direction, _ peer.ID, n network.ConnMultiaddrs) (allow bool)

InterceptSecured tests whether a given connection, now authenticated, is allowed.

func (*Conngater) InterceptUpgraded added in v1.65.0

func (s *Conngater) InterceptUpgraded(n network.Conn) (allow bool, reason control.DisconnectReason)

InterceptUpgraded tests whether a fully capable connection is allowed.

type PeerInfoManager

type PeerInfoManager struct {
	// contains filtered or unexported fields
}

PeerInfoManager peer info manager

func NewPeerInfoManager

func NewPeerInfoManager(host host.Host, cli queue.Client, timecache *TimeCache, callFunc PruePeers) *PeerInfoManager

NewPeerInfoManager new peer info manager

func (*PeerInfoManager) Add

func (p *PeerInfoManager) Add(pid string, info *types.Peer)

Add add peer info

func (*PeerInfoManager) Close

func (p *PeerInfoManager) Close()

Close close peer info manager

func (*PeerInfoManager) Copy

func (p *PeerInfoManager) Copy(dest *types.Peer, source *types.P2PPeerInfo)

Copy copy peer info

func (*PeerInfoManager) FetchPeerInfosInMin

func (p *PeerInfoManager) FetchPeerInfosInMin() []*types.Peer

FetchPeerInfosInMin fetch peer info

func (*PeerInfoManager) GetPeerInfoInMin

func (p *PeerInfoManager) GetPeerInfoInMin(key string) *types.Peer

GetPeerInfoInMin get peer info

func (*PeerInfoManager) Start added in v1.65.0

func (p *PeerInfoManager) Start()

Start monitor peer info

type PruePeers added in v1.65.0

type PruePeers func(pids peer.ID, beBlack bool)

PruePeers close peer and put it into blacklist is beBlock is true.

type TimeCache added in v1.65.0

type TimeCache struct {
	Q *list.List
	M map[string]time.Time
	// contains filtered or unexported fields
}

TimeCache data struct

func NewTimeCache added in v1.65.0

func NewTimeCache(ctx context.Context, span time.Duration) *TimeCache

NewTimeCache new timecache obj.

func (*TimeCache) Add added in v1.65.0

func (tc *TimeCache) Add(s string, lifetime time.Duration)

Add add key

func (*TimeCache) Has added in v1.65.0

func (tc *TimeCache) Has(s string) bool

Has check key

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL