From d0979258f781e697ae08effed35187d2381b04b4 Mon Sep 17 00:00:00 2001 From: vyzo Date: Sun, 22 Mar 2020 20:52:19 +0200 Subject: [PATCH] shuffle IWANT list --- gossipsub.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gossipsub.go b/gossipsub.go index 36a11fc..cda790d 100644 --- a/gossipsub.go +++ b/gossipsub.go @@ -318,6 +318,9 @@ func (gs *GossipSubRouter) handleIHave(p peer.ID, ctl *pb.ControlMessage) []*pb. iwantlst = append(iwantlst, mid) } + // ask in random order + shuffleStrings(iwantlst) + return []*pb.ControlIWant{&pb.ControlIWant{MessageIDs: iwantlst}} } @@ -1151,3 +1154,10 @@ func shufflePeerInfo(peers []*pb.PeerInfo) { peers[i], peers[j] = peers[j], peers[i] } } + +func shuffleStrings(lst []string) { + for i := range lst { + j := rand.Intn(i + 1) + lst[i], lst[j] = lst[j], lst[i] + } +}