mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-05-15 04:26:37 +00:00
eth/downloader: don't drop peer if header is lagged
This commit is contained in:
parent
5dd0fe2f53
commit
fc96cfa05f
1 changed files with 8 additions and 2 deletions
|
|
@ -812,8 +812,14 @@ func (s *skeleton) executeTask(peer *peerConnection, req *headerRequest) {
|
||||||
|
|
||||||
case headers[0].Number.Uint64() != req.head:
|
case headers[0].Number.Uint64() != req.head:
|
||||||
// Header batch anchored at non-requested number
|
// Header batch anchored at non-requested number
|
||||||
peer.log.Debug("Invalid header response head", "have", headers[0].Number, "want", req.head)
|
if peerHeader := headers[0].Number.Uint64(); peerHeader > req.head {
|
||||||
res.Done <- errors.New("invalid header batch anchor")
|
peer.log.Debug("Invalid header response head", "have", peerHeader, "want", req.head)
|
||||||
|
res.Done <- errors.New("invalid header batch anchor")
|
||||||
|
} else {
|
||||||
|
peer.log.Debug("Peer behind requested head, rescheduling", "have", peerHeader, "want", req.head)
|
||||||
|
// Do not penalize the peer if it is behind our requested head
|
||||||
|
res.Done <- nil
|
||||||
|
}
|
||||||
s.scheduleRevertRequest(req)
|
s.scheduleRevertRequest(req)
|
||||||
|
|
||||||
case req.head >= requestHeaders && len(headers) != requestHeaders:
|
case req.head >= requestHeaders && len(headers) != requestHeaders:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue