-
Notifications
You must be signed in to change notification settings - Fork 807
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
Unable to restart lighthouse if altair fork is missed #2526
Comments
I'm going to have a go at this. It already looks like it might be a bit painful: all of our decoding methods assume they can determine the structure from the slot, so it might be messy to backtrack from the head of the minority chain to the pre-fork block while loading + deleting along the way. |
I'll flag this as |
## Issue Addressed Closes #2526 ## Proposed Changes If the head block fails to decode on start up, do two things: 1. Revert all blocks between the head and the most recent hard fork (to `fork_slot - 1`). 2. Reset fork choice so that it contains the new head, and all blocks back to the new head's finalized checkpoint. ## Additional Info I tweaked some of the beacon chain test harness stuff in order to make it generic enough to test with a non-zero slot clock on start-up. In the process I consolidated all the various `new_` methods into a single generic one which will hopefully serve all future uses 🤞
Resolved in #2529 |
Description
If you have lighthouse running v1.4 until after the altair fork occurs and then try to upgrade to v1.5, lighthouse won't start up. This is because we attempt to deserialize the head of the chain by first deserializing the slot of the head block, and comparing it to the fork schedule. But when we saved the block to the database, we used the pre-fork serialization (even though the slot of the block is post-fork).
Version
1.5.0-rc.1
Present Behaviour
Expected Behaviour
I think we should automatically try to re-sync from before the fork in this scenario
Steps to resolve
Thinking we could do either or both of these:
--resync-from-fork altair
to help recover from situations like thisThe text was updated successfully, but these errors were encountered: