Versions in this module Expand all Collapse all v0 v0.1.0 Apr 17, 2025 v0.0.2 Mar 27, 2025 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 GossipTracker interface + AddKnown func(peerID ids.NodeID, knownTxIDs []ids.ID, txIDs []ids.ID) ([]ids.ID, bool) + AddValidator func(validator ValidatorID) bool + GetNodeID func(txID ids.ID) (ids.NodeID, bool) + GetUnknown func(peerID ids.NodeID) ([]ValidatorID, bool) + RemoveValidator func(validatorID ids.NodeID) bool + ResetValidator func(validatorID ids.NodeID) bool + StartTrackingPeer func(peerID ids.NodeID) bool + StopTrackingPeer func(peerID ids.NodeID) bool + Tracked func(peerID ids.NodeID) bool + func NewGossipTracker(registerer prometheus.Registerer, namespace string) (GossipTracker, error) + type GossipTrackerCallback struct + GossipTracker GossipTracker + Log logging.Logger + func (*GossipTrackerCallback) OnValidatorWeightChanged(ids.NodeID, uint64, uint64) + func (g *GossipTrackerCallback) OnValidatorAdded(nodeID ids.NodeID, _ *bls.PublicKey, txID ids.ID, _ uint64) + func (g *GossipTrackerCallback) OnValidatorRemoved(nodeID ids.NodeID, _ uint64) + type IPSigner struct + func NewIPSigner(ip *utils.Atomic[netip.AddrPort], tlsSigner crypto.Signer, ...) *IPSigner + func (s *IPSigner) GetSignedIP() (*SignedIP, error) + type Info struct + ID ids.NodeID + IP netip.AddrPort + LastReceived time.Time + LastSent time.Time + ObjectedACPs set.Set[uint32] + ObservedSubnetUptimes map[ids.ID]json.Uint32 + ObservedUptime json.Uint32 + PublicIP netip.AddrPort + SupportedACPs set.Set[uint32] + TrackedSubnets set.Set[ids.ID] + Version string + 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 + Bytes *prometheus.CounterVec + BytesSaved *prometheus.GaugeVec + ClockSkewCount prometheus.Counter + ClockSkewSum prometheus.Gauge + Messages *prometheus.CounterVec + NumFailedToParse prometheus.Counter + NumSendFailed *prometheus.CounterVec + func NewMetrics(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 MockGossipTracker struct + func NewMockGossipTracker(ctrl *gomock.Controller) *MockGossipTracker + func (m *MockGossipTracker) AddKnown(arg0 ids.NodeID, arg1, arg2 []ids.ID) ([]ids.ID, bool) + func (m *MockGossipTracker) AddValidator(arg0 ValidatorID) bool + func (m *MockGossipTracker) EXPECT() *MockGossipTrackerMockRecorder + func (m *MockGossipTracker) GetNodeID(arg0 ids.ID) (ids.NodeID, bool) + func (m *MockGossipTracker) GetUnknown(arg0 ids.NodeID) ([]ValidatorID, bool) + func (m *MockGossipTracker) RemoveValidator(arg0 ids.NodeID) bool + func (m *MockGossipTracker) ResetValidator(arg0 ids.NodeID) bool + func (m *MockGossipTracker) StartTrackingPeer(arg0 ids.NodeID) bool + func (m *MockGossipTracker) StopTrackingPeer(arg0 ids.NodeID) bool + func (m *MockGossipTracker) Tracked(arg0 ids.NodeID) bool + type MockGossipTrackerMockRecorder struct + func (mr *MockGossipTrackerMockRecorder) AddKnown(arg0, arg1, arg2 interface{}) *gomock.Call + func (mr *MockGossipTrackerMockRecorder) AddValidator(arg0 interface{}) *gomock.Call + func (mr *MockGossipTrackerMockRecorder) GetNodeID(arg0 interface{}) *gomock.Call + func (mr *MockGossipTrackerMockRecorder) GetUnknown(arg0 interface{}) *gomock.Call + func (mr *MockGossipTrackerMockRecorder) RemoveValidator(arg0 interface{}) *gomock.Call + func (mr *MockGossipTrackerMockRecorder) ResetValidator(arg0 interface{}) *gomock.Call + func (mr *MockGossipTrackerMockRecorder) StartTrackingPeer(arg0 interface{}) *gomock.Call + func (mr *MockGossipTrackerMockRecorder) StopTrackingPeer(arg0 interface{}) *gomock.Call + func (mr *MockGossipTrackerMockRecorder) Tracked(arg0 interface{}) *gomock.Call + 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 netip.AddrPort, 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 + AddrPort netip.AddrPort + 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 + type ValidatorID struct + NodeID ids.NodeID + TxID ids.ID