Skip to content

fix: align remaining Gloas duty deadlines - #1310

Merged
shane-moore merged 1 commit into
sigp:epbsfrom
shane-moore:fix/1114-deadline-alignment
Sep 24, 2026
Merged

shane-moore merged 1 commit into
sigp:epbsfrom
shane-moore:fix/1114-deadline-alignment

Conversation

@shane-moore

Copy link
Copy Markdown
Member

Problem, Evidence, and Context

Closes #1114.

After #1297 moved Gloas aggregation to half a slot, selection-proof collection still continued until two-thirds, after the aggregation snapshot. For a 12-second slot, collection continued until 8s although the snapshot occurred at 6s. This timeout mismatch alone has not been shown to cause a missed on-time duty.

The envelope deadline matches today's 50% payload deadline, but duplicates it as a literal fraction.

Change Overview

Use the existing Lighthouse timing helpers for attestation and sync selection-proof expiry and the shared envelope deadline. With standard timings, Gloas proof collection stops at 6s, pre-Gloas remains 8s, and the envelope deadline remains 6s. No dependency bump is needed.

Risks, Trade-offs, and Mitigations

An incorrect deadline could expire proofs early or drift when collection starts late. Callback tests cover the last pre-Gloas and first Gloas slot, Alan and Boole paths, delayed starts, and completion before expiry. Envelope tests cover builder and non-builder paths with earlier and later configured payload deadlines.

Validation

  • New deadline regressions failed against the old literals before the fix.
  • cargo test -p anchor_validator_store --locked: 186 passed.
  • make test: 1,022 release tests passed, zero failed or ignored.
  • make cargo-fmt-check and make lint: passed.
  • No new devnet run.

Rollback

Revert the commit. No configuration or data migration is required.

Derive selection-proof expiry from the duty slot aggregate and contribution deadlines. Use the configured payload deadline for builder and non-builder envelope paths.

Add callback regressions across the Gloas boundary and for configurable payload deadlines.

Refs sigp#1114
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (epbs@9afa4ad). Learn more about missing BASE report.

Additional details and impacted files
@@           Coverage Diff           @@
##             epbs    #1310   +/-   ##
=======================================
  Coverage        ?   80.97%           
=======================================
  Files           ?      181           
  Lines           ?    42054           
  Branches        ?        0           
=======================================
  Hits            ?    34055           
  Misses          ?     7999           
  Partials        ?        0           
Flag Coverage Δ
rust 80.97% <100.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@shane-moore shane-moore left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

No actionable findings at 6b29f291, reviewed against epbs base 9afa4ad0.

Selection-proof expiry now uses the duty slot's fork-aware aggregate/contribution deadline, including delayed starts. The shared envelope deadline uses the pinned Lighthouse payload timing and remains 6s with standard settings. The regression tests cover the Gloas boundary, Alan and Boole paths, successful proofs before expiry, and configurable deadlines on both envelope paths.

Validation: 186 validator-store tests passed locally, along with formatting. CI debug and release suites each passed 1,020 tests, and Clippy passed. The CI local-testnet job is still pending; no new mixed-client Gloas run was performed.

Reviewed by gpt-6-astra high.

@shane-moore
shane-moore merged commit 58e2255 into sigp:epbs Sep 24, 2026
21 checks passed
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.

2 participants