Move safe-block.md definitions to fast-confirmation.md - #5278
Merged
Conversation
jtraglia
reviewed
May 22, 2026
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
jtraglia
reviewed
May 22, 2026
mkalinin
commented
May 22, 2026
Co-authored-by: Mikhail Kalinin <noblesse.knight@gmail.com>
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
jtraglia
reviewed
May 22, 2026
jtraglia
approved these changes
May 22, 2026
jtraglia
left a comment
Member
There was a problem hiding this comment.
Looks great! Thanks for the quick suggestion fixes!
jtraglia
enabled auto-merge (squash)
May 22, 2026 14:25
jtraglia
reviewed
May 22, 2026
jtraglia
left a comment
Member
There was a problem hiding this comment.
Two ultra nits. Will apply these myself.
jtraglia
disabled auto-merge
May 22, 2026 14:30
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.
Alternative to #5237
Removes
./fork_choice/safe-block.mdand movesget_safe_execution_block_hashfunction definition to the Bellatrix extension of thefast-confirmation.md. Then modifies it ingloas/fast-confirmation.mdwhich naturally handles fork-related modifications inget_safe_execution_block_hashfunction.