-
Notifications
You must be signed in to change notification settings - Fork 5.4k
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: group requests into request-data #8924
Conversation
✅ All reviewers have approved. |
e402996
to
2dfa06a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All Reviewers Have Approved; Performing Automatic Merge...
def compute_requests_hash(requests): | ||
m = sha256() | ||
for r in requests: | ||
m.update(sha256(r)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
According to the PR’s description, there is a type byte hashed in front of every list. In this particular case not having a “domain” byte is fine because the order already does this implicitly. Just want to confirm this algo in the spec is the one that it was intended to be
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe not the clearest, but each r
in requests
is the prefixed data already
Header data will contain this different name now Ref: ethereum/EIPs#8924 Issue board: #12106
Summary of changes - Remove `Requests` interface in favour of new `FlatRequest` struct - Add changes for new `RequestHash` calculation that `sha256` digests the set of flat requests - Remove `Requests` from block and body related structs and methods - Set of requests that gets pulled at the `Finalize` stage is now returned from there, both for execution and block-building Ref1: ethereum/execution-apis#591 Ref2: ethereum/EIPs#8854 Ref3: ethereum/EIPs#8924 Needs interface change - erigontech/interfaces#239 (Tasks board - #12106)
Hopefully this encapsulates the discussion on discord and in #8916.
Essentially, we now refer to
request_data
as the opaque data output by the system contract instead of a request's individual fields and we modify therequest_hash
calculation to be the following: