Skip to content
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

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

Closed
wants to merge 2 commits into from

Conversation

lightclient
Copy link
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
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
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.

EIPS/eip-7685.md Outdated Show resolved Hide resolved
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
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
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