Skip to content
This repository was archived by the owner on Jun 6, 2025. It is now read-only.

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.

2 participants