lighthouse/consensus/types/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
..
beacon_state CommitteeCache.get_all_beacon_committees: set correct capacity to avoid realloc (#4557) 2023-08-02 23:50:43 +00:00
test_utils Rust 1.71 lints (#4503) 2023-07-17 00:14:19 +00:00
aggregate_and_proof.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
application_domain.rs Register validator api (#3194) 2022-06-30 00:49:21 +00:00
attestation_data.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
attestation_duty.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
attestation.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
attester_slashing.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
beacon_block_body.rs Add broadcast validation routes to Beacon Node HTTP API (#4316) 2023-06-29 12:02:38 +00:00
beacon_block_header.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
beacon_block.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
beacon_committee.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
beacon_state.rs Rust 1.71 lints (#4503) 2023-07-17 00:14:19 +00:00
bls_to_execution_change.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
builder_bid.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
chain_spec.rs Shift networking configuration (#4426) 2023-08-03 01:51:47 +00:00
checkpoint.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
config_and_preset.rs Shift subnet backbone structure (attnets revamp) (#4304) 2023-05-30 06:15:56 +00:00
consts.rs Clean capella (#4019) 2023-03-01 03:19:02 +00:00
contribution_and_proof.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
deposit_data.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
deposit_message.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
deposit_tree_snapshot.rs Use JSON by default for Deposit Snapshot Sync (#4397) 2023-06-15 08:42:20 +00:00
deposit.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
enr_fork_id.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
eth1_data.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
eth_spec.rs Update gnosis capella preset (#4302) 2023-05-19 10:07:12 +00:00
execution_block_hash.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
execution_block_header.rs Verify blockHash with withdrawals 2023-01-13 12:46:54 +11:00
execution_payload_header.rs Add more checks and logging before genesis (#4730) 2023-09-21 00:26:53 +00:00
execution_payload.rs Rust 1.71 lints (#4503) 2023-07-17 00:14:19 +00:00
fork_context.rs Clean capella (#4019) 2023-03-01 03:19:02 +00:00
fork_data.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
fork_name.rs Implement el_offline and use it in the VC (#4295) 2023-05-17 05:51:56 +00:00
fork_versioned_response.rs Remove the unused ExecutionOptimisticForkVersionedResponse type (#4160) 2023-04-12 01:48:21 +00:00
fork.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
graffiti.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
historical_batch.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
historical_summary.rs Merge remote-tracking branch 'origin/unstable' into capella 2023-01-12 16:22:00 +11:00
indexed_attestation.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
lib.rs Add validator-manager (#3502) 2023-08-08 00:03:22 +00:00
light_client_bootstrap.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
light_client_finality_update.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
light_client_optimistic_update.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
light_client_update.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
participation_flags.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
participation_list.rs Rust 1.71 lints (#4503) 2023-07-17 00:14:19 +00:00
payload.rs Reduce false positive logging for late builder blocks (#4073) 2023-03-17 00:44:03 +00:00
pending_attestation.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
preset.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
proposer_preparation_data.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
proposer_slashing.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
relative_epoch.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
selection_proof.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
shuffling_id.rs Optimize validator duties (#2243) 2021-03-17 05:09:57 +00:00
signed_aggregate_and_proof.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
signed_beacon_block_header.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
signed_beacon_block.rs Clean capella (#4019) 2023-03-01 03:19:02 +00:00
signed_bls_to_execution_change.rs Broadcast address changes at Capella (#3919) 2023-02-07 17:13:49 +11:00
signed_contribution_and_proof.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
signed_voluntary_exit.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
signing_data.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
slot_data.rs [Altair] Sync committee pools (#2321) 2021-07-15 00:52:02 +00:00
slot_epoch_macros.rs Use SmallVec for TreeHash packed encoding (#3581) 2022-09-16 08:54:06 +00:00
slot_epoch.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
sqlite.rs Directory Restructure (#1163) 2020-05-18 21:24:23 +10:00
subnet_id.rs Shift networking configuration (#4426) 2023-08-03 01:51:47 +00:00
sync_aggregate.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
sync_aggregator_selection_data.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
sync_committee_contribution.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
sync_committee_message.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
sync_committee_subscription.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
sync_committee.rs Fix Arbitrary implementations (#3867) 2023-01-12 15:17:03 +11:00
sync_duty.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
sync_selection_proof.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
sync_subnet_id.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
tree_hash_impls.rs Fixes to make EF Capella tests pass (#3719) 2022-11-14 13:14:31 -06:00
validator_registration_data.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
validator_subscription.rs Implement standard eth2.0 API (#1569) 2020-10-01 11:12:36 +10:00
validator.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
voluntary_exit.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00
withdrawal_credentials.rs Add validator-manager (#3502) 2023-08-08 00:03:22 +00:00
withdrawal.rs Split common crates out into their own repos (#3890) 2023-04-28 01:15:40 +00:00