From efb09f298435a07417b0a9b921c079c8ea4711f7 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 0c9bda0..33f02dc 100644 --- a/gossipsub.go +++ b/gossipsub.go @@ -289,6 +289,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] } @@ -898,3 +899,10 @@ func shufflePeers(peers []peer.ID) { 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] + } +}