Versions in this module Expand all Collapse all v1 v1.11.13-rc.2 Dec 4, 2024 v1.0.0 Dec 4, 2024 Changes in this version + func NoPrecondition(Peer) bool + func TLSConfig(cert tls.Certificate, keyLogWriter io.Writer) *tls.Config + type Config struct + Beacons validators.Manager + Clock mockable.Clock + IPSigner *IPSigner + InboundMsgThrottler throttling.InboundMsgThrottler + LastReceived int64 + LastSent int64 + Log logging.Logger + MaxClockDifference time.Duration + MessageCreator message.Creator + Metrics *Metrics + MySubnets set.Set[ids.ID] + Network Network + NetworkID uint32 + ObjectedACPs []uint32 + PingFrequency time.Duration + PongTimeout time.Duration + ReadBufferSize int + ResourceTracker tracker.ResourceTracker + Router router.InboundHandler + SupportedACPs []uint32 + UptimeCalculator uptime.Calculator + Validators validators.Manager + VersionCompatibility version.Compatibility + WriteBufferSize int + type IPSigner struct + func NewIPSigner(ip ips.DynamicIPPort, tlsSigner crypto.Signer, blsSigner *bls.SecretKey) *IPSigner + func (s *IPSigner) GetSignedIP() (*SignedIP, error) + type Info struct + ID ids.NodeID + IP string + LastReceived time.Time + LastSent time.Time + ObjectedACPs set.Set[uint32] + ObservedSubnetUptimes map[ids.ID]json.Uint32 + ObservedUptime json.Uint32 + PublicIP string + SupportedACPs set.Set[uint32] + TrackedSubnets set.Set[ids.ID] + Version string + type MessageMetrics struct + NumFailed prometheus.Counter + NumReceived prometheus.Counter + NumSent prometheus.Counter + ReceivedBytes prometheus.Counter + SavedReceivedBytes metric.Averager + SavedSentBytes metric.Averager + SentBytes prometheus.Counter + func NewMessageMetrics(op message.Op, namespace string, metrics prometheus.Registerer, ...) *MessageMetrics + type MessageQueue interface + Close func() + Pop func() (message.OutboundMessage, bool) + PopNow func() (message.OutboundMessage, bool) + Push func(ctx context.Context, msg message.OutboundMessage) bool + func NewBlockingMessageQueue(onFailed SendFailedCallback, log logging.Logger, bufferSize int) MessageQueue + func NewThrottledMessageQueue(onFailed SendFailedCallback, id ids.NodeID, log logging.Logger, ...) MessageQueue + type Metrics struct + ClockSkew metric.Averager + FailedToParse prometheus.Counter + Log logging.Logger + MessageMetrics map[message.Op]*MessageMetrics + func NewMetrics(log logging.Logger, namespace string, registerer prometheus.Registerer) (*Metrics, error) + func (m *Metrics) MultipleSendsFailed(op message.Op, count int) + func (m *Metrics) Received(msg message.InboundMessage, msgLen uint32) + func (m *Metrics) SendFailed(msg message.OutboundMessage) + func (m *Metrics) Sent(msg message.OutboundMessage) + type Network interface + AllowConnection func(peerID ids.NodeID) bool + Connected func(peerID ids.NodeID) + Disconnected func(peerID ids.NodeID) + KnownPeers func() (bloomFilter []byte, salt []byte) + Peers func(peerID ids.NodeID, knownPeers *bloom.ReadFilter, peerSalt []byte) []*ips.ClaimedIPPort + Track func(ips []*ips.ClaimedIPPort) error + var TestNetwork Network = testNetwork{} + type Peer interface + AwaitClosed func(ctx context.Context) error + AwaitReady func(ctx context.Context) error + Cert func() *staking.Certificate + Closed func() bool + ID func() ids.NodeID + IP func() *SignedIP + Info func() Info + LastReceived func() time.Time + LastSent func() time.Time + ObservedUptime func(subnetID ids.ID) (uint32, bool) + Ready func() bool + Send func(ctx context.Context, msg message.OutboundMessage) bool + StartClose func() + StartSendGetPeerList func() + TrackedSubnets func() set.Set[ids.ID] + Version func() *version.Application + func Start(config *Config, conn net.Conn, cert *staking.Certificate, id ids.NodeID, ...) Peer + func StartTestPeer(ctx context.Context, ip ips.IPPort, networkID uint32, ...) (Peer, error) + type SendFailedCallback interface + SendFailed func(message.OutboundMessage) + type SendFailedFunc func(message.OutboundMessage) + func (f SendFailedFunc) SendFailed(msg message.OutboundMessage) + type Set interface + Add func(peer Peer) + AllInfo func() []Info + GetByID func(nodeID ids.NodeID) (Peer, bool) + GetByIndex func(index int) (Peer, bool) + Info func(nodeIDs []ids.NodeID) []Info + Len func() int + Remove func(nodeID ids.NodeID) + Sample func(n int, precondition func(Peer) bool) []Peer + func NewSet() Set + type SignedIP struct + BLSSignature *bls.Signature + BLSSignatureBytes []byte + TLSSignature []byte + func (ip *SignedIP) Verify(cert *staking.Certificate, maxTimestamp time.Time) error + type UnsignedIP struct + Timestamp uint64 + func (ip *UnsignedIP) Sign(tlsSigner crypto.Signer, blsSigner *bls.SecretKey) (*SignedIP, error) + type Upgrader interface + Upgrade func(net.Conn) (ids.NodeID, net.Conn, *staking.Certificate, error) + func NewTLSClientUpgrader(config *tls.Config, invalidCerts prometheus.Counter) Upgrader + func NewTLSServerUpgrader(config *tls.Config, invalidCerts prometheus.Counter) Upgrader