From afae39c5af6d12fe8401f5a4ccacf1e5cec6d10f Mon Sep 17 00:00:00 2001 From: tycho garen Date: Tue, 14 Jun 2022 16:15:20 -0400 Subject: [PATCH] actually shuffle peers more --- internal/p2p/peermanager.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/p2p/peermanager.go b/internal/p2p/peermanager.go index 0d94effec..ad2aae5c5 100644 --- a/internal/p2p/peermanager.go +++ b/internal/p2p/peermanager.go @@ -861,6 +861,7 @@ func (m *PeerManager) Advertise(peerID types.NodeID, limit uint16) []NodeAddress addresses = append(addresses, m.options.SelfAddress) } +OUTER: for _, peer := range m.store.Ranked() { if peer.ID == peerID { continue @@ -870,8 +871,8 @@ func (m *PeerManager) Advertise(peerID types.NodeID, limit uint16) []NodeAddress } for nodeAddr, addressInfo := range peer.AddressInfo { - if len(addresses) >= int(limit) { - return addresses + if len(addresses) >= int(limit)*2 { + break OUTER } // only add non-private NodeIDs @@ -880,6 +881,7 @@ func (m *PeerManager) Advertise(peerID types.NodeID, limit uint16) []NodeAddress } } } + rand.Shuffle(len(addresses), func(i, j int) { addresses[i], addresses[j] = addresses[j], addresses[i] })