27e83b888c
## Issue Addressed
NA
## Proposed Changes
Adds the functionality to allow blocks to be validated/invalidated after their import as per the [optimistic sync spec](https://github.com/ethereum/consensus-specs/blob/dev/sync/optimistic.md#how-to-optimistically-import-blocks). This means:
- Updating `ProtoArray` to allow flipping the `execution_status` of ancestors/descendants based on payload validity updates.
- Creating separation between `execution_layer` and the `beacon_chain` by creating a `PayloadStatus` struct.
- Refactoring how the `execution_layer` selects a `PayloadStatus` from the multiple statuses returned from multiple EEs.
- Adding testing framework for optimistic imports.
- Add `ExecutionBlockHash(Hash256)` new-type struct to avoid confusion between *beacon block roots* and *execution payload hashes*.
- Add `merge` to [`FORKS`](
|
||
---|---|---|
.. | ||
common | ||
per_block_processing | ||
per_epoch_processing | ||
upgrade | ||
block_replayer.rs | ||
genesis.rs | ||
lib.rs | ||
macros.rs | ||
metrics.rs | ||
per_block_processing.rs | ||
per_epoch_processing.rs | ||
per_slot_processing.rs | ||
state_advance.rs | ||
upgrade.rs | ||
verify_operation.rs |