mirror of
https://github.com/status-im/nim-libp2p.git
synced 2025-02-18 15:59:22 +00:00
add back topics in peers, re-enable flood publish
This commit is contained in:
parent
028b390c7f
commit
466f3c9171
@ -517,12 +517,12 @@ method publish*(g: GossipSub,
|
|||||||
var peers = g.explicitPeers
|
var peers = g.explicitPeers
|
||||||
|
|
||||||
if topic.len > 0: # data could be 0/empty
|
if topic.len > 0: # data could be 0/empty
|
||||||
# if g.parameters.floodPublish:
|
if g.parameters.floodPublish:
|
||||||
# for id, peer in g.peers:
|
for id, peer in g.peers:
|
||||||
# if peer.topics.find(topic) != -1 and
|
if topic in peer.topics and
|
||||||
# peer.score() >= g.parameters.publishThreshold:
|
peer.score() >= g.parameters.publishThreshold:
|
||||||
# debug "publish: including flood/high score peer", peer = id
|
debug "publish: including flood/high score peer", peer = id
|
||||||
# peers.incl(id)
|
peers.incl(id)
|
||||||
|
|
||||||
if topic in g.topics: # if we're subscribed use the mesh
|
if topic in g.topics: # if we're subscribed use the mesh
|
||||||
peers = g.mesh.getOrDefault(topic)
|
peers = g.mesh.getOrDefault(topic)
|
||||||
|
@ -81,9 +81,17 @@ method subscribeTopic*(p: PubSub,
|
|||||||
subscribe: bool,
|
subscribe: bool,
|
||||||
peerId: string) {.base, async.} =
|
peerId: string) {.base, async.} =
|
||||||
var peer = p.peers.getOrDefault(peerId)
|
var peer = p.peers.getOrDefault(peerId)
|
||||||
|
|
||||||
if isNil(peer) or isNil(peer.peerInfo): # should not happen
|
if isNil(peer) or isNil(peer.peerInfo): # should not happen
|
||||||
if subscribe:
|
if subscribe:
|
||||||
warn "subscribeTopic but peer was unknown!"
|
warn "subscribeTopic (subscribe) but peer was unknown!", peer = peerId
|
||||||
|
assert(false, "subscribeTopic (subscribe) but peer was unknown!") # bad , stop here if debug
|
||||||
|
return
|
||||||
|
|
||||||
|
if subscribe:
|
||||||
|
peer.topics.incl(topic)
|
||||||
|
else:
|
||||||
|
peer.topics.excl(topic)
|
||||||
|
|
||||||
method rpcHandler*(p: PubSub,
|
method rpcHandler*(p: PubSub,
|
||||||
peer: PubSubPeer,
|
peer: PubSubPeer,
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
## This file may not be copied, modified, or distributed except according to
|
## This file may not be copied, modified, or distributed except according to
|
||||||
## those terms.
|
## those terms.
|
||||||
|
|
||||||
import options, hashes, strutils, tables, hashes
|
import options, hashes, strutils, tables, hashes, sets
|
||||||
import chronos, chronicles, nimcrypto/sha2, metrics
|
import chronos, chronicles, nimcrypto/sha2, metrics
|
||||||
import rpc/[messages, message, protobuf],
|
import rpc/[messages, message, protobuf],
|
||||||
timedcache,
|
timedcache,
|
||||||
@ -45,6 +45,7 @@ type
|
|||||||
sendConn: Connection
|
sendConn: Connection
|
||||||
peerInfo*: PeerInfo
|
peerInfo*: PeerInfo
|
||||||
handler*: RPCHandler
|
handler*: RPCHandler
|
||||||
|
topics*: HashSet[string]
|
||||||
sentRpcCache: TimedCache[string] # cache for already sent messages
|
sentRpcCache: TimedCache[string] # cache for already sent messages
|
||||||
recvdRpcCache: TimedCache[string] # cache for already received messages
|
recvdRpcCache: TimedCache[string] # cache for already received messages
|
||||||
refs*: int # refcount of the connections this peer is handling
|
refs*: int # refcount of the connections this peer is handling
|
||||||
@ -192,3 +193,4 @@ proc newPubSubPeer*(peerInfo: PeerInfo,
|
|||||||
result.sentRpcCache = newTimedCache[string](2.minutes)
|
result.sentRpcCache = newTimedCache[string](2.minutes)
|
||||||
result.recvdRpcCache = newTimedCache[string](2.minutes)
|
result.recvdRpcCache = newTimedCache[string](2.minutes)
|
||||||
result.onConnect = newAsyncEvent()
|
result.onConnect = newAsyncEvent()
|
||||||
|
result.topics = initHashSet[string]()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user