mirror of
https://github.com/status-im/nim-libp2p.git
synced 2025-02-27 03:50:38 +00:00
switch to deque
This commit is contained in:
parent
20ea5b5a40
commit
129e54a70b
@ -12,7 +12,7 @@ when (NimMajor, NimMinor) < (1, 4):
|
|||||||
else:
|
else:
|
||||||
{.push raises: [].}
|
{.push raises: [].}
|
||||||
|
|
||||||
import std/[tables, sequtils, sets, algorithm]
|
import std/[tables, sequtils, sets, algorithm, deques]
|
||||||
import chronos, chronicles, metrics
|
import chronos, chronicles, metrics
|
||||||
import "."/[types, scoring]
|
import "."/[types, scoring]
|
||||||
import ".."/[pubsubpeer, peertable, timedcache, mcache, floodsub, pubsub]
|
import ".."/[pubsubpeer, peertable, timedcache, mcache, floodsub, pubsub]
|
||||||
@ -625,10 +625,9 @@ proc onHeartbeat(g: GossipSub) {.raises: [Defect].} =
|
|||||||
# reset IHAVE cap
|
# reset IHAVE cap
|
||||||
block:
|
block:
|
||||||
for peer in g.peers.values:
|
for peer in g.peers.values:
|
||||||
if peer.sentIHaves.len >= g.parameters.historyLength:
|
peer.sentIHaves.addFirst(default(HashSet[MessageId]))
|
||||||
peer.sentIHaves = default(HashSet[MessageId]) & peer.sentIHaves[0..^2]
|
if peer.sentIHaves.len > g.parameters.historyLength:
|
||||||
else:
|
discard peer.sentIHaves.popLast()
|
||||||
peer.sentIHaves.insert(default(HashSet[MessageId]), 0)
|
|
||||||
peer.iHaveBudget = IHavePeerBudget
|
peer.iHaveBudget = IHavePeerBudget
|
||||||
|
|
||||||
var meshMetrics = MeshMetrics()
|
var meshMetrics = MeshMetrics()
|
||||||
|
@ -12,7 +12,7 @@ when (NimMajor, NimMinor) < (1, 4):
|
|||||||
else:
|
else:
|
||||||
{.push raises: [].}
|
{.push raises: [].}
|
||||||
|
|
||||||
import std/[sequtils, strutils, tables, hashes, options, sets]
|
import std/[sequtils, strutils, tables, hashes, options, sets, deques]
|
||||||
import stew/results
|
import stew/results
|
||||||
import chronos, chronicles, nimcrypto/sha2, metrics
|
import chronos, chronicles, nimcrypto/sha2, metrics
|
||||||
import rpc/[messages, message, protobuf],
|
import rpc/[messages, message, protobuf],
|
||||||
@ -62,7 +62,7 @@ type
|
|||||||
observers*: ref seq[PubSubObserver] # ref as in smart_ptr
|
observers*: ref seq[PubSubObserver] # ref as in smart_ptr
|
||||||
|
|
||||||
score*: float64
|
score*: float64
|
||||||
sentIHaves*: seq[HashSet[MessageId]]
|
sentIHaves*: Deque[HashSet[MessageId]]
|
||||||
iHaveBudget*: int
|
iHaveBudget*: int
|
||||||
maxMessageSize: int
|
maxMessageSize: int
|
||||||
appScore*: float64 # application specific score
|
appScore*: float64 # application specific score
|
||||||
@ -301,12 +301,12 @@ proc new*(
|
|||||||
codec: string,
|
codec: string,
|
||||||
maxMessageSize: int): T =
|
maxMessageSize: int): T =
|
||||||
|
|
||||||
T(
|
result = T(
|
||||||
getConn: getConn,
|
getConn: getConn,
|
||||||
onEvent: onEvent,
|
onEvent: onEvent,
|
||||||
codec: codec,
|
codec: codec,
|
||||||
peerId: peerId,
|
peerId: peerId,
|
||||||
sentIHaves: newSeq[HashSet[MessageId]](1),
|
|
||||||
connectedFut: newFuture[void](),
|
connectedFut: newFuture[void](),
|
||||||
maxMessageSize: maxMessageSize
|
maxMessageSize: maxMessageSize
|
||||||
)
|
)
|
||||||
|
result.sentIHaves.addFirst(default(HashSet[MessageId]))
|
||||||
|
@ -2,7 +2,7 @@ include ../../libp2p/protocols/pubsub/gossipsub
|
|||||||
|
|
||||||
{.used.}
|
{.used.}
|
||||||
|
|
||||||
import options
|
import std/[options, deques]
|
||||||
import stew/byteutils
|
import stew/byteutils
|
||||||
import ../../libp2p/builders
|
import ../../libp2p/builders
|
||||||
import ../../libp2p/errors
|
import ../../libp2p/errors
|
||||||
|
Loading…
x
Reference in New Issue
Block a user