lighthouse-pulse/consensus
Michael Sproul 5a35278aea Add more checks and logging before genesis (#4730)
## Proposed Changes

This PR adds more logging prior to genesis, particularly on networks that start with execution enabled.

There are new checks using `eth_getBlockByHash/Number` to verify that the genesis state's `latest_execution_payload_header` matches the execution node's genesis block.

The first commit also runs the merge-readiness/Capella-readiness checks prior to genesis. This has two effects:

- Give more information on the execution node's status and its readiness for genesis.
- Prevent the `el_offline` status from being set on `/eth/v1/node/syncing`, which previously caused the VC to complain loudly.

I would like to include this for the Holesky reboot. It would have caught the misconfig that doomed the first Holesky.

## Additional Info

- Geth doesn't serve payload bodies prior to genesis, which is why we use the legacy methods. I haven't checked with other ELs yet.
- Currently this is logging errors with _Capella_ genesis states generated by `ethereum-genesis-generator` because the `withdrawals_root` is not set correctly (it is 0x0). This is not a blocker for Holesky, as it starts from Bellatrix (Pari is investigating).
2023-09-21 00:26:53 +00:00
..
cached_tree_hash Aggregate subsets (#3493) 2023-06-27 01:06:49 +00:00
fork_choice ForkChoice: remove an impossible case for parent_checkpoints (#4626) 2023-08-21 05:02:33 +00:00
int_to_bytes Update to Rust 1.59 and 2021 edition (#3038) 2022-02-25 00:10:17 +00:00
merkle_proof Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
proto_array Remove checkpoint alignment requirements and enable historic state pruning (#4610) 2023-08-21 05:02:32 +00:00
safe_arith rust 1.72 lints (#4659) 2023-08-24 14:33:24 -04:00
state_processing Remove checkpoint alignment requirements and enable historic state pruning (#4610) 2023-08-21 05:02:32 +00:00
swap_or_not_shuffle Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
types Add more checks and logging before genesis (#4730) 2023-09-21 00:26:53 +00:00