lighthouse/beacon_node/execution_layer/src
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
..
engine_api Deprecate exchangeTransitionConfiguration functionality (#4517) 2023-07-31 23:51:39 +00:00
test_utils Prevent port re-use in HTTP API tests (#4745) 2023-09-20 01:19:03 +00:00
block_hash.rs Expose execution block hash calculation (#4326) 2023-06-02 03:17:37 +00:00
engine_api.rs Deprecate exchangeTransitionConfiguration functionality (#4517) 2023-07-31 23:51:39 +00:00
engines.rs Implement el_offline and use it in the VC (#4295) 2023-05-17 05:51:56 +00:00
keccak.rs Verify execution block hashes during finalized sync (#3794) 2023-01-09 03:11:59 +00:00
lib.rs Add more checks and logging before genesis (#4730) 2023-09-21 00:26:53 +00:00
metrics.rs Reconstruct Payloads using Payload Bodies Methods (#4028) 2023-03-19 23:15:59 +00:00
payload_cache.rs Keep payload cache idempotent (#4256) 2023-05-30 01:38:45 +00:00
payload_status.rs Permit a null LVH from an INVALID response to newPayload (#4037) 2023-03-03 04:12:50 +00:00