Skip to content

Update EIP-7685: remove requests from block body#8908

Closed
lightclient wants to merge 2 commits intoethereum:masterfrom
lightclient:7685-rm-body
Closed

Update EIP-7685: remove requests from block body#8908
lightclient wants to merge 2 commits intoethereum:masterfrom
lightclient:7685-rm-body

Conversation

@lightclient
Copy link
Copy Markdown
Member

This PR removes the requests from the block body. This change is motivated by a simplification to the engine api: ethereum/execution-apis#591

Make EL validate requestsHash as a part of blockHash validation, note there is no need to keep requests_hash in the beacon block. CLs that run blockHash validation on their own will still be able to do that by implementing the algo EL uses to compute requestsHash
Make EL validate requestsHash in the EL block header against requests obtained from transaction execution

@github-actions github-actions bot added c-update Modifies an existing proposal s-review This EIP is in Review t-core labels Sep 26, 2024
@eth-bot
Copy link
Copy Markdown
Collaborator

eth-bot commented Sep 26, 2024

✅ All reviewers have approved.

@eth-bot eth-bot changed the title 7685: remove requests from block body Update EIP-7685: remove requests from block body Sep 26, 2024
Copy link
Copy Markdown
Member

@marioevz marioevz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One small comment.

Co-authored-by: Mario Vega <marioevz@gmail.com>
Co-authored-by: lightclient <lightclient@protonmail.com>
@@ -70,7 +55,7 @@ Extend the header with a new 32 byte value `requests_hash`:
def compute_requests_hash(list):
return keccak256(rlp.encode([rlp.encode(req) for req in list]))
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From Mikhail's comment in #591 description:

Use concatenation to compute the resulting list of all requests instead of RLP, i.e. do executionRequests = requests_00 || requests_01 || requests_02 instead of requests = RLP([requests_00, requests_01, requests_02]). And use the executionRequests in Engine API and in requestsHash computation, the latter can be as simple as requestsHash = executionRequests(requests)

It seems like this should also be updated to:

Suggested change
return keccak256(rlp.encode([rlp.encode(req) for req in list]))
return keccak256(b"".join(list))

Or something along the lines.

@lightclient
Copy link
Copy Markdown
Member Author

superseded by #8924

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c-update Modifies an existing proposal s-review This EIP is in Review t-core

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants