Fix corrupted DB on networks where the first slot is skipped (Holesky) #4985
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue Addressed
#4943 (co-authored with @michaelsproul)
Proposed Changes
There was a bug in earlier versions of Lighthouse where zero block roots are incorrectly stored before the first block slot. This happens on nodes that were checkpoint sync'd on a network that has skipped slot(s) before the first block. The additional consequence is that Lighthouse BN could return duplicate genesis blocks in
BlocksByRange
responses.This bug was fixed in #4820, so it should not be an issue for nodes that are sync'd using v4.6.0 (next release) on Holesky. This PR contains migration script to heal the database on nodes that were checkpoint sync'd using 4.5.0, so they would no longer serve duplicate genesis blocks.
See @michaelsproul's comment here for more details.