-
Notifications
You must be signed in to change notification settings - Fork 227
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
[FEAT] Support genesis from a merged state #4193
Comments
Nimbus should support this via https://nimbus.guide/trusted-node-sync.html#sync-from-checkpoint-files. One can capture a post-merge checkpoint state/block pair and start the test Nimbus client using it. |
Would this also apply to a genesis state? I.e: automation/testing tools would create a genesis state, use an |
#4230 being merged helps here. I'm specifically suggesting using the There are some caveats: (1) it will attempt to backfill once it's done syncing to head, and in general, won't treat the state you provide as a true genesis state. It will start fine merged though; (2) this epoch-alignment requirement means that it probably cannot be the merge transition block; and (3) if the tests require any kind of restarting, the restarted nodes cannot use those If these caveats aren't too problematic, Nimbus might already support this use-case. |
hey @parithosh, as of #4251 (latest unstable) I believe this should work using the |
We have the Shandong testnet that runs all the shanghai EIPs (no change from the CL side, so it should just work): https://github.com/ethereumjs/consensus-deployment-ansible/tree/master/shandong-testnet/custom_config_data Alternatively we also have a non-phase0 genesis in this verkle testnet, currently lighthouse/teku/lodestar are part of it: https://github.com/ethpandaops/verkle-testnet/tree/beverly-pos-relaunch/beverly-hills-testnet/custom_config_data You can also generate a fresh one with this docker command:
Guide on configuring it can be found here: https://github.com/ethpandaops/ethereum-genesis-generator/ |
I looked at this genesis, and there's an oddity in it which prevents nimbus from loading it: the fork version of the state says |
changing the |
hey @parithosh did you have any success with this? |
I apologize for the delay, the The fix works and has been tested using a local testnet consisting of nimbus and lighthouse nodes. Related downstream PRs: |
Closing as implemented and confirmed to work. |
Feature Description
Current testnet tools all generate a
phase0
genesis state and are perfect for testing the merge transition. However, now that the merge transition is completed on mainnet, we'd like to deprecate these tools to save on testing time/complexity with TTD. This would require client teams to support starting from amerge
genesis state, i.e - post Bellatrix.Since such a feature is mostly needed for testnets and internal testing tools, it'd be great to gate the acceptance of such a merge genesis state behind a flag, perhaps
--enable-merge-genesis-state
. Once the flag is enabled, themerge
genesis state can be passed to the Nimbus beacon node via the existing--network
flag. In this manner, default behavior need not change (if that is a concern).Additional context
The feature request was briefly discussed in the interop channel of the Eth R&D discord server: here.
Tagging @z3n-chada and @marioevz for visibility.
The text was updated successfully, but these errors were encountered: