-
Notifications
You must be signed in to change notification settings - Fork 360
10146 gloas execution payload gossip rules #10168
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
base: master
Are you sure you want to change the base?
10146 gloas execution payload gossip rules #10168
Conversation
...ition/src/main/java/tech/pegasys/teku/statetransition/validation/GossipValidationHelper.java
Show resolved
Hide resolved
.../main/java/tech/pegasys/teku/statetransition/validation/ExecutionPayloadGossipValidator.java
Show resolved
Hide resolved
...t/java/tech/pegasys/teku/statetransition/validation/ExecutionPayloadGossipValidatorTest.java
Outdated
Show resolved
Hide resolved
.../main/java/tech/pegasys/teku/statetransition/validation/ExecutionPayloadGossipValidator.java
Show resolved
Hide resolved
.../main/java/tech/pegasys/teku/statetransition/validation/ExecutionPayloadGossipValidator.java
Show resolved
Hide resolved
.../main/java/tech/pegasys/teku/statetransition/validation/ExecutionPayloadGossipValidator.java
Show resolved
Hide resolved
.../main/java/tech/pegasys/teku/statetransition/validation/ExecutionPayloadGossipValidator.java
Show resolved
Hide resolved
.../main/java/tech/pegasys/teku/statetransition/validation/ExecutionPayloadGossipValidator.java
Show resolved
Hide resolved
zilm13
left a comment
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, just few nits
|
|
||
| if (maybeExecutionPayloadBid.isEmpty()) { | ||
| LOG.trace( | ||
| "Missing execution payload bid in block with root {}. Rejection the execution payload envelope", |
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.
Rejecting here and in next logs
| return slot.isLessThanOrEqualTo(finalizedSlot); | ||
| } | ||
|
|
||
| public boolean isBeforeFinalizedSlot(final UInt64 slot) { |
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.
It would be good to have test on this one to highlight the difference between isSlotFinalized and this one
| } | ||
|
|
||
| @TestTemplate | ||
| void shouldSkipSeenPayload() { |
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.
you already have shouldIgnoreIfAlreadySeen test, is this one needed?
PR Description
Add Gloas
execution_payloadgossip rulesFixed Issue(s)
#10146
Documentation
doc-change-requiredlabel to this PR if updates are required.Changelog
Note
Implements Gloas execution payload gossip validation (including signature, slot, bid consistency, and deduping), wires it into the controller, and adds supporting APIs, constants, and tests.
ExecutionPayloadGossipValidatorwith pre-block checks, block-based bid consistency (builder_index,payload.block_hash), state-based signature verification, deduping via recent cache, and SAVE_FOR_FUTURE handling.RECENT_SEEN_EXECUTION_PAYLOADS_CACHE_SIZEfor seen-payload caches; remove local constant.BeaconChainControllerand integrate withDefaultExecutionPayloadManager.computeSigningRoot(ExecutionPayloadEnvelope, domain)inSpec.GossipValidationHelperwithisBeforeFinalizedSlot,retrieveBlockByRoot,getStateAtSlotAndBlockRoot, andisSignatureValidWithRespectToBuilderIndex.DataStructureUtilto generate targetedExecutionPayloadBid/SignedExecutionPayloadBidand related helpers.RECENT_SEEN_EXECUTION_PAYLOADS_CACHE_SIZEinConstants.ExecutionPayloadGossipValidatorTestcovering accept, ignore, save-for-future, and reject paths.Written by Cursor Bugbot for commit 5ee0d37. This will update automatically on new commits. Configure here.