eth/downloader: fix ancestor searching for light syncing (#19136)
This commit is contained in:
parent
95b2ec7169
commit
6c312a24b6
|
@ -665,10 +665,12 @@ func (d *Downloader) findAncestor(p *peerConnection, remoteHeader *types.Header)
|
||||||
localHeight = d.lightchain.CurrentHeader().Number.Uint64()
|
localHeight = d.lightchain.CurrentHeader().Number.Uint64()
|
||||||
}
|
}
|
||||||
p.log.Debug("Looking for common ancestor", "local", localHeight, "remote", remoteHeight)
|
p.log.Debug("Looking for common ancestor", "local", localHeight, "remote", remoteHeight)
|
||||||
|
|
||||||
|
// Recap floor value for binary search
|
||||||
if localHeight >= MaxForkAncestry {
|
if localHeight >= MaxForkAncestry {
|
||||||
// We're above the max reorg threshold, find the earliest fork point
|
// We're above the max reorg threshold, find the earliest fork point
|
||||||
floor = int64(localHeight - MaxForkAncestry)
|
floor = int64(localHeight - MaxForkAncestry)
|
||||||
|
}
|
||||||
// If we're doing a light sync, ensure the floor doesn't go below the CHT, as
|
// If we're doing a light sync, ensure the floor doesn't go below the CHT, as
|
||||||
// all headers before that point will be missing.
|
// all headers before that point will be missing.
|
||||||
if d.mode == LightSync {
|
if d.mode == LightSync {
|
||||||
|
@ -688,7 +690,7 @@ func (d *Downloader) findAncestor(p *peerConnection, remoteHeader *types.Header)
|
||||||
floor = int64(d.genesis) - 1
|
floor = int64(d.genesis) - 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
from, count, skip, max := calculateRequestSpan(remoteHeight, localHeight)
|
from, count, skip, max := calculateRequestSpan(remoteHeight, localHeight)
|
||||||
|
|
||||||
p.log.Trace("Span searching for common ancestor", "count", count, "from", from, "skip", skip)
|
p.log.Trace("Span searching for common ancestor", "count", count, "from", from, "skip", skip)
|
||||||
|
|
Loading…
Reference in New Issue