-
Notifications
You must be signed in to change notification settings - Fork 278
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
Implement ExecutionPayload processing #4592
Conversation
As per the spec, assumes the execution engine is available separately so while this is enough to get reference tests passing we will need an actual ExecutionEngineChannel implementation before it works in the real world. Also hasn't implemented optimistic sync which will need to be done separately.
final ExecutionPayload executionPayload, | ||
final ExecutionEngineChannel executionEngine) | ||
throws BlockProcessingException { | ||
throw new UnsupportedOperationException("No ExecutionPayload in phase0"); |
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.
"in Altair"?
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.
I knew I'd forget to change that....
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.
LGTM
@@ -40,4 +41,8 @@ public boolean isMergeBlock(final BeaconState genericState, final BeaconBlock bl | |||
public boolean isExecutionEnabled(final BeaconState genericState, final BeaconBlock block) { | |||
return isMergeBlock(genericState, block) || isMergeComplete(genericState); | |||
} | |||
|
|||
public UInt64 computeTimestampAtSlot(final BeaconState state, final UInt64 slot) { |
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.
nit: state
-> genericState
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.
I left this as state matching the spec because we didn't need to have a BeaconStateMerge
version and thus didn't need to differentiate the names.
PR Description
Implements the spec version of execution payload processing during block processing.
As per the spec, assumes the execution engine is available separately so while this is enough to get reference tests passing we will need an actual ExecutionEngineChannel implementation before it works in the real world. Currently everything is passing in
ExecutionEngineChannel.NOOP
.Also hasn't implemented optimistic sync which will need to be done separately.
Documentation
documentation
label to this PR if updates are required.Changelog