-
Notifications
You must be signed in to change notification settings - Fork 870
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
EIP-7742 Engine API Changes #7840
Conversation
.map(Withdrawal::hashCode) | ||
.reduce(1, (a, b) -> a ^ (b * 31))) | ||
.orElse(0) | ||
<< 32 |
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.
Note, added a (<< 32) left shift for withdrawals to keep the hashcodes evenly distributed by using the same pattern as the other fields.
This change impacts the shanghai and cancun ATs
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.
is it worth extracting this to a method? it's a bit hard to read indented over so many lines
This pr is stale because it has been open for 30 days with no activity. |
7683fc3
to
852fbf9
Compare
@siladu Breaking existing testnets isn't an issue. Mekong will not be updated, it's spec stays frozen, and devnet-4 has been shut down already |
Signed-off-by: Simon Dudley <[email protected]>
…eUpdatedV4 Signed-off-by: Simon Dudley <[email protected]>
Signed-off-by: Simon Dudley <[email protected]>
Signed-off-by: Simon Dudley <[email protected]>
Signed-off-by: Simon Dudley <[email protected]>
Signed-off-by: Simon Dudley <[email protected]>
Signed-off-by: Simon Dudley <[email protected]>
Signed-off-by: Simon Dudley <[email protected]>
7cd15a5
to
2b8fc09
Compare
Signed-off-by: Simon Dudley <[email protected]>
.map(Withdrawal::hashCode) | ||
.reduce(1, (a, b) -> a ^ (b * 31))) | ||
.orElse(0) | ||
<< 32 |
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.
is it worth extracting this to a method? it's a bit hard to read indented over so many lines
if (payloadAttributes.getTargetBlobsPerBlock() != null) { | ||
message += ", targetBlobsPerBlock: {}"; | ||
builder = builder.setMessage(message).addArgument(payloadAttributes::getTargetBlobsPerBlock); | ||
} |
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.
why not log getMaxBlobsPerBlock here too
Removed from Pectra |
PR description
This makes Pectra require EIP-7742 fields so will break any pectra devnets that exclude 7742. @daniellehrner will that be an issue? I could temporarily disable the engine api validation to avoid this if so.
This makes Besu usable for interop (has been tested with lodestar so far), however there are still some missing pieces that may cause 7742 to break depending on how maxBlobsPerBlock is set:
In other words, in order for Besu to work for a Pectra interop we would require a EIP-7742 compatible CL and a max blob value of <= 6.
This PR was big enough already and I think uncontentious, whereas the implementations for the points above may require more discussion.
Also block creation wiring was required in this PR in order to satisfy CodeDelegationTransactionAcceptanceTest
Part of #7605
Spec: ethereum/execution-apis#574
Fixed Issue(s)
Thanks for sending a pull request! Have you done the following?
doc-change-required
label to this PR if updates are required.Locally, you can run these tests to catch failures early:
./gradlew build
./gradlew acceptanceTest
./gradlew integrationTest
./gradlew ethereum:referenceTests:referenceTests