Browse Source

move reinstatement after if statement in pex reactor

pull/4548/head
Callum Michael Waters 4 years ago
parent
commit
6ccd3324c2
2 changed files with 6 additions and 3 deletions
  1. +3
    -2
      p2p/pex/addrbook.go
  2. +3
    -1
      p2p/pex/pex_reactor.go

+ 3
- 2
p2p/pex/addrbook.go View File

@ -60,7 +60,9 @@ type AddrBook interface {
// Mark address // Mark address
MarkGood(p2p.ID) MarkGood(p2p.ID)
MarkAttempt(*p2p.NetAddress) 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 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. // NeedMoreAddrs implements AddrBook - returns true if there are not have enough addresses in the book.
func (a *addrBook) NeedMoreAddrs() bool { func (a *addrBook) NeedMoreAddrs() bool {
a.ReinstateBadPeers()
return a.Size() < needAddressThreshold return a.Size() < needAddressThreshold
} }


+ 3
- 1
p2p/pex/pex_reactor.go View File

@ -8,7 +8,7 @@ import (
"github.com/pkg/errors" "github.com/pkg/errors"
amino "github.com/tendermint/go-amino"
"github.com/tendermint/go-amino"
"github.com/tendermint/tendermint/libs/cmap" "github.com/tendermint/tendermint/libs/cmap"
tmmath "github.com/tendermint/tendermint/libs/math" tmmath "github.com/tendermint/tendermint/libs/math"
"github.com/tendermint/tendermint/libs/rand" "github.com/tendermint/tendermint/libs/rand"
@ -494,6 +494,8 @@ func (r *Reactor) ensurePeers() {
} }
if r.book.NeedMoreAddrs() { if r.book.NeedMoreAddrs() {
// 0) Check if banned nodes can be reinstated
r.book.ReinstateBadPeers()
// 1) Pick a random peer and ask for more. // 1) Pick a random peer and ask for more.
peers := r.Switch.Peers().List() peers := r.Switch.Peers().List()
peersCount := len(peers) peersCount := len(peers)


Loading…
Cancel
Save