From 6ccd3324c2b58a0ff79c0085d2a6d1c87025d954 Mon Sep 17 00:00:00 2001 From: Callum Michael Waters Date: Tue, 10 Mar 2020 19:01:56 +0100 Subject: [PATCH] move reinstatement after if statement in pex reactor --- p2p/pex/addrbook.go | 5 +++-- p2p/pex/pex_reactor.go | 4 +++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/p2p/pex/addrbook.go b/p2p/pex/addrbook.go index 3bf331172..15019f5cd 100644 --- a/p2p/pex/addrbook.go +++ b/p2p/pex/addrbook.go @@ -60,7 +60,9 @@ type AddrBook interface { // Mark address MarkGood(p2p.ID) MarkAttempt(*p2p.NetAddress) - MarkBad(*p2p.NetAddress) + MarkBad(*p2p.NetAddress) // Move peer to bad peers list + // Add bad peers back to addrBook + ReinstateBadPeers() IsGood(*p2p.NetAddress) bool @@ -236,7 +238,6 @@ func (a *addrBook) HasAddress(addr *p2p.NetAddress) bool { // NeedMoreAddrs implements AddrBook - returns true if there are not have enough addresses in the book. func (a *addrBook) NeedMoreAddrs() bool { - a.ReinstateBadPeers() return a.Size() < needAddressThreshold } diff --git a/p2p/pex/pex_reactor.go b/p2p/pex/pex_reactor.go index 3a3d2d7de..66ec77503 100644 --- a/p2p/pex/pex_reactor.go +++ b/p2p/pex/pex_reactor.go @@ -8,7 +8,7 @@ import ( "github.com/pkg/errors" - amino "github.com/tendermint/go-amino" + "github.com/tendermint/go-amino" "github.com/tendermint/tendermint/libs/cmap" tmmath "github.com/tendermint/tendermint/libs/math" "github.com/tendermint/tendermint/libs/rand" @@ -494,6 +494,8 @@ func (r *Reactor) ensurePeers() { } if r.book.NeedMoreAddrs() { + // 0) Check if banned nodes can be reinstated + r.book.ReinstateBadPeers() // 1) Pick a random peer and ask for more. peers := r.Switch.Peers().List() peersCount := len(peers)