Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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 join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant