eth/downloader: retrieve pivot header from local chain if necessary (#24610)

* eth/downloader: retrieve pivot header from local chain if necessary

* eth/downloader: improve readability

* eth/downloader: update fix

* eth/downloader: add beacon sync tests

* eth/downloader: remove duplicated code
This commit is contained in:
rjl493456442
2022-04-04 15:10:16 +08:00
committed by GitHub
parent 1e973a96b4
commit 28ec26094b
3 changed files with 77 additions and 3 deletions

View File

@ -265,7 +265,11 @@ func (d *Downloader) fetchBeaconHeaders(from uint64) error {
hashes = make([]common.Hash, 0, maxHeadersProcess)
)
for i := 0; i < maxHeadersProcess && from <= head.Number.Uint64(); i++ {
headers = append(headers, d.skeleton.Header(from))
header := d.skeleton.Header(from)
if header == nil {
header = d.lightchain.GetHeaderByNumber(from)
}
headers = append(headers, header)
hashes = append(hashes, headers[i].Hash())
from++
}