peer_manager

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Jun 15, 2021 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DuplicateChecker added in v0.8.1

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

type PeerManager

type PeerManager interface {
	Connected(peer.Peer) (peer.Peer, bool)
	NewConnection(peer.Peer) error
	ConnectedCount() int
	InOutCount() (in int, out int)
	EachConnected(func(peer.Peer, *proto.Score))
	IsSuspended(peer.Peer) bool
	Suspend(peer peer.Peer, suspendTime time.Time, reason string)
	Suspended() []storage.SuspendedPeer
	AddConnected(peer.Peer)
	PeerWithHighestScore() (peer.Peer, *big.Int, bool)
	UpdateScore(p peer.Peer, score *proto.Score) error
	UpdateKnownPeers([]storage.KnownPeer) error
	KnownPeers() []storage.KnownPeer
	Close()
	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()

	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) *PeerManagerImpl

func (*PeerManagerImpl) AddAddress

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

func (*PeerManagerImpl) AddConnected

func (a *PeerManagerImpl) AddConnected(peer peer.Peer)

func (*PeerManagerImpl) AskPeers

func (a *PeerManagerImpl) AskPeers()

func (*PeerManagerImpl) ClearSuspended added in v0.9.0

func (a *PeerManagerImpl) ClearSuspended(now time.Time)

func (*PeerManagerImpl) Close

func (a *PeerManagerImpl) Close()

func (*PeerManagerImpl) Connect

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

func (*PeerManagerImpl) Connected

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

func (*PeerManagerImpl) ConnectedCount added in v0.5.0

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) InOutCount added in v0.5.0

func (a *PeerManagerImpl) InOutCount() (in int, out int)

InOutCount counts connected peers, in - incoming connections out - outgoing connections

func (*PeerManagerImpl) IsSuspended

func (a *PeerManagerImpl) IsSuspended(p peer.Peer) bool

func (*PeerManagerImpl) KnownPeers

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

func (*PeerManagerImpl) NewConnection added in v0.5.0

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

func (*PeerManagerImpl) PeerWithHighestScore

func (a *PeerManagerImpl) PeerWithHighestScore() (peer.Peer, *big.Int, bool)

func (*PeerManagerImpl) RemoveSpawned

func (a *PeerManagerImpl) RemoveSpawned(addr proto.TCPAddr)

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) SetConnectPeers added in v0.5.0

func (a *PeerManagerImpl) SetConnectPeers(connect bool)

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 {
	DuplicateChecker DuplicateChecker
	// contains filtered or unexported fields
}

func NewPeerSpawner

func NewPeerSpawner(pool bytespool.Pool, parent peer.Parent, WavesNetwork string, declAddr proto.TCPAddr, nodeName string, nodeNonce uint64, version proto.Version) *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() []storage.KnownPeer
	AddKnown(known []storage.KnownPeer) 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

	DropStorage() error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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