Types
BackoffTable = Table[string, Table[PeerId, Moment]]
- Source Edit
GossipSub = ref object of FloodSub mesh*: PeerTable fanout*: PeerTable gossipsub*: PeerTable subscribedDirectPeers*: PeerTable backingOff*: BackoffTable lastFanoutPubSub*: Table[string, Moment] mcache*: MCache validationSeen*: ValidationSeenTable heartbeatFut*: Future[void] scoringHeartbeatFut*: Future[void] heartbeatRunning*: bool peerStats*: Table[PeerId, PeerStats] parameters*: GossipSubParams topicParams*: Table[string, TopicParams] directPeersLoop*: Future[void] peersInIP*: Table[MultiAddress, HashSet[PeerId]] routingRecordsHandler*: seq[RoutingRecordsHandler] heartbeatEvents*: seq[AsyncEvent]
- Source Edit
GossipSubParams {.public.} = object explicit*: bool pruneBackoff*: Duration unsubscribeBackoff*: Duration floodPublish*: bool gossipFactor*: float64 d*: int dLow*: int dHigh*: int dScore*: int dOut*: int dLazy*: int heartbeatInterval*: Duration historyLength*: int historyGossip*: int fanoutTTL*: Duration seenTTL*: Duration gossipThreshold*: float64 publishThreshold*: float64 graylistThreshold*: float64 acceptPXThreshold*: float64 opportunisticGraftThreshold*: float64 decayInterval*: Duration decayToZero*: float64 retainScore*: Duration appSpecificWeight*: float64 ipColocationFactorWeight*: float64 ipColocationFactorThreshold*: float64 behaviourPenaltyWeight*: float64 behaviourPenaltyDecay*: float64 directPeers*: Table[PeerId, seq[MultiAddress]] disconnectBadPeers*: bool enablePX*: bool bandwidthEstimatebps*: int overheadRateLimit*: Opt[tuple[bytes: int, interval: Duration]] disconnectPeerAboveRateLimit*: bool maxNumElementsInNonPriorityQueue*: int
- Source Edit
MeshMetrics = object otherPeersPerTopicMesh*: int64 otherPeersPerTopicFanout*: int64 otherPeersPerTopicGossipsub*: int64 noPeersTopics*: int64 lowPeersTopics*: int64 healthyPeersTopics*: int64 underDoutTopics*: int64
- Source Edit
PeerStats = object topicInfos*: Table[string, TopicInfo] expire*: Moment score*: float64 appScore*: float64 behaviourPenalty*: float64
- Source Edit
RoutingRecordsHandler = proc (peer: PeerId; tag: string; peers: seq[RoutingRecordsPair]) {....gcsafe, raises: [].}
- Source Edit
RoutingRecordsPair = tuple[id: PeerId, record: Option[PeerRecord]]
- Source Edit
TopicInfo = object graftTime*: Moment meshTime*: Duration inMesh*: bool meshMessageDeliveriesActive*: bool firstMessageDeliveries*: float64 meshMessageDeliveries*: float64 meshFailurePenalty*: float64 invalidMessageDeliveries*: float64
- Source Edit
TopicParams {.public.} = object topicWeight*: float64 timeInMeshWeight*: float64 timeInMeshQuantum*: Duration timeInMeshCap*: float64 firstMessageDeliveriesWeight*: float64 firstMessageDeliveriesDecay*: float64 firstMessageDeliveriesCap*: float64 meshMessageDeliveriesWeight*: float64 meshMessageDeliveriesDecay*: float64 meshMessageDeliveriesThreshold*: float64 meshMessageDeliveriesCap*: float64 meshMessageDeliveriesActivation*: Duration meshMessageDeliveriesWindow*: Duration meshFailurePenaltyWeight*: float64 meshFailurePenaltyDecay*: float64 invalidMessageDeliveriesWeight*: float64 invalidMessageDeliveriesDecay*: float64
- Source Edit
ValidationSeenTable = Table[SaltedId, HashSet[PubSubPeer]]
- Source Edit
Consts
GossipBackoffPeriod = (value: 60000000000)
- Source Edit
GossipSubCodec_10 = "/meshsub/1.0.0"
- Source Edit
GossipSubCodec_11 = "/meshsub/1.1.0"
- Source Edit
GossipSubCodec_12 = "/meshsub/1.2.0"
- Source Edit
GossipSubD = 6
- Source Edit
GossipSubDhi = 12
- Source Edit
GossipSubDlo = 4
- Source Edit
GossipSubFanoutTTL = (value: 60000000000)
- Source Edit
GossipSubHeartbeatInterval = (value: 1000000000)
- Source Edit
IHaveMaxLength = 5000
- Source Edit
IHavePeerBudget = 10
- Source Edit
PingsPeerBudget = 100
- Source Edit