Versions in this module Expand all Collapse all v0 v0.11.0 Mar 24, 2026 Changes in this version + var ErrIncomingConnectionsLimitExceeded = errors.New("incoming connections limit exceeded") + var ErrInvalidConnectionDirection = errors.New("invalid connection direction") + var ErrInvalidNetworkName = errors.New("invalid network name") + var ErrInvalidVersion = errors.New("versions are too different") + var ErrOutgoingConnectionsLimitExceeded = errors.New("outgoing connections limit exceeded") + var ErrPeerAlreadyConnected = errors.New("peer already connected") + var ErrPeerBlackListed = errors.New("peer is black listed") + var ErrPeerSuspended = errors.New("peer is suspended") + func NewSkipFilter(list *messages.SkipMessageList) conn.SkipFilter + type DuplicateChecker interface + Add func([]byte) bool + type MockPeerManager struct + func NewMockPeerManager(t interface{ ... }) *MockPeerManager + func (_m *MockPeerManager) EXPECT() *MockPeerManager_Expecter + func (_mock *MockPeerManager) AddToBlackList(peer1 peer.Peer, blockTime time.Time, reason string) + func (_mock *MockPeerManager) AskPeers() + func (_mock *MockPeerManager) BlackList() []storage.BlackListedPeer + func (_mock *MockPeerManager) CheckPeerInLargestScoreGroup(p peer.Peer) (peer.Peer, bool) + func (_mock *MockPeerManager) CheckPeerWithMaxScore(p peer.Peer) (peer.Peer, bool) + func (_mock *MockPeerManager) ClearBlackList() error + func (_mock *MockPeerManager) Close() error + func (_mock *MockPeerManager) Connect(context1 context.Context, tCPAddr proto.TCPAddr) error + func (_mock *MockPeerManager) ConnectedCount() int + func (_mock *MockPeerManager) Disconnect(peer1 peer.Peer) + func (_mock *MockPeerManager) EachConnected(fn func(peer.Peer, *proto.Score)) + func (_mock *MockPeerManager) KnownPeers() []storage.KnownPeer + func (_mock *MockPeerManager) NewConnection(peer1 peer.Peer) error + func (_mock *MockPeerManager) Score(p peer.Peer) (*proto.Score, error) + func (_mock *MockPeerManager) SpawnIncomingConnection(ctx context.Context, conn net.Conn) error + func (_mock *MockPeerManager) SpawnOutgoingConnections(context1 context.Context) + func (_mock *MockPeerManager) Spawned() []proto.IpPort + func (_mock *MockPeerManager) Suspend(peer1 peer.Peer, suspendTime time.Time, reason string) + func (_mock *MockPeerManager) Suspended() []storage.SuspendedPeer + func (_mock *MockPeerManager) UpdateKnownPeers(knownPeers []storage.KnownPeer) error + func (_mock *MockPeerManager) UpdateScore(p peer.Peer, score *proto.Score) error + type MockPeerManager_AddToBlackList_Call struct + func (_c *MockPeerManager_AddToBlackList_Call) Return() *MockPeerManager_AddToBlackList_Call + func (_c *MockPeerManager_AddToBlackList_Call) Run(run func(peer1 peer.Peer, blockTime time.Time, reason string)) *MockPeerManager_AddToBlackList_Call + func (_c *MockPeerManager_AddToBlackList_Call) RunAndReturn(run func(peer1 peer.Peer, blockTime time.Time, reason string)) *MockPeerManager_AddToBlackList_Call + type MockPeerManager_AskPeers_Call struct + func (_c *MockPeerManager_AskPeers_Call) Return() *MockPeerManager_AskPeers_Call + func (_c *MockPeerManager_AskPeers_Call) Run(run func()) *MockPeerManager_AskPeers_Call + func (_c *MockPeerManager_AskPeers_Call) RunAndReturn(run func()) *MockPeerManager_AskPeers_Call + type MockPeerManager_BlackList_Call struct + func (_c *MockPeerManager_BlackList_Call) Return(vs []storage.BlackListedPeer) *MockPeerManager_BlackList_Call + func (_c *MockPeerManager_BlackList_Call) Run(run func()) *MockPeerManager_BlackList_Call + func (_c *MockPeerManager_BlackList_Call) RunAndReturn(run func() []storage.BlackListedPeer) *MockPeerManager_BlackList_Call + type MockPeerManager_CheckPeerInLargestScoreGroup_Call struct + func (_c *MockPeerManager_CheckPeerInLargestScoreGroup_Call) Return(peer1 peer.Peer, b bool) *MockPeerManager_CheckPeerInLargestScoreGroup_Call + func (_c *MockPeerManager_CheckPeerInLargestScoreGroup_Call) Run(run func(p peer.Peer)) *MockPeerManager_CheckPeerInLargestScoreGroup_Call + func (_c *MockPeerManager_CheckPeerInLargestScoreGroup_Call) RunAndReturn(run func(p peer.Peer) (peer.Peer, bool)) *MockPeerManager_CheckPeerInLargestScoreGroup_Call + type MockPeerManager_CheckPeerWithMaxScore_Call struct + func (_c *MockPeerManager_CheckPeerWithMaxScore_Call) Return(peer1 peer.Peer, b bool) *MockPeerManager_CheckPeerWithMaxScore_Call + func (_c *MockPeerManager_CheckPeerWithMaxScore_Call) Run(run func(p peer.Peer)) *MockPeerManager_CheckPeerWithMaxScore_Call + func (_c *MockPeerManager_CheckPeerWithMaxScore_Call) RunAndReturn(run func(p peer.Peer) (peer.Peer, bool)) *MockPeerManager_CheckPeerWithMaxScore_Call + type MockPeerManager_ClearBlackList_Call struct + func (_c *MockPeerManager_ClearBlackList_Call) Return(err error) *MockPeerManager_ClearBlackList_Call + func (_c *MockPeerManager_ClearBlackList_Call) Run(run func()) *MockPeerManager_ClearBlackList_Call + func (_c *MockPeerManager_ClearBlackList_Call) RunAndReturn(run func() error) *MockPeerManager_ClearBlackList_Call + type MockPeerManager_Close_Call struct + func (_c *MockPeerManager_Close_Call) Return(err error) *MockPeerManager_Close_Call + func (_c *MockPeerManager_Close_Call) Run(run func()) *MockPeerManager_Close_Call + func (_c *MockPeerManager_Close_Call) RunAndReturn(run func() error) *MockPeerManager_Close_Call + type MockPeerManager_Connect_Call struct + func (_c *MockPeerManager_Connect_Call) Return(err error) *MockPeerManager_Connect_Call + func (_c *MockPeerManager_Connect_Call) Run(run func(context1 context.Context, tCPAddr proto.TCPAddr)) *MockPeerManager_Connect_Call + func (_c *MockPeerManager_Connect_Call) RunAndReturn(run func(context1 context.Context, tCPAddr proto.TCPAddr) error) *MockPeerManager_Connect_Call + type MockPeerManager_ConnectedCount_Call struct + func (_c *MockPeerManager_ConnectedCount_Call) Return(n int) *MockPeerManager_ConnectedCount_Call + func (_c *MockPeerManager_ConnectedCount_Call) Run(run func()) *MockPeerManager_ConnectedCount_Call + func (_c *MockPeerManager_ConnectedCount_Call) RunAndReturn(run func() int) *MockPeerManager_ConnectedCount_Call + type MockPeerManager_Disconnect_Call struct + func (_c *MockPeerManager_Disconnect_Call) Return() *MockPeerManager_Disconnect_Call + func (_c *MockPeerManager_Disconnect_Call) Run(run func(peer1 peer.Peer)) *MockPeerManager_Disconnect_Call + func (_c *MockPeerManager_Disconnect_Call) RunAndReturn(run func(peer1 peer.Peer)) *MockPeerManager_Disconnect_Call + type MockPeerManager_EachConnected_Call struct + func (_c *MockPeerManager_EachConnected_Call) Return() *MockPeerManager_EachConnected_Call + func (_c *MockPeerManager_EachConnected_Call) Run(run func(fn func(peer.Peer, *proto.Score))) *MockPeerManager_EachConnected_Call + func (_c *MockPeerManager_EachConnected_Call) RunAndReturn(run func(fn func(peer.Peer, *proto.Score))) *MockPeerManager_EachConnected_Call + type MockPeerManager_Expecter struct + func (_e *MockPeerManager_Expecter) AddToBlackList(peer1 interface{}, blockTime interface{}, reason interface{}) *MockPeerManager_AddToBlackList_Call + func (_e *MockPeerManager_Expecter) AskPeers() *MockPeerManager_AskPeers_Call + func (_e *MockPeerManager_Expecter) BlackList() *MockPeerManager_BlackList_Call + func (_e *MockPeerManager_Expecter) CheckPeerInLargestScoreGroup(p interface{}) *MockPeerManager_CheckPeerInLargestScoreGroup_Call + func (_e *MockPeerManager_Expecter) CheckPeerWithMaxScore(p interface{}) *MockPeerManager_CheckPeerWithMaxScore_Call + func (_e *MockPeerManager_Expecter) ClearBlackList() *MockPeerManager_ClearBlackList_Call + func (_e *MockPeerManager_Expecter) Close() *MockPeerManager_Close_Call + func (_e *MockPeerManager_Expecter) Connect(context1 interface{}, tCPAddr interface{}) *MockPeerManager_Connect_Call + func (_e *MockPeerManager_Expecter) ConnectedCount() *MockPeerManager_ConnectedCount_Call + func (_e *MockPeerManager_Expecter) Disconnect(peer1 interface{}) *MockPeerManager_Disconnect_Call + func (_e *MockPeerManager_Expecter) EachConnected(fn interface{}) *MockPeerManager_EachConnected_Call + func (_e *MockPeerManager_Expecter) KnownPeers() *MockPeerManager_KnownPeers_Call + func (_e *MockPeerManager_Expecter) NewConnection(peer1 interface{}) *MockPeerManager_NewConnection_Call + func (_e *MockPeerManager_Expecter) Score(p interface{}) *MockPeerManager_Score_Call + func (_e *MockPeerManager_Expecter) SpawnIncomingConnection(ctx interface{}, conn interface{}) *MockPeerManager_SpawnIncomingConnection_Call + func (_e *MockPeerManager_Expecter) SpawnOutgoingConnections(context1 interface{}) *MockPeerManager_SpawnOutgoingConnections_Call + func (_e *MockPeerManager_Expecter) Spawned() *MockPeerManager_Spawned_Call + func (_e *MockPeerManager_Expecter) Suspend(peer1 interface{}, suspendTime interface{}, reason interface{}) *MockPeerManager_Suspend_Call + func (_e *MockPeerManager_Expecter) Suspended() *MockPeerManager_Suspended_Call + func (_e *MockPeerManager_Expecter) UpdateKnownPeers(knownPeers interface{}) *MockPeerManager_UpdateKnownPeers_Call + func (_e *MockPeerManager_Expecter) UpdateScore(p interface{}, score interface{}) *MockPeerManager_UpdateScore_Call + type MockPeerManager_KnownPeers_Call struct + func (_c *MockPeerManager_KnownPeers_Call) Return(knownPeers []storage.KnownPeer) *MockPeerManager_KnownPeers_Call + func (_c *MockPeerManager_KnownPeers_Call) Run(run func()) *MockPeerManager_KnownPeers_Call + func (_c *MockPeerManager_KnownPeers_Call) RunAndReturn(run func() []storage.KnownPeer) *MockPeerManager_KnownPeers_Call + type MockPeerManager_NewConnection_Call struct + func (_c *MockPeerManager_NewConnection_Call) Return(err error) *MockPeerManager_NewConnection_Call + func (_c *MockPeerManager_NewConnection_Call) Run(run func(peer1 peer.Peer)) *MockPeerManager_NewConnection_Call + func (_c *MockPeerManager_NewConnection_Call) RunAndReturn(run func(peer1 peer.Peer) error) *MockPeerManager_NewConnection_Call + type MockPeerManager_Score_Call struct + func (_c *MockPeerManager_Score_Call) Return(v *proto.Score, err error) *MockPeerManager_Score_Call + func (_c *MockPeerManager_Score_Call) Run(run func(p peer.Peer)) *MockPeerManager_Score_Call + func (_c *MockPeerManager_Score_Call) RunAndReturn(run func(p peer.Peer) (*proto.Score, error)) *MockPeerManager_Score_Call + type MockPeerManager_SpawnIncomingConnection_Call struct + func (_c *MockPeerManager_SpawnIncomingConnection_Call) Return(err error) *MockPeerManager_SpawnIncomingConnection_Call + func (_c *MockPeerManager_SpawnIncomingConnection_Call) Run(run func(ctx context.Context, conn net.Conn)) *MockPeerManager_SpawnIncomingConnection_Call + func (_c *MockPeerManager_SpawnIncomingConnection_Call) RunAndReturn(run func(ctx context.Context, conn net.Conn) error) *MockPeerManager_SpawnIncomingConnection_Call + type MockPeerManager_SpawnOutgoingConnections_Call struct + func (_c *MockPeerManager_SpawnOutgoingConnections_Call) Return() *MockPeerManager_SpawnOutgoingConnections_Call + func (_c *MockPeerManager_SpawnOutgoingConnections_Call) Run(run func(context1 context.Context)) *MockPeerManager_SpawnOutgoingConnections_Call + func (_c *MockPeerManager_SpawnOutgoingConnections_Call) RunAndReturn(run func(context1 context.Context)) *MockPeerManager_SpawnOutgoingConnections_Call + type MockPeerManager_Spawned_Call struct + func (_c *MockPeerManager_Spawned_Call) Return(ipPorts []proto.IpPort) *MockPeerManager_Spawned_Call + func (_c *MockPeerManager_Spawned_Call) Run(run func()) *MockPeerManager_Spawned_Call + func (_c *MockPeerManager_Spawned_Call) RunAndReturn(run func() []proto.IpPort) *MockPeerManager_Spawned_Call + type MockPeerManager_Suspend_Call struct + func (_c *MockPeerManager_Suspend_Call) Return() *MockPeerManager_Suspend_Call + func (_c *MockPeerManager_Suspend_Call) Run(run func(peer1 peer.Peer, suspendTime time.Time, reason string)) *MockPeerManager_Suspend_Call + func (_c *MockPeerManager_Suspend_Call) RunAndReturn(run func(peer1 peer.Peer, suspendTime time.Time, reason string)) *MockPeerManager_Suspend_Call + type MockPeerManager_Suspended_Call struct + func (_c *MockPeerManager_Suspended_Call) Return(vs []storage.SuspendedPeer) *MockPeerManager_Suspended_Call + func (_c *MockPeerManager_Suspended_Call) Run(run func()) *MockPeerManager_Suspended_Call + func (_c *MockPeerManager_Suspended_Call) RunAndReturn(run func() []storage.SuspendedPeer) *MockPeerManager_Suspended_Call + type MockPeerManager_UpdateKnownPeers_Call struct + func (_c *MockPeerManager_UpdateKnownPeers_Call) Return(err error) *MockPeerManager_UpdateKnownPeers_Call + func (_c *MockPeerManager_UpdateKnownPeers_Call) Run(run func(knownPeers []storage.KnownPeer)) *MockPeerManager_UpdateKnownPeers_Call + func (_c *MockPeerManager_UpdateKnownPeers_Call) RunAndReturn(run func(knownPeers []storage.KnownPeer) error) *MockPeerManager_UpdateKnownPeers_Call + type MockPeerManager_UpdateScore_Call struct + func (_c *MockPeerManager_UpdateScore_Call) Return(err error) *MockPeerManager_UpdateScore_Call + func (_c *MockPeerManager_UpdateScore_Call) Run(run func(p peer.Peer, score *proto.Score)) *MockPeerManager_UpdateScore_Call + func (_c *MockPeerManager_UpdateScore_Call) RunAndReturn(run func(p peer.Peer, score *proto.Score) error) *MockPeerManager_UpdateScore_Call + type PeerManager interface + AddToBlackList func(peer peer.Peer, blockTime time.Time, reason string) + AskPeers func() + BlackList func() []storage.BlackListedPeer + CheckPeerInLargestScoreGroup func(p peer.Peer) (peer.Peer, bool) + CheckPeerWithMaxScore func(p peer.Peer) (peer.Peer, bool) + ClearBlackList func() error + Close func() error + Connect func(context.Context, proto.TCPAddr) error + ConnectedCount func() int + Disconnect func(peer.Peer) + EachConnected func(func(peer.Peer, *proto.Score)) + KnownPeers func() []storage.KnownPeer + NewConnection func(peer.Peer) error + Score func(p peer.Peer) (*proto.Score, error) + SpawnIncomingConnection func(ctx context.Context, conn net.Conn) error + SpawnOutgoingConnections func(context.Context) + Spawned func() []proto.IpPort + Suspend func(peer peer.Peer, suspendTime time.Time, reason string) + Suspended func() []storage.SuspendedPeer + UpdateKnownPeers func([]storage.KnownPeer) error + UpdateScore func(p peer.Peer, score *proto.Score) error + type PeerManagerImpl struct + func NewPeerManager(spawner PeerSpawner, storage PeerStorage, limitConnections int, ...) *PeerManagerImpl + func (a *PeerManagerImpl) AddAddress(addr proto.TCPAddr) error + func (a *PeerManagerImpl) AddToBlackList(p peer.Peer, blockTime time.Time, reason string) + func (a *PeerManagerImpl) AskPeers() + func (a *PeerManagerImpl) BlackList() []storage.BlackListedPeer + func (a *PeerManagerImpl) CheckPeerInLargestScoreGroup(p peer.Peer) (peer.Peer, bool) + func (a *PeerManagerImpl) CheckPeerWithMaxScore(p peer.Peer) (peer.Peer, bool) + func (a *PeerManagerImpl) ClearBlackList() error + func (a *PeerManagerImpl) Close() error + func (a *PeerManagerImpl) Connect(ctx context.Context, addr proto.TCPAddr) error + func (a *PeerManagerImpl) ConnectedCount() int + func (a *PeerManagerImpl) Disconnect(p peer.Peer) + func (a *PeerManagerImpl) EachConnected(f func(peer peer.Peer, score *big.Int)) + func (a *PeerManagerImpl) KnownPeers() []storage.KnownPeer + func (a *PeerManagerImpl) NewConnection(p peer.Peer) error + func (a *PeerManagerImpl) Run(ctx context.Context) + func (a *PeerManagerImpl) Score(p peer.Peer) (*proto.Score, error) + func (a *PeerManagerImpl) SpawnIncomingConnection(ctx context.Context, conn net.Conn) error + func (a *PeerManagerImpl) SpawnOutgoingConnections(ctx context.Context) + func (a *PeerManagerImpl) Spawned() []proto.IpPort + func (a *PeerManagerImpl) Suspend(p peer.Peer, suspendTime time.Time, reason string) + func (a *PeerManagerImpl) Suspended() []storage.SuspendedPeer + func (a *PeerManagerImpl) UpdateKnownPeers(known []storage.KnownPeer) error + func (a *PeerManagerImpl) UpdateScore(p peer.Peer, score *big.Int) error + type PeerSpawner interface + SpawnIncoming func(ctx context.Context, c net.Conn) error + SpawnOutgoing func(ctx context.Context, addr proto.TCPAddr) error + type PeerSpawnerImpl struct + func NewPeerSpawner(parent peer.Parent, wavesNetwork string, declAddr proto.TCPAddr, ...) *PeerSpawnerImpl + func (a *PeerSpawnerImpl) SpawnIncoming(ctx context.Context, c net.Conn) error + func (a *PeerSpawnerImpl) SpawnOutgoing(ctx context.Context, address proto.TCPAddr) error + type PeerStorage interface + AddOrUpdateKnown func(known []storage.KnownPeer, now time.Time) error + AddSuspended func(suspended []storage.SuspendedPeer) error + AddToBlackList func(blackListed []storage.BlackListedPeer) error + BlackList func(now time.Time) []storage.BlackListedPeer + DeleteBlackListedByIP func(blackListed []storage.BlackListedPeer) error + DeleteKnown func(known []storage.KnownPeer) error + DeleteSuspendedByIP func(suspended []storage.SuspendedPeer) error + DropBlackList func() error + DropKnown func() error + DropStorage func() error + DropSuspended func() error + IsBlackListedIP func(ip storage.IP, now time.Time) bool + IsBlackListedIPs func(ips []storage.IP, now time.Time) []bool + IsSuspendedIP func(ip storage.IP, now time.Time) bool + IsSuspendedIPs func(ips []storage.IP, now time.Time) []bool + Known func(limit int) []storage.KnownPeer + RefreshBlackList func(now time.Time) error + RefreshSuspended func(now time.Time) error + Suspended func(now time.Time) []storage.SuspendedPeer