fix: align Gloas aggregation timing with Lighthouse - #1297
Conversation
Pin Lighthouse to upstream unstable 1256bd99e and align aggregation round origins and shared metadata scheduling with the duty slot fork. Add regression coverage for the first Gloas slot. Addresses sigp#1292.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## epbs #1297 +/- ##
=======================================
Coverage ? 78.79%
=======================================
Files ? 179
Lines ? 39632
Branches ? 0
=======================================
Hits ? 31228
Misses ? 8404
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.
Reviewed by gpt-6-astra.
No actionable findings after the three-pass review at 9355b8ee. The Lighthouse triggers, Anchor consensus origins, and metadata scheduler use the duty slot's fork-specific timing, including the first Gloas slot.
Verified CI logs: 944 tests passed in each debug/release suite, including all three new timing regressions. Formatting, lint, and the local testnet passed. Tests were not rerun locally.
The mixed Anchor/Go Gloas timing comparison remains unverified. CI runs four Anchor nodes with Boole enabled, so it does not establish the Gloas-enabled, Boole-disabled result required for #1292. Selection-proof expiry remains separate in #1114.
Problem, Evidence, and Context
Addresses #1292. In the reported Gloas interop run, Anchor aggregation duties used the old two-thirds-slot timing while Go SSV used half a slot. Lighthouse #9823 supplies the fork-aware service triggers, but Anchor also needs to align its own consensus origins and metadata scheduler.
Change Overview
e58ec88feto upstream unstable1256bd99e1b6c5d1290241849354b7e27dbc0ed9.Selection-proof expiry remains separate in #1114.
Risks, Trade-offs, and Mitigations
The Lighthouse upgrade also inherits PTC concurrency and Gloas registration changes. Builder PRs #1282, #1283 and #1285 carry additional unmerged Lighthouse APIs, so their pins need reconciliation when rebasing.
The audit adds two allowed warnings for upstream
lru 0.13: RUSTSEC-2026-0002 and RUSTSEC-2026-0253. Static review found no calls to the affected APIs in its new consumer.Validation
make test: 946 passed, 0 failed, 0 ignored across the release workspace suite.The scheduler test injects assignments and exercises the real contribution consumer; it does not cover beacon fetching or duty discovery.
Rollback
Revert this PR, including the lockfile. No database or configuration migration.
Blockers / Dependencies
Draft pending the exact base/candidate, two Anchor plus two Go SSV runtime comparison with Gloas enabled and Boole disabled. Local image preparation stopped because Docker storage is below the harness's launch requirement. No mixed-client run or issue closure is claimed.
CI image construction is blocked before Rust compilation by expired Debian Bullseye security metadata (job log). The Dockerfile is unchanged. The remaining Rust CI jobs are still running.