Open
Description
Although snap is great, there are a few classes of users that I don't think it serves the best:
- Ethereum users with poor internet, but good hardware -- for these users it will take a while for the healing phase to complete
- Ethereum power-users who need to sync new nodes and have powerful hardware capable of quickly recomputing state -- yes healing will be relatively fast, but likely not as fast as fully executing the blocks from a recent state checkpoint
- Ethereum clones with high gas limits -- some of these churn state so much that most hardware / networks are insufficient to ever complete healing (snap sync does not work on polygon fork #25965)
For these reasons, it might be interesting to allow users to opt-in to some type of warp-sync-like-scheme using snap.
The general idea would be to have a way to tell geth to stop at certain intervals to "preserve" the snap layers for that block and to also allow clients to pass a specific node id to snap sync from and avoid pivoting to a later block (so long as the target continues responding).