-
Notifications
You must be signed in to change notification settings - Fork 300
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
[Merge] Move execution payload validation out of state transition #4648
Conversation
Allows nodes to be added optimistically that are later marked valid or invalid with separate methods to find the strict and optimistic head.
Execution fo the payload is now done asynchronously post-block import.
…in the right direction.
private final EventThread forkChoiceExecutor; | ||
private final SignedBeaconBlock block; | ||
private final ExecutionEngineChannel executionEngine; | ||
private SafeFuture<ExecutePayloadResult> result; |
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.
is there a reason why you don't use Optional
here?
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.
Mostly because Optional<SafeFuture<ExecutePayloadResult>>
is kind of awful and it's entirely internal. The class did get a fair bit bigger since I made that decision though so it probably is worth changing to Optional
.
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.
this is a tricky one, but LGTM.
PR Description
Moves execution payload validation out of state transition to be done asynchronously, enabling optimistic sync.
There are still quite a few loose ends here but want to see what mess this makes of tests.
Fixed Issue(s)
#4599
fixes #4348
Documentation
documentation
label to this PR if updates are required.Changelog