peerset

package
v0.12.0 Latest Latest
Warning

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

Go to latest
Published: Jun 19, 2023 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	StatusCodeBanned  = StatusCode(-1)
	StatusCodeUnknown = StatusCode(0)
	StatusCodeKnown   = StatusCode(1)
	StatusCodeTrusty  = StatusCode(2)
)
View Source
const (
	PeerFlagNodeNetwork = 0x01
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Peer

type Peer struct {
	Status          StatusCode
	Moniker         string
	Agent           string
	PeerID          peer.ID
	ConsensusKeys   map[bls.PublicKey]bool
	Flags           int
	LastSeen        time.Time
	Height          uint32
	ReceivedBundles int
	InvalidBundles  int
	ReceivedBytes   int
	SendSuccess     int
	SendFailed      int
}

func NewPeer

func NewPeer(peerID peer.ID) *Peer

func (*Peer) IsBanned

func (p *Peer) IsBanned() bool

func (*Peer) IsKnownOrTrusty

func (p *Peer) IsKnownOrTrusty() bool

func (*Peer) IsNodeNetwork

func (p *Peer) IsNodeNetwork() bool

type PeerSet

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

func NewPeerSet

func NewPeerSet(sessionTimeout time.Duration) *PeerSet

func (*PeerSet) Clear

func (ps *PeerSet) Clear()

func (*PeerSet) CloseSession

func (ps *PeerSet) CloseSession(id int)

func (*PeerSet) FindSession

func (ps *PeerSet) FindSession(id int) *Session

func (*PeerSet) GetPeer

func (ps *PeerSet) GetPeer(pid peer.ID) Peer

GetPeer finds a peer by id and returns a copy of the peer object.

func (*PeerSet) GetPeerList

func (ps *PeerSet) GetPeerList() []Peer

func (*PeerSet) GetRandomPeer

func (ps *PeerSet) GetRandomPeer() Peer

GetRandomPeer selects a random peer from the peer set based on their weights. The weight of each peer is determined by the difference between the number of successful and failed send attempts. Peers with higher weights are more likely to be selected. TODO: can this code be better?

func (*PeerSet) HasAnyOpenSession

func (ps *PeerSet) HasAnyOpenSession() bool

func (*PeerSet) HasOpenSession added in v0.11.0

func (ps *PeerSet) HasOpenSession(pid peer.ID) bool

func (*PeerSet) IncreaseInvalidBundlesCounter

func (ps *PeerSet) IncreaseInvalidBundlesCounter(pid peer.ID)

func (*PeerSet) IncreaseReceivedBundlesCounter

func (ps *PeerSet) IncreaseReceivedBundlesCounter(pid peer.ID)

func (*PeerSet) IncreaseReceivedBytesCounter

func (ps *PeerSet) IncreaseReceivedBytesCounter(pid peer.ID, c int)

func (*PeerSet) IncreaseSendFailedCounter added in v0.11.0

func (ps *PeerSet) IncreaseSendFailedCounter(pid peer.ID)

func (*PeerSet) IncreaseSendSuccessCounter added in v0.11.0

func (ps *PeerSet) IncreaseSendSuccessCounter(pid peer.ID)

func (*PeerSet) Len

func (ps *PeerSet) Len() int

func (*PeerSet) MaxClaimedHeight

func (ps *PeerSet) MaxClaimedHeight() uint32

MaxClaimedHeight returns the maximum claimed height.

Note: This value might not be accurate. A bad peer can claim invalid height.

func (*PeerSet) NumberOfOpenSessions

func (ps *PeerSet) NumberOfOpenSessions() int

func (*PeerSet) OpenSession

func (ps *PeerSet) OpenSession(pid peer.ID) *Session

func (*PeerSet) RemovePeer

func (ps *PeerSet) RemovePeer(pid peer.ID)

func (*PeerSet) UpdateHeight

func (ps *PeerSet) UpdateHeight(pid peer.ID, height uint32)

func (*PeerSet) UpdateLastSeen

func (ps *PeerSet) UpdateLastSeen(pid peer.ID)

func (*PeerSet) UpdatePeerInfo

func (ps *PeerSet) UpdatePeerInfo(
	pid peer.ID,
	status StatusCode,
	moniker string,
	agent string,
	consKey *bls.PublicKey,
	nodeNetwork bool)

func (*PeerSet) UpdateStatus

func (ps *PeerSet) UpdateStatus(pid peer.ID, status StatusCode)

type Session

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

func (*Session) LastActivityAt

func (s *Session) LastActivityAt() time.Time

func (*Session) PeerID

func (s *Session) PeerID() peer.ID

func (*Session) SessionID

func (s *Session) SessionID() int

func (*Session) SetLastResponseCode

func (s *Session) SetLastResponseCode(code message.ResponseCode)

type StatusCode

type StatusCode int

func (StatusCode) String

func (code StatusCode) String() string

Jump to

Keyboard shortcuts

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