Require Engine confirmation before finalizing sequenced blocks - #49
Open
vmarkushin wants to merge 1 commit into
Open
Require Engine confirmation before finalizing sequenced blocks#49vmarkushin wants to merge 1 commit into
vmarkushin wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The sequencer previously updated forkchoice before reconstructing and checking the payload, then could return a block even when the Engine did not confirm it. That could let the orchestrator persist message consumption or sign and announce an unconfirmed block.
This change validates the reconstructed block first and requires a
VALIDforkchoice response before returning it. Rejection or transport failure preserves the local head. Finalization failures emit the existing terminal skipped event so a remote-source builder can continue instead of waiting indefinitely.Extracted from #45, independently based on main after #47. This PR does not change configuration or introduce the broader cancellation/settlement redesign.
Validation:
INVALID/SYNCING/ACCEPTED, transport failure, successful head commitment, and the terminal event on rejection.Remaining build-start, cancellation, and post-head-commit failure handling is tracked in the later split branches.