Skip to content

fix(pbs): derive a proposal's fork from its slot, not the JSON decode - #487

Open
JasonVranek wants to merge 1 commit into
mainfrom
fix/blinded-block-fork
Open

fix(pbs): derive a proposal's fork from its slot, not the JSON decode#487
JasonVranek wants to merge 1 commit into
mainfrom
fix/blinded-block-fork

Conversation

@JasonVranek

Copy link
Copy Markdown
Collaborator

Addresses an issue with the current [unreleased] SSZ code.

While testing on Kurtosis, prysm submitted a blinded block as JSON with Eth-Consensus-Version: fulu. Our JSON decode path ignored that header (only the SSZ path was using it) and fell back to serde's untagged matching. SignedBlindedBeaconBlock is an untagged enum, so it takes the first variant that parses, and an Electra blinded block is field-identical to a Fulu one. So a Fulu block quietly decoded as Electra. We then read the fork straight off that decoded value and told the relay Eth-Consensus-Version: electra. Helix checked the claimed fork against the slot and rejected the submission with "data for an unexpected fork was provided".

So this PR just makes sure we handle the header + JSON case.

Nothing released is affected. This is just for upcoming the SSZ optimizations.

@JasonVranek
JasonVranek requested review from a team, ManuelBilbao and ltitanb August 5, 2026 00:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant