peers

package
v0.11.0 Latest Latest
Warning

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

Go to latest
Published: Mar 24, 2026 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrPeerAlreadyConnected             = errors.New("peer already connected")
	ErrPeerSuspended                    = errors.New("peer is suspended")
	ErrPeerBlackListed                  = errors.New("peer is black listed")
	ErrInvalidVersion                   = errors.New("versions are too different")
	ErrInvalidNetworkName               = errors.New("invalid network name")
	ErrIncomingConnectionsLimitExceeded = errors.New("incoming connections limit exceeded")
	ErrOutgoingConnectionsLimitExceeded = errors.New("outgoing connections limit exceeded")
	ErrInvalidConnectionDirection       = errors.New("invalid connection direction")
)

Functions

func NewSkipFilter

func NewSkipFilter(list *messages.SkipMessageList) conn.SkipFilter

Types

type DuplicateChecker

type DuplicateChecker interface {
	Add([]byte) bool
}

type MockPeerManager

type MockPeerManager struct {
	mock.Mock
}

MockPeerManager is an autogenerated mock type for the PeerManager type

func NewMockPeerManager

func NewMockPeerManager(t interface {
	mock.TestingT
	Cleanup(func())
}) *MockPeerManager

NewMockPeerManager creates a new instance of MockPeerManager. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. The first argument is typically a *testing.T value.

func (*MockPeerManager) AddToBlackList

func (_mock *MockPeerManager) AddToBlackList(peer1 peer.Peer, blockTime time.Time, reason string)

AddToBlackList provides a mock function for the type MockPeerManager

func (*MockPeerManager) AskPeers

func (_mock *MockPeerManager) AskPeers()

AskPeers provides a mock function for the type MockPeerManager

func (*MockPeerManager) BlackList

func (_mock *MockPeerManager) BlackList() []storage.BlackListedPeer

BlackList provides a mock function for the type MockPeerManager

func (*MockPeerManager) CheckPeerInLargestScoreGroup

func (_mock *MockPeerManager) CheckPeerInLargestScoreGroup(p peer.Peer) (peer.Peer, bool)

CheckPeerInLargestScoreGroup provides a mock function for the type MockPeerManager

func (*MockPeerManager) CheckPeerWithMaxScore

func (_mock *MockPeerManager) CheckPeerWithMaxScore(p peer.Peer) (peer.Peer, bool)

CheckPeerWithMaxScore provides a mock function for the type MockPeerManager

func (*MockPeerManager) ClearBlackList

func (_mock *MockPeerManager) ClearBlackList() error

ClearBlackList provides a mock function for the type MockPeerManager

func (*MockPeerManager) Close

func (_mock *MockPeerManager) Close() error

Close provides a mock function for the type MockPeerManager

func (*MockPeerManager) Connect

func (_mock *MockPeerManager) Connect(context1 context.Context, tCPAddr proto.TCPAddr) error

Connect provides a mock function for the type MockPeerManager

func (*MockPeerManager) ConnectedCount

func (_mock *MockPeerManager) ConnectedCount() int

ConnectedCount provides a mock function for the type MockPeerManager

func (*MockPeerManager) Disconnect

func (_mock *MockPeerManager) Disconnect(peer1 peer.Peer)

Disconnect provides a mock function for the type MockPeerManager

func (*MockPeerManager) EXPECT

func (*MockPeerManager) EachConnected

func (_mock *MockPeerManager) EachConnected(fn func(peer.Peer, *proto.Score))

EachConnected provides a mock function for the type MockPeerManager

func (*MockPeerManager) KnownPeers

func (_mock *MockPeerManager) KnownPeers() []storage.KnownPeer

KnownPeers provides a mock function for the type MockPeerManager

func (*MockPeerManager) NewConnection

func (_mock *MockPeerManager) NewConnection(peer1 peer.Peer) error

NewConnection provides a mock function for the type MockPeerManager

func (*MockPeerManager) Score

func (_mock *MockPeerManager) Score(p peer.Peer) (*proto.Score, error)

Score provides a mock function for the type MockPeerManager

func (*MockPeerManager) SpawnIncomingConnection

func (_mock *MockPeerManager) SpawnIncomingConnection(ctx context.Context, conn net.Conn) error

SpawnIncomingConnection provides a mock function for the type MockPeerManager

func (*MockPeerManager) SpawnOutgoingConnections

func (_mock *MockPeerManager) SpawnOutgoingConnections(context1 context.Context)

SpawnOutgoingConnections provides a mock function for the type MockPeerManager

func (*MockPeerManager) Spawned

func (_mock *MockPeerManager) Spawned() []proto.IpPort

Spawned provides a mock function for the type MockPeerManager

func (*MockPeerManager) Suspend

func (_mock *MockPeerManager) Suspend(peer1 peer.Peer, suspendTime time.Time, reason string)

Suspend provides a mock function for the type MockPeerManager

func (*MockPeerManager) Suspended

func (_mock *MockPeerManager) Suspended() []storage.SuspendedPeer

Suspended provides a mock function for the type MockPeerManager

func (*MockPeerManager) UpdateKnownPeers

func (_mock *MockPeerManager) UpdateKnownPeers(knownPeers []storage.KnownPeer) error

UpdateKnownPeers provides a mock function for the type MockPeerManager

func (*MockPeerManager) UpdateScore

func (_mock *MockPeerManager) UpdateScore(p peer.Peer, score *proto.Score) error

UpdateScore provides a mock function for the type MockPeerManager

type MockPeerManager_AddToBlackList_Call

type MockPeerManager_AddToBlackList_Call struct {
	*mock.Call
}

MockPeerManager_AddToBlackList_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AddToBlackList'

func (*MockPeerManager_AddToBlackList_Call) Return

func (*MockPeerManager_AddToBlackList_Call) Run

func (*MockPeerManager_AddToBlackList_Call) RunAndReturn

func (_c *MockPeerManager_AddToBlackList_Call) RunAndReturn(run func(peer1 peer.Peer, blockTime time.Time, reason string)) *MockPeerManager_AddToBlackList_Call

type MockPeerManager_AskPeers_Call

type MockPeerManager_AskPeers_Call struct {
	*mock.Call
}

MockPeerManager_AskPeers_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AskPeers'

func (*MockPeerManager_AskPeers_Call) Return

func (*MockPeerManager_AskPeers_Call) Run

func (*MockPeerManager_AskPeers_Call) RunAndReturn

func (_c *MockPeerManager_AskPeers_Call) RunAndReturn(run func()) *MockPeerManager_AskPeers_Call

type MockPeerManager_BlackList_Call

type MockPeerManager_BlackList_Call struct {
	*mock.Call
}

MockPeerManager_BlackList_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlackList'

func (*MockPeerManager_BlackList_Call) Return

func (*MockPeerManager_BlackList_Call) Run

func (*MockPeerManager_BlackList_Call) RunAndReturn

type MockPeerManager_CheckPeerInLargestScoreGroup_Call

type MockPeerManager_CheckPeerInLargestScoreGroup_Call struct {
	*mock.Call
}

MockPeerManager_CheckPeerInLargestScoreGroup_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CheckPeerInLargestScoreGroup'

func (*MockPeerManager_CheckPeerInLargestScoreGroup_Call) Return

func (*MockPeerManager_CheckPeerInLargestScoreGroup_Call) Run

func (*MockPeerManager_CheckPeerInLargestScoreGroup_Call) RunAndReturn

type MockPeerManager_CheckPeerWithMaxScore_Call

type MockPeerManager_CheckPeerWithMaxScore_Call struct {
	*mock.Call
}

MockPeerManager_CheckPeerWithMaxScore_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CheckPeerWithMaxScore'

func (*MockPeerManager_CheckPeerWithMaxScore_Call) Return

func (*MockPeerManager_CheckPeerWithMaxScore_Call) Run

func (*MockPeerManager_CheckPeerWithMaxScore_Call) RunAndReturn

type MockPeerManager_ClearBlackList_Call

type MockPeerManager_ClearBlackList_Call struct {
	*mock.Call
}

MockPeerManager_ClearBlackList_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ClearBlackList'

func (*MockPeerManager_ClearBlackList_Call) Return

func (*MockPeerManager_ClearBlackList_Call) Run

func (*MockPeerManager_ClearBlackList_Call) RunAndReturn

type MockPeerManager_Close_Call

type MockPeerManager_Close_Call struct {
	*mock.Call
}

MockPeerManager_Close_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Close'

func (*MockPeerManager_Close_Call) Return

func (*MockPeerManager_Close_Call) Run

func (*MockPeerManager_Close_Call) RunAndReturn

func (_c *MockPeerManager_Close_Call) RunAndReturn(run func() error) *MockPeerManager_Close_Call

type MockPeerManager_Connect_Call

type MockPeerManager_Connect_Call struct {
	*mock.Call
}

MockPeerManager_Connect_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Connect'

func (*MockPeerManager_Connect_Call) Return

func (*MockPeerManager_Connect_Call) Run

func (*MockPeerManager_Connect_Call) RunAndReturn

func (_c *MockPeerManager_Connect_Call) RunAndReturn(run func(context1 context.Context, tCPAddr proto.TCPAddr) error) *MockPeerManager_Connect_Call

type MockPeerManager_ConnectedCount_Call

type MockPeerManager_ConnectedCount_Call struct {
	*mock.Call
}

MockPeerManager_ConnectedCount_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ConnectedCount'

func (*MockPeerManager_ConnectedCount_Call) Return

func (*MockPeerManager_ConnectedCount_Call) Run

func (*MockPeerManager_ConnectedCount_Call) RunAndReturn

type MockPeerManager_Disconnect_Call

type MockPeerManager_Disconnect_Call struct {
	*mock.Call
}

MockPeerManager_Disconnect_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Disconnect'

func (*MockPeerManager_Disconnect_Call) Return

func (*MockPeerManager_Disconnect_Call) Run

func (*MockPeerManager_Disconnect_Call) RunAndReturn

func (_c *MockPeerManager_Disconnect_Call) RunAndReturn(run func(peer1 peer.Peer)) *MockPeerManager_Disconnect_Call

type MockPeerManager_EachConnected_Call

type MockPeerManager_EachConnected_Call struct {
	*mock.Call
}

MockPeerManager_EachConnected_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'EachConnected'

func (*MockPeerManager_EachConnected_Call) Return

func (*MockPeerManager_EachConnected_Call) Run

func (*MockPeerManager_EachConnected_Call) RunAndReturn

type MockPeerManager_Expecter

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

func (*MockPeerManager_Expecter) AddToBlackList

func (_e *MockPeerManager_Expecter) AddToBlackList(peer1 interface{}, blockTime interface{}, reason interface{}) *MockPeerManager_AddToBlackList_Call

AddToBlackList is a helper method to define mock.On call

  • peer1 peer.Peer
  • blockTime time.Time
  • reason string

func (*MockPeerManager_Expecter) AskPeers

AskPeers is a helper method to define mock.On call

func (*MockPeerManager_Expecter) BlackList

BlackList is a helper method to define mock.On call

func (*MockPeerManager_Expecter) CheckPeerInLargestScoreGroup

func (_e *MockPeerManager_Expecter) CheckPeerInLargestScoreGroup(p interface{}) *MockPeerManager_CheckPeerInLargestScoreGroup_Call

CheckPeerInLargestScoreGroup is a helper method to define mock.On call

  • p peer.Peer

func (*MockPeerManager_Expecter) CheckPeerWithMaxScore

func (_e *MockPeerManager_Expecter) CheckPeerWithMaxScore(p interface{}) *MockPeerManager_CheckPeerWithMaxScore_Call

CheckPeerWithMaxScore is a helper method to define mock.On call

  • p peer.Peer

func (*MockPeerManager_Expecter) ClearBlackList

ClearBlackList is a helper method to define mock.On call

func (*MockPeerManager_Expecter) Close

Close is a helper method to define mock.On call

func (*MockPeerManager_Expecter) Connect

func (_e *MockPeerManager_Expecter) Connect(context1 interface{}, tCPAddr interface{}) *MockPeerManager_Connect_Call

Connect is a helper method to define mock.On call

  • context1 context.Context
  • tCPAddr proto.TCPAddr

func (*MockPeerManager_Expecter) ConnectedCount

ConnectedCount is a helper method to define mock.On call

func (*MockPeerManager_Expecter) Disconnect

func (_e *MockPeerManager_Expecter) Disconnect(peer1 interface{}) *MockPeerManager_Disconnect_Call

Disconnect is a helper method to define mock.On call

  • peer1 peer.Peer

func (*MockPeerManager_Expecter) EachConnected

func (_e *MockPeerManager_Expecter) EachConnected(fn interface{}) *MockPeerManager_EachConnected_Call

EachConnected is a helper method to define mock.On call

  • fn func(peer.Peer, *proto.Score)

func (*MockPeerManager_Expecter) KnownPeers

KnownPeers is a helper method to define mock.On call

func (*MockPeerManager_Expecter) NewConnection

func (_e *MockPeerManager_Expecter) NewConnection(peer1 interface{}) *MockPeerManager_NewConnection_Call

NewConnection is a helper method to define mock.On call

  • peer1 peer.Peer

func (*MockPeerManager_Expecter) Score

func (_e *MockPeerManager_Expecter) Score(p interface{}) *MockPeerManager_Score_Call

Score is a helper method to define mock.On call

  • p peer.Peer

func (*MockPeerManager_Expecter) SpawnIncomingConnection

func (_e *MockPeerManager_Expecter) SpawnIncomingConnection(ctx interface{}, conn interface{}) *MockPeerManager_SpawnIncomingConnection_Call

SpawnIncomingConnection is a helper method to define mock.On call

  • ctx context.Context
  • conn net.Conn

func (*MockPeerManager_Expecter) SpawnOutgoingConnections

func (_e *MockPeerManager_Expecter) SpawnOutgoingConnections(context1 interface{}) *MockPeerManager_SpawnOutgoingConnections_Call

SpawnOutgoingConnections is a helper method to define mock.On call

  • context1 context.Context

func (*MockPeerManager_Expecter) Spawned

Spawned is a helper method to define mock.On call

func (*MockPeerManager_Expecter) Suspend

func (_e *MockPeerManager_Expecter) Suspend(peer1 interface{}, suspendTime interface{}, reason interface{}) *MockPeerManager_Suspend_Call

Suspend is a helper method to define mock.On call

  • peer1 peer.Peer
  • suspendTime time.Time
  • reason string

func (*MockPeerManager_Expecter) Suspended

Suspended is a helper method to define mock.On call

func (*MockPeerManager_Expecter) UpdateKnownPeers

func (_e *MockPeerManager_Expecter) UpdateKnownPeers(knownPeers interface{}) *MockPeerManager_UpdateKnownPeers_Call

UpdateKnownPeers is a helper method to define mock.On call

  • knownPeers []storage.KnownPeer

func (*MockPeerManager_Expecter) UpdateScore

func (_e *MockPeerManager_Expecter) UpdateScore(p interface{}, score interface{}) *MockPeerManager_UpdateScore_Call

UpdateScore is a helper method to define mock.On call

  • p peer.Peer
  • score *proto.Score

type MockPeerManager_KnownPeers_Call

type MockPeerManager_KnownPeers_Call struct {
	*mock.Call
}

MockPeerManager_KnownPeers_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'KnownPeers'

func (*MockPeerManager_KnownPeers_Call) Return

func (*MockPeerManager_KnownPeers_Call) Run

func (*MockPeerManager_KnownPeers_Call) RunAndReturn

type MockPeerManager_NewConnection_Call

type MockPeerManager_NewConnection_Call struct {
	*mock.Call
}

MockPeerManager_NewConnection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'NewConnection'

func (*MockPeerManager_NewConnection_Call) Return

func (*MockPeerManager_NewConnection_Call) Run

func (*MockPeerManager_NewConnection_Call) RunAndReturn

type MockPeerManager_Score_Call

type MockPeerManager_Score_Call struct {
	*mock.Call
}

MockPeerManager_Score_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Score'

func (*MockPeerManager_Score_Call) Return

func (*MockPeerManager_Score_Call) Run

func (*MockPeerManager_Score_Call) RunAndReturn

func (_c *MockPeerManager_Score_Call) RunAndReturn(run func(p peer.Peer) (*proto.Score, error)) *MockPeerManager_Score_Call

type MockPeerManager_SpawnIncomingConnection_Call

type MockPeerManager_SpawnIncomingConnection_Call struct {
	*mock.Call
}

MockPeerManager_SpawnIncomingConnection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SpawnIncomingConnection'

func (*MockPeerManager_SpawnIncomingConnection_Call) Return

func (*MockPeerManager_SpawnIncomingConnection_Call) Run

func (*MockPeerManager_SpawnIncomingConnection_Call) RunAndReturn

type MockPeerManager_SpawnOutgoingConnections_Call

type MockPeerManager_SpawnOutgoingConnections_Call struct {
	*mock.Call
}

MockPeerManager_SpawnOutgoingConnections_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SpawnOutgoingConnections'

func (*MockPeerManager_SpawnOutgoingConnections_Call) Return

func (*MockPeerManager_SpawnOutgoingConnections_Call) Run

func (*MockPeerManager_SpawnOutgoingConnections_Call) RunAndReturn

type MockPeerManager_Spawned_Call

type MockPeerManager_Spawned_Call struct {
	*mock.Call
}

MockPeerManager_Spawned_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Spawned'

func (*MockPeerManager_Spawned_Call) Return

func (*MockPeerManager_Spawned_Call) Run

func (*MockPeerManager_Spawned_Call) RunAndReturn

type MockPeerManager_Suspend_Call

type MockPeerManager_Suspend_Call struct {
	*mock.Call
}

MockPeerManager_Suspend_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Suspend'

func (*MockPeerManager_Suspend_Call) Return

func (*MockPeerManager_Suspend_Call) Run

func (_c *MockPeerManager_Suspend_Call) Run(run func(peer1 peer.Peer, suspendTime time.Time, reason string)) *MockPeerManager_Suspend_Call

func (*MockPeerManager_Suspend_Call) RunAndReturn

func (_c *MockPeerManager_Suspend_Call) RunAndReturn(run func(peer1 peer.Peer, suspendTime time.Time, reason string)) *MockPeerManager_Suspend_Call

type MockPeerManager_Suspended_Call

type MockPeerManager_Suspended_Call struct {
	*mock.Call
}

MockPeerManager_Suspended_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Suspended'

func (*MockPeerManager_Suspended_Call) Return

func (*MockPeerManager_Suspended_Call) Run

func (*MockPeerManager_Suspended_Call) RunAndReturn

type MockPeerManager_UpdateKnownPeers_Call

type MockPeerManager_UpdateKnownPeers_Call struct {
	*mock.Call
}

MockPeerManager_UpdateKnownPeers_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'UpdateKnownPeers'

func (*MockPeerManager_UpdateKnownPeers_Call) Return

func (*MockPeerManager_UpdateKnownPeers_Call) Run

func (*MockPeerManager_UpdateKnownPeers_Call) RunAndReturn

type MockPeerManager_UpdateScore_Call

type MockPeerManager_UpdateScore_Call struct {
	*mock.Call
}

MockPeerManager_UpdateScore_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'UpdateScore'

func (*MockPeerManager_UpdateScore_Call) Return

func (*MockPeerManager_UpdateScore_Call) Run

func (*MockPeerManager_UpdateScore_Call) RunAndReturn

type PeerManager

type PeerManager interface {
	NewConnection(peer.Peer) error
	ConnectedCount() int
	EachConnected(func(peer.Peer, *proto.Score))
	Suspend(peer peer.Peer, suspendTime time.Time, reason string)
	Suspended() []storage.SuspendedPeer
	AddToBlackList(peer peer.Peer, blockTime time.Time, reason string)
	BlackList() []storage.BlackListedPeer
	ClearBlackList() error
	UpdateScore(p peer.Peer, score *proto.Score) error
	KnownPeers() []storage.KnownPeer
	UpdateKnownPeers([]storage.KnownPeer) error
	Close() error
	SpawnOutgoingConnections(context.Context)
	SpawnIncomingConnection(ctx context.Context, conn net.Conn) error
	Spawned() []proto.IpPort
	Connect(context.Context, proto.TCPAddr) error
	Score(p peer.Peer) (*proto.Score, error)

	// AskPeers sends GetPeersMessage message to all connected nodes.
	AskPeers()

	CheckPeerWithMaxScore(p peer.Peer) (peer.Peer, bool)
	CheckPeerInLargestScoreGroup(p peer.Peer) (peer.Peer, bool)

	Disconnect(peer.Peer)
}

type PeerManagerImpl

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

func NewPeerManager

func NewPeerManager(spawner PeerSpawner, storage PeerStorage, limitConnections int, version proto.Version,
	networkName string, enableOutboundConnections bool, newConnectionsLimit int,
	blackListDuration time.Duration, logger *slog.Logger) *PeerManagerImpl

func (*PeerManagerImpl) AddAddress

func (a *PeerManagerImpl) AddAddress(addr proto.TCPAddr) error

func (*PeerManagerImpl) AddToBlackList

func (a *PeerManagerImpl) AddToBlackList(p peer.Peer, blockTime time.Time, reason string)

func (*PeerManagerImpl) AskPeers

func (a *PeerManagerImpl) AskPeers()

func (*PeerManagerImpl) BlackList

func (a *PeerManagerImpl) BlackList() []storage.BlackListedPeer

func (*PeerManagerImpl) CheckPeerInLargestScoreGroup

func (a *PeerManagerImpl) CheckPeerInLargestScoreGroup(p peer.Peer) (peer.Peer, bool)

func (*PeerManagerImpl) CheckPeerWithMaxScore

func (a *PeerManagerImpl) CheckPeerWithMaxScore(p peer.Peer) (peer.Peer, bool)

func (*PeerManagerImpl) ClearBlackList

func (a *PeerManagerImpl) ClearBlackList() error

func (*PeerManagerImpl) Close

func (a *PeerManagerImpl) Close() error

func (*PeerManagerImpl) Connect

func (a *PeerManagerImpl) Connect(ctx context.Context, addr proto.TCPAddr) error

func (*PeerManagerImpl) ConnectedCount

func (a *PeerManagerImpl) ConnectedCount() int

func (*PeerManagerImpl) Disconnect

func (a *PeerManagerImpl) Disconnect(p peer.Peer)

func (*PeerManagerImpl) EachConnected

func (a *PeerManagerImpl) EachConnected(f func(peer peer.Peer, score *big.Int))

func (*PeerManagerImpl) KnownPeers

func (a *PeerManagerImpl) KnownPeers() []storage.KnownPeer

func (*PeerManagerImpl) NewConnection

func (a *PeerManagerImpl) NewConnection(p peer.Peer) error

func (*PeerManagerImpl) Run

func (a *PeerManagerImpl) Run(ctx context.Context)

func (*PeerManagerImpl) Score

func (a *PeerManagerImpl) Score(p peer.Peer) (*proto.Score, error)

func (*PeerManagerImpl) SpawnIncomingConnection

func (a *PeerManagerImpl) SpawnIncomingConnection(ctx context.Context, conn net.Conn) error

func (*PeerManagerImpl) SpawnOutgoingConnections

func (a *PeerManagerImpl) SpawnOutgoingConnections(ctx context.Context)

func (*PeerManagerImpl) Spawned

func (a *PeerManagerImpl) Spawned() []proto.IpPort

func (*PeerManagerImpl) Suspend

func (a *PeerManagerImpl) Suspend(p peer.Peer, suspendTime time.Time, reason string)

func (*PeerManagerImpl) Suspended

func (a *PeerManagerImpl) Suspended() []storage.SuspendedPeer

func (*PeerManagerImpl) UpdateKnownPeers

func (a *PeerManagerImpl) UpdateKnownPeers(known []storage.KnownPeer) error

func (*PeerManagerImpl) UpdateScore

func (a *PeerManagerImpl) UpdateScore(p peer.Peer, score *big.Int) error

type PeerSpawner

type PeerSpawner interface {
	SpawnOutgoing(ctx context.Context, addr proto.TCPAddr) error
	SpawnIncoming(ctx context.Context, c net.Conn) error
}

type PeerSpawnerImpl

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

func NewPeerSpawner

func NewPeerSpawner(
	parent peer.Parent, wavesNetwork string, declAddr proto.TCPAddr, nodeName string, nodeNonce uint64,
	version proto.Version, logger, dl *slog.Logger,
) *PeerSpawnerImpl

func (*PeerSpawnerImpl) SpawnIncoming

func (a *PeerSpawnerImpl) SpawnIncoming(ctx context.Context, c net.Conn) error

func (*PeerSpawnerImpl) SpawnOutgoing

func (a *PeerSpawnerImpl) SpawnOutgoing(ctx context.Context, address proto.TCPAddr) error

type PeerStorage

type PeerStorage interface {
	Known(limit int) []storage.KnownPeer
	AddOrUpdateKnown(known []storage.KnownPeer, now time.Time) error
	DeleteKnown(known []storage.KnownPeer) error
	DropKnown() error

	Suspended(now time.Time) []storage.SuspendedPeer
	AddSuspended(suspended []storage.SuspendedPeer) error
	IsSuspendedIP(ip storage.IP, now time.Time) bool
	IsSuspendedIPs(ips []storage.IP, now time.Time) []bool
	DeleteSuspendedByIP(suspended []storage.SuspendedPeer) error
	RefreshSuspended(now time.Time) error
	DropSuspended() error

	BlackList(now time.Time) []storage.BlackListedPeer
	AddToBlackList(blackListed []storage.BlackListedPeer) error
	IsBlackListedIP(ip storage.IP, now time.Time) bool
	IsBlackListedIPs(ips []storage.IP, now time.Time) []bool
	DeleteBlackListedByIP(blackListed []storage.BlackListedPeer) error
	RefreshBlackList(now time.Time) error
	DropBlackList() error

	DropStorage() error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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