fix: reject blocks that contain blob-bearing transactions#191
Conversation
|
LGTM. This PR rejects blob-consuming payloads before consensus accepts them so Summit no longer certifies blob payloads without the versioned-hash data needed for Engine API validation. |
|
I agree this rejects the honest/common blob-consuming payload case where
The added test also uses I think the PR should either:
|
|
Yeah, I agree that the |
|
I do not think option 2 requires removing the But I think the actual #184 fix should still be to carry consensus-committed blob validation data through The reason is that So I think the guard can stay, but the complete fix is to commit the versioned hashes/blob commitment data in the Summit block and thread that into |
|
I agree that However, since all honest validators will pass All honest validators call |
115d065 to
942fb8a
Compare
|
Got it. I agree that if Summit's current invariant is "no blob transactions are supported", then passing versioned_hashes=[] to new_payload_v4 makes the EL reject actual blob transactions even if blob_gas_used is spoofed to 0. |
Builds on #191 (which builds on #190). This addresses #200. Changes: -Adds a check for the fee recipient to handle_verify. This check is only performed, if the treasury_address is non-zero. If the treasury_address is set to the zero address, then block proposers may chose any fee recipient. -Adds unit tests for verifying this.
Note: this PR builds on #190 because it addresses a similar edge case, and the code changes are overlapping.
This addresses #184.
We currently don't support blobs, so this PR adds checks that reject blob-bearing transactions.
Changes:
handle_verifythat ensure thatblob_gas_usedis 0.blob_gas_used > 0are rejected.