Documentation ¶
Index ¶
Constants ¶
View Source
const (
CoreProtocolID = "iota-core/1.0.0"
)
View Source
const DefaultReconnectInterval = 5 * time.Second
Variables ¶
View Source
var ( // ErrNotRunning is returned when a peer is added to a stopped or not yet started network manager. ErrNotRunning = ierrors.New("manager not running") // ErrUnknownPeer is returned when the specified peer is not known to the network manager. ErrUnknownPeer = ierrors.New("unknown neighbor") // ErrLoopbackPeer is returned when the own peer is added. ErrLoopbackPeer = ierrors.New("loopback connection not allowed") // ErrDuplicatePeer is returned when the same peer is added more than once. ErrDuplicatePeer = ierrors.New("already connected") // ErrFirstPacketNotReceived is returned when the first packet from a peer is not received. ErrFirstPacketNotReceived = ierrors.New("first packet not received") // ErrMaxAutopeeringPeersReached is returned when the maximum number of autopeering peers is reached. ErrMaxAutopeeringPeersReached = ierrors.New("max autopeering peers reached") )
Functions ¶
This section is empty.
Types ¶
type ConnectionStatus ¶
type ConnectionStatus string
ConnectionStatus is an enum for the peer connection status in the gossip layer.
const ( // ConnStatusDisconnected means that there is no real connection established in the gossip layer for that peer. ConnStatusDisconnected ConnectionStatus = "disconnected" // ConnStatusConnected means that there is a real connection established in the gossip layer for that peer. ConnStatusConnected ConnectionStatus = "connected" )
type DB ¶
type DB struct {
// contains filtered or unexported fields
}
DB is the peer database, storing previously seen peers and any collected properties of them.
func (*DB) UpdatePeer ¶
UpdatePeer updates a peer in the database.
type Manager ¶
type Manager interface { Endpoint DialPeer(ctx context.Context, peer *Peer) error OnNeighborAdded(handler func(Neighbor)) *event.Hook[func(Neighbor)] OnNeighborRemoved(handler func(Neighbor)) *event.Hook[func(Neighbor)] Neighbor(peerID peer.ID) (Neighbor, error) AllNeighbors() []Neighbor AutopeeringNeighbors() []Neighbor DropNeighbor(peerID peer.ID) error NeighborExists(peerID peer.ID) bool P2PHost() host.Host Start(ctx context.Context, networkID string) error Shutdown() AddManualPeers(multiAddresses ...multiaddr.Multiaddr) error }
type Peer ¶
type Peer struct { ID peer.ID PublicKey ed25519.PublicKey PeerAddresses []multiaddr.Multiaddr ConnStatus *atomic.Value RemoveCh chan struct{} DoneCh chan struct{} }
func NewPeerFromAddrInfo ¶
func NewPeerFromMultiAddr ¶
func (*Peer) GetConnStatus ¶
func (p *Peer) GetConnStatus() ConnectionStatus
func (*Peer) SetConnStatus ¶
func (p *Peer) SetConnStatus(cs ConnectionStatus)
func (*Peer) ToAddrInfo ¶
type PeerDescriptor ¶
type PeerDescriptor struct {
Addresses []multiaddr.Multiaddr `json:"addresses"`
}
PeerDescriptor defines a peer record in the manual peering layer.
Click to show internal directories.
Click to hide internal directories.