-
Notifications
You must be signed in to change notification settings - Fork 20.2k
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
Snapshot relevant tools #22264
Comments
A few more ideas:
This can be integrated into the current generation/rebuilding procedure seamlessly. In the following scenarios:
The overhead is the sequential iteration for flat data and runs the range proof(it's kind of cheap compared with trie iteration). The benefit is we can skip most of the regenration(trie iteration is expensive) and reuse most of the existent data. For the scenario, we are building the snapshot from the scratch, we can add some tricks by skipping the prechecks. |
The entire idea is implemented in #22465 :) |
I think we have this now (at least implicitly, if not as explicit command line commands) -- can we close it? |
YES! |
Snapshot is an important component used in Geth, which is basically the flatten format state for fast access and iteration.
However, the snapshot generation is quite slow(generated by the trie iteration) and it's fragile. It's really annoying to re-generate the snapshot after some exceptions.
This issue proposes a tool to recover the corrupted snapshot, so that we can avoid the regeneration in most cases.
The tool can be used for verifying the correctness of the snapshot, especially the disk layer. Local merkle trie and range prover can be used to detect the corrupted range in the disk layer(if the merkle trie is not corrupted) and fix it.
The tool can be used to run the generation or wipe the snapshot offline(probably it's faster than online version)
And also the tool can be used to apply the state transitions based on a complete snapshot. It's very common that the user enables the snapshot previously and later forget to enable it again. So the gapped snapshot is entirely useless. The tool can fix the gap by executing the relevant blocks.
The text was updated successfully, but these errors were encountered: