Unverified Commit 19a1c950 authored by Marius van der Wijden's avatar Marius van der Wijden Committed by GitHub

eth/downloader: cache parent hash instead of recomputing (#21678)

parent 905ed109
......@@ -712,6 +712,7 @@ func (q *queue) DeliverHeaders(id string, headers []*types.Header, headerProcCh
}
}
if accepted {
parentHash := headers[0].Hash()
for i, header := range headers[1:] {
hash := header.Hash()
if want := request.From + 1 + uint64(i); header.Number.Uint64() != want {
......@@ -719,11 +720,13 @@ func (q *queue) DeliverHeaders(id string, headers []*types.Header, headerProcCh
accepted = false
break
}
if headers[i].Hash() != header.ParentHash {
if parentHash != header.ParentHash {
log.Warn("Header broke chain ancestry", "peer", id, "number", header.Number, "hash", hash)
accepted = false
break
}
// Set-up parent hash for next round
parentHash = hash
}
}
// If the batch of headers wasn't accepted, mark as unavailable
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment