Repository navigation
fix: align remaining Gloas duty deadlines - #1310
Conversation
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 Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## epbs #1310 +/- ##
=======================================
Coverage ? 80.97%
=======================================
Files ? 181
Lines ? 42054
Branches ? 0
=======================================
Hits ? 34055
Misses ? 7999
Partials ? 0
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
shane-moore
left a comment
There was a problem hiding this comment.
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.
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
cargo test -p anchor_validator_store --locked: 186 passed.make test: 1,022 release tests passed, zero failed or ignored.make cargo-fmt-checkandmake lint: passed.Rollback
Revert the commit. No configuration or data migration is required.