-
Notifications
You must be signed in to change notification settings - Fork 808
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Kintsugi on_merge_block tests #2811
Kintsugi on_merge_block tests #2811
Conversation
e709e8d
to
6b216e2
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks really good! Had a couple comments, nothing really of substance
|
||
/// Extracts a reference to an execution payload from a block, returning an error if there is a | ||
/// fork mismatch. | ||
fn execution_payload_ref<T: EthSpec>( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could move this to the BeaconBlockRef
impl
/// | ||
/// ## Specification | ||
/// | ||
/// Partially equivalent to the `process_execution_payload` function: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems like this is a copy-paste from partially_verify_execution_payload
@@ -505,25 +521,31 @@ impl ExecutionLayer { | |||
|
|||
self.execution_blocks().await.put(block.block_hash, block); | |||
|
|||
// TODO(merge): This function can theoretically loop indefinitely, as per the | |||
// specification. We should consider how to fix this. See discussion: | |||
// TODO(merge): This implementation assumes that the following PR is merged: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like this was merged. Unreleased still, so not sure if you want to keep this TODO
?
.runtime() | ||
.upgrade() | ||
.ok_or(Error::ShuttingDown)?; | ||
// TODO(paul): respect the shutdown signal. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you want this one resolved prior to merge?
All comments addressed, thank you! |
* Start v1.1.5 updates * Implement new payload creation logic * Tidy, add comments * Remove unused error enums * Add validate payload for gossip * Refactor validate_merge_block * Split payload verification in per block processing * Add execute_payload * Tidy * Tidy * Start working on new fork choice tests * Fix failing merge block test * Skip block_lookup_failed test * Fix failing terminal block test * Fixes from self-review * Address review comments
* Start v1.1.5 updates * Implement new payload creation logic * Tidy, add comments * Remove unused error enums * Add validate payload for gossip * Refactor validate_merge_block * Split payload verification in per block processing * Add execute_payload * Tidy * Tidy * Start working on new fork choice tests * Fix failing merge block test * Skip block_lookup_failed test * Fix failing terminal block test * Fixes from self-review * Address review comments
* Start v1.1.5 updates * Implement new payload creation logic * Tidy, add comments * Remove unused error enums * Add validate payload for gossip * Refactor validate_merge_block * Split payload verification in per block processing * Add execute_payload * Tidy * Tidy * Start working on new fork choice tests * Fix failing merge block test * Skip block_lookup_failed test * Fix failing terminal block test * Fixes from self-review * Address review comments
Issue Addressed
NA
Proposed Changes
Implements all of the execution-facing parts of the
v1.1.5
consensus specification (e.g.,prepare_execution_payload
,validate_merge_block
, etc).Also, runs the
fork_choice/on_merge_block
tests from the EF tests. We are still ignoring one test, that's because we don't have the ability to retrospectively verify the merge block after an optimistic sync. I did manually disable optimistic sync and observe that test passing. We can pick that test up in the coming weeks as we hone our optimistic sync implementation.TODO