Skip to content

Fix attestation step order in FCR test vectors - #5627

Open
eserilev wants to merge 1 commit into
ethereum:masterfrom
eserilev:fix-fcr-attestation-step-order
Open

Fix attestation step order in FCR test vectors#5627
eserilev wants to merge 1 commit into
ethereum:masterfrom
eserilev:fix-fcr-attestation-step-order

Conversation

@eserilev

Copy link
Copy Markdown
Contributor

The FCR test vectors list each slot's attestation steps before the tick that moves the test to the next slot. The test generator applies them after that tick. When lighthouse replays the steps as written, we reject the attestation as a future-slot attestation.

  • FCRTest.attest records the attestation step when it creates the attestation
  • FCRTest.next_slot ticks first then applies the attestation

This PR fixes this issue by recording the attestation step in apply_attestations, right after on_attestation runs (instead of when its created). This allows for the attestation step to land after the tick. Also had to tweak some things to make sure duplicate attestation steps werent created.

AI disclosure: Fable helped me debug, find the issue and write a fix. I've done a self review and understand the issue.

@github-actions github-actions Bot added the testing CI, actions, tests, testing infra label Sep 10, 2026

@syjn99 syjn99 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mkalinin

Copy link
Copy Markdown
Contributor

Don't LH and Prysm test runners cache attestations to apply them after the tick like it would happen in a real network?

@eserilev

eserilev commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

Yeah but we disable queueing future attestations when running fork choice compliance and FCR tests

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

testing CI, actions, tests, testing infra

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants