Enable FCR tests for Gloas and Heze - #5376
Merged
Merged
Conversation
mkalinin
force-pushed
the
fcr-tests-for-all-forks
branch
from
June 19, 2026 14:17
69a03c0 to
1ed941f
Compare
tersec
pushed a commit
to status-im/nimbus-eth2
that referenced
this pull request
Jun 26, 2026
FCR tests disabled BLS as BLS isn’t important for FCR tests. - ethereum/consensus-specs#5376
1 task
nflaig
pushed a commit
to ChainSafe/lodestar
that referenced
this pull request
Jul 27, 2026
**Motivation** After updating to consensus-specs v1.7.0-alpha.12, the entire `gloas/fast_confirmation/*` suite was skipped because the fast-confirmation runner could not process the Gloas (ePBS) vector inputs. All 183 gloas cases failed at deserialization before reaching any confirmation assertion. This restores the gloas portion of the coverage tracked in #9690. Spec references: - [ethereum/consensus-specs#5376](ethereum/consensus-specs#5376) — enables `fast_confirmation` test generation for Gloas (and Heze), producing the vectors handled here; also disables BLS in FCR test generation, which is why envelope signature verification is gated on `bls_setting=1` - [`specs/gloas/fast-confirmation.md`](https://github.com/ethereum/consensus-specs/blob/master/specs/gloas/fast-confirmation.md) — the Gloas modifications to the FCR spec ([ethereum/consensus-specs#5278](ethereum/consensus-specs#5278), [ethereum/consensus-specs#5249](ethereum/consensus-specs#5249)) - [ethereum/consensus-specs#5249](ethereum/consensus-specs#5249) — fork-choice redesign that added the nested `payload_status` to `head` checks, asserted by this PR **Description** Port the Gloas execution-payload-envelope support from the fork-choice runner into the fast-confirmation runner: - Register `execution_payload_envelope_*.ssz_snappy` files with `ssz.gloas.SignedExecutionPayloadEnvelope` and collect them into the test case (previously every gloas case failed to load with `Cannot find ssz type for inputName execution_payload_envelope_*`). - Handle `execution_payload` steps: verify the envelope against the block state, register the payload hash as VALID with the mock execution engine, and call `forkChoice.onExecutionPayload()`. - Skip envelope signature verification unless `bls_setting=1` — FCR vectors are generated with BLS disabled (consensus-specs #5376), mirroring how the runner already treats block signatures. - Assert the `payload_status` nested inside `head` checks (new check shape in the gloas FCR vectors), mapping spec numbering (EMPTY=0, FULL=1, PENDING=2) to Lodestar's enum. - Remove the `/^gloas\/fast_confirmation\/.*/` suite skip. The old skip comment attributed the failures to unmodeled PTC payload-status semantics; the actual cause was purely missing runner support — no FCR implementation change was needed. - Align the runner with `glamsterdam-devnet-7`: resolve attestation shuffling from the attested block via `getShufflingDependentRoot` (spec [ethereum/consensus-specs#5374](ethereum/consensus-specs#5374)) and seed the mock execution engine from `latestBlockHash` for gloas anchor states. The two `is_one_confirmed_fails_*` cases from #9690 remain skipped and will be addressed in a follow-up PR (one needs the runner to replay the generator's `on_fast_confirmation` schedule; the other hits an upstream vector-generation artifact). Results (minimal preset): `gloas/fast_confirmation` 181 passed / 2 skipped; full fast_confirmation suite across all forks 1243 passed / 6 skipped / 0 failed. Refs #9690 **AI Assistance Disclosure** - [x] I have read the [contributor guidelines](https://github.com/ChainSafe/lodestar/blob/unstable/CONTRIBUTING.md#ai-assistance-notice) and disclosed my usage of AI below. Diagnosis and implementation done with AI assistance (Claude Code); all changes reviewed and tests executed locally. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR does two things: