mirror of
https://github.com/sigp/lighthouse.git
synced 2026-04-20 14:28:37 +00:00
Rename random to prev_randao (#3040)
## Issue Addressed As discussed on last-night's consensus call, the testnets next week will target the [Kiln Spec v2](https://hackmd.io/@n0ble/kiln-spec). Presently, we support Kiln V1. V2 is backwards compatible, except for renaming `random` to `prev_randao` in: - https://github.com/ethereum/execution-apis/pull/180 - https://github.com/ethereum/consensus-specs/pull/2835 With this PR we'll no longer be compatible with the existing Kintsugi and Kiln testnets, however we'll be ready for the testnets next week. I raised this breaking change in the call last night, we are all keen to move forward and break things. We now target the [`merge-kiln-v2`](https://github.com/MariusVanDerWijden/go-ethereum/tree/merge-kiln-v2) branch for interop with Geth. This required adding the `--http.aauthport` to the tester to avoid a port conflict at startup. ### Changes to exec integration tests There's some change in the `merge-kiln-v2` version of Geth that means it can't compile on a vanilla Github runner. Bumping the `go` version on the runner solved this issue. Whilst addressing this, I refactored the `testing/execution_integration` crate to be a *binary* rather than a *library* with tests. This means that we don't need to run the `build.rs` and build Geth whenever someone runs `make lint` or `make test-release`. This is nice for everyday users, but it's also nice for CI so that we can have a specific runner for these tests and we don't need to ensure *all* runners support everything required to build all execution clients. ## More Info - [x] ~~EF tests are failing since the rename has broken some tests that reference the old field name. I have been told there will be new tests released in the coming days (25/02/22 or 26/02/22).~~
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
use crate::ForkChoiceStore;
|
||||
use crate::{ForkChoiceStore, InvalidationOperation};
|
||||
use proto_array::{Block as ProtoBlock, ExecutionStatus, ProtoArrayForkChoice};
|
||||
use ssz_derive::{Decode, Encode};
|
||||
use std::cmp::Ordering;
|
||||
@@ -480,11 +480,10 @@ where
|
||||
/// See `ProtoArrayForkChoice::process_execution_payload_invalidation` for documentation.
|
||||
pub fn on_invalid_execution_payload(
|
||||
&mut self,
|
||||
head_block_root: Hash256,
|
||||
latest_valid_ancestor_root: Option<ExecutionBlockHash>,
|
||||
op: &InvalidationOperation,
|
||||
) -> Result<(), Error<T::Error>> {
|
||||
self.proto_array
|
||||
.process_execution_payload_invalidation(head_block_root, latest_valid_ancestor_root)
|
||||
.process_execution_payload_invalidation(op)
|
||||
.map_err(Error::FailedToProcessInvalidExecutionPayload)
|
||||
}
|
||||
|
||||
@@ -956,19 +955,19 @@ where
|
||||
return Ok(true);
|
||||
}
|
||||
|
||||
// If the block has an ancestor with a verified parent, import this block.
|
||||
// If the parent block has execution enabled, always import the block.
|
||||
//
|
||||
// TODO: This condition is not yet merged into the spec. See:
|
||||
// TODO(bellatrix): this condition has not yet been merged into the spec.
|
||||
//
|
||||
// https://github.com/ethereum/consensus-specs/pull/2841
|
||||
// See:
|
||||
//
|
||||
// ## Note
|
||||
//
|
||||
// If `block_parent_root` is unknown this iter will always return `None`.
|
||||
// https://github.com/ethereum/consensus-specs/pull/2844
|
||||
if self
|
||||
.proto_array
|
||||
.iter_nodes(block_parent_root)
|
||||
.any(|node| node.execution_status.is_valid())
|
||||
.get_block(block_parent_root)
|
||||
.map_or(false, |parent| {
|
||||
parent.execution_status.is_execution_enabled()
|
||||
})
|
||||
{
|
||||
return Ok(true);
|
||||
}
|
||||
|
||||
@@ -6,4 +6,4 @@ pub use crate::fork_choice::{
|
||||
PayloadVerificationStatus, PersistedForkChoice, QueuedAttestation,
|
||||
};
|
||||
pub use fork_choice_store::ForkChoiceStore;
|
||||
pub use proto_array::Block as ProtoBlock;
|
||||
pub use proto_array::{Block as ProtoBlock, InvalidationOperation};
|
||||
|
||||
Reference in New Issue
Block a user