From 41141c028bf31bc00e72600376f0b0b0298fe1cc Mon Sep 17 00:00:00 2001 From: NIC619 Date: Fri, 19 Jul 2019 19:40:26 +0800 Subject: [PATCH] FIx: check topic exist in `pubsub.peer_topics` --- libp2p/pubsub/gossipsub.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/libp2p/pubsub/gossipsub.py b/libp2p/pubsub/gossipsub.py index 6cf43802..3df5b785 100644 --- a/libp2p/pubsub/gossipsub.py +++ b/libp2p/pubsub/gossipsub.py @@ -267,19 +267,20 @@ class GossipSub(IPubsubRouter): num_mesh_peers_in_topic = len(self.mesh[topic]) if num_mesh_peers_in_topic < self.degree_low: - gossipsub_peers_in_topic = [peer for peer in self.pubsub.peer_topics[topic] - if peer in self.peers_gossipsub] + if topic in self.pubsub.peer_topics: + gossipsub_peers_in_topic = [peer for peer in self.pubsub.peer_topics[topic] + if peer in self.peers_gossipsub] - # Select D - |mesh[topic]| peers from peers.gossipsub[topic] - mesh[topic] - selected_peers = GossipSub.select_from_minus(self.degree - num_mesh_peers_in_topic, - gossipsub_peers_in_topic, self.mesh[topic]) + # Select D - |mesh[topic]| peers from peers.gossipsub[topic] - mesh[topic] + selected_peers = GossipSub.select_from_minus(self.degree - num_mesh_peers_in_topic, + gossipsub_peers_in_topic, self.mesh[topic]) - for peer in selected_peers: - # Add peer to mesh[topic] - self.mesh[topic].append(peer) + for peer in selected_peers: + # Add peer to mesh[topic] + self.mesh[topic].append(peer) - # Emit GRAFT(topic) control message to peer - await self.emit_graft(topic, peer) + # Emit GRAFT(topic) control message to peer + await self.emit_graft(topic, peer) if num_mesh_peers_in_topic > self.degree_high: # Select |mesh[topic]| - D peers from mesh[topic]