Skip to content
This repository has been archived by the owner on Feb 18, 2025. It is now read-only.

eth/downloader: remove header rollback mechanism #668

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

chiphamskymavis
Copy link
Contributor

This pull request removes the rollback mechanism in downloader.

Originally, this mechanism is tailored for Proof-of-Work consensus engine, which does PoW verification randomly. Therefore, whenever sync process exits abnormally, a part of tip headers will be removed for safety consideration.

In terms of Proof-of-Stake(also for Proof-of-Authority), each header is verified one by one, there is no reason to rewind the written headers which are certainly valid.

And another big reason for removing this additional mechanism is: inside of Rollback, the genesis state may be committed. It results in a weird scenario that persistent state is both modified by the Rollback function and also the state syncer. The concurrent state write will result in a corrupted state eventually, should be avoided in the first place.

This is partially cherry-pick: ethereum/go-ethereum#28147

@chiphamskymavis chiphamskymavis added this to the v2.9.1 milestone Jan 22, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant