fix grafted defect

This commit is contained in:
Giovanni Petrantoni 2020-07-22 10:19:53 +09:00
parent aded78f259
commit f122ec9dbf

View File

@ -285,7 +285,7 @@ proc grafted(g: GossipSub, p: PubSubPeer, topic: string) =
debug "grafted", p
do:
doAssert(false, "grafted: TopicInfo key not found for " & $p)
doAssert(false, "grafted: peerStats key not found for " & $p)
proc pruned(g: GossipSub, p: PubSubPeer, topic: string) =
g.peerStats.withValue(p, stats) do:
@ -685,7 +685,12 @@ proc handleGraft(g: GossipSub,
# If they send us a graft before they send us a subscribe, what should
# we do? For now, we add them to mesh but don't add them to gossipsub.
if peer notin g.peerStats:
g.peerStats[peer] = PeerStats()
if topic in g.topics:
discard g.gossipsub.addPeer(topic, peer)
if g.mesh.peers(topic) < GossipSubDHi:
# In the spec, there's no mention of DHi here, but implicitly, a
# peer will be removed from the mesh on next rebalance, so we don't want