From 0dec90571b4fae38224b456787653ff74e6c572f Mon Sep 17 00:00:00 2001 From: vyzo Date: Thu, 5 Dec 2019 21:01:37 +0200 Subject: [PATCH] shuffle peers when limiting px set --- gossipsub.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gossipsub.go b/gossipsub.go index 43a82ca..ffa4610 100644 --- a/gossipsub.go +++ b/gossipsub.go @@ -384,6 +384,7 @@ func (gs *GossipSubRouter) addBackoff(p peer.ID, topic string) { func (gs *GossipSubRouter) pxConnect(peers []*pb.PeerInfo) { if len(peers) > GossipSubPrunePeers { + shufflePeerInfo(peers) peers = peers[:GossipSubPrunePeers] } @@ -1003,3 +1004,10 @@ func shufflePeerInfo(peers []*pb.PeerInfo) { peers[i], peers[j] = peers[j], peers[i] } } + +func shufflePeerInfo(peers []*pb.PeerInfo) { + for i := range peers { + j := rand.Intn(i + 1) + peers[i], peers[j] = peers[j], peers[i] + } +}