-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Investigate a broken snapshot after archive sync #118
Comments
Snapshot verification showed that the file itself is good, all storageRoots match what the resolvers for each contract's storage return |
|
It turned out that the snapshot was broken, and it was not picked up because the verification code was incorrect. Now the verification code is fixed, there are a few contracts for which the storage Roots do not match:
|
The smallest contract with the mismatched storage root seems to be:
corresponding to the hash
|
Compared storage of contract
the incorrect value in the snapshot is:
|
Binary search on the transaction where the value After block 8608319: So the modification happens in the block 8727053. It has 91 transactions. Binary search on transactions: So it happens in the transaction number 46. Transaction ID is 0x6737962c4d8b8fb1592ed4874e7e5235f0d0d5fa5f5fb11c7cd9c25a7cdb80e1 |
Crucial observation (I think). The incorrect value |
Conclusion is that the rewinding the blocks that contain storage modifications ends up adding RLP-wrapping to the storage values |
Looks like the number of mismatched storage items is not large:
|
After having performed archive sync, I transmitted the database (around 500Gb) to another computer and tried to resume sync from it.
However, the sync very soon failed because the resolution of one of the contracts returned a wrong
storageRoot
.The success of transmission has been checked by performing SHA256 on both files, and the results matched.
The plan is to compare
storageRoot
for all contracts with the computed values, then choose the smallest contract where the mismatch happens, and attempt to find the cause for the mismatch.The text was updated successfully, but these errors were encountered: