Match block and blobs after validating execution #6469
+115
−140
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.
Issue Addressed
After PeerDAS we request block and data to different peers. Consider the following scenario when doing a by range sync:
Current unstable will attempt to match block and columns and consider the entire RpcBlock invalid. A similar scenario can occur where the block peer is honest and the column peer is dishonest.
We need to make the code more aware of who is at fault, and specifically do not attempt to match columns before validating the block.
Part of
Note: this PR touches code on the mainnet path, not only PeerDAS
Proposed Changes
Relax RpcBlock construction with
new_unchecked
and perform matching inverify_kzg_for_rpc_block
after the block is execution validated.This PR does not include a fix for peer scoring. This will be tackled latter as part of #6258