Enable gossip blob sidecar ref-test - #10780
Conversation
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
…Helper method isCurrentTimeWithinInclusiveSlotRange Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
…createGossipValidationHelper (needs review) Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
…finalized checkpoint Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
… reftests-att-and-aggregate
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
|
looks ok to me, one codex observation to consider |
| finalizedCheckpoint -> | ||
| new GossipValidationHelper(spec, recentChainData, metricsSystem) { | ||
| @Override | ||
| public boolean currentFinalizedCheckpointIsAncestorOfBlock( |
There was a problem hiding this comment.
There's a test that validates against a non-canonical checkpoint, this test use a fake/non-existent finalized root to exercise the rejection rule, but Teku’s store cannot commit that because the finalized block is not present. So the override is not bypassing blob validation; it is replacing the fixture’s finalized checkpoint root while still using the live fork-choice ancestry data.
There was a problem hiding this comment.
Please put it in comments somewhere around it because it's not like GossipBeaconAttestationTestExecutor override where you override noop logic to op, it looks like different logic to what is in prod and it should be clear, why it was done.
# Conflicts: # eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/gossip/GossipBeaconAggregateAndProofTestExecutor.java # eth-reference-tests/src/referenceTest/java/tech/pegasys/teku/reference/phase0/gossip/GossipTests.java # ethereum/statetransition/src/test/java/tech/pegasys/teku/statetransition/validation/Phase0AttestationValidatorTest.java
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
zilm13
left a comment
There was a problem hiding this comment.
LGTM, just one comment nit
…sAncestorOfBlock Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
PR Description
Created on top of #10770, it add a GossipBlobSidecar executor and enables the suite
Fixed Issue(s)
Documentation
doc-change-requiredlabel to this PR if updates are required.Changelog
Note
Low Risk
Changes are confined to reference tests and test visibility on a gossip wrapper; production blob validation behavior is not altered.
Overview
Enables the
networking/gossip_blob_sidecarconsensus reference suite by replacing the ignored placeholder with a newGossipBlobSidecarTestExecutor.The executor builds an in-memory chain (fork choice, block imports, optional finalized checkpoint), runs
BlobSidecarGossipValidatorthrough the sameTopicSubnetIdAwareOperationProcessorwrapper used in production when tests specify asubnet_id, and asserts accept / reject / ignore (including SAVE_FOR_FUTURE) per fixture. It handles failed setup blocks, BLS ignored specs, raw-root finalized checkpoints via a test-onlyGossipValidationHelperoverride, and loads a real KZG trusted setup only for invalid KZG proof cases.eth-reference-testsgains anetworking:eth2dependency;TopicSubnetIdAwareOperationProcessorinBlobSidecarGossipManagerispublicand@VisibleForTestingso ref tests can instantiate it.Reviewed by Cursor Bugbot for commit b4f00a9. Bugbot is set up for automated code reviews on this repo. Configure here.