-
Notifications
You must be signed in to change notification settings - Fork 943
Open
Labels
optimizationSomething to make Lighthouse run more efficiently.Something to make Lighthouse run more efficiently.val-clientRelates to the validator client binaryRelates to the validator client binary
Description
The validator client polls for proposer duties every slot, creating unnecessary load on beacon nodes. With Fulu activating in less than two weeks, we can use the new proposer_lookahead feature to reduce this.
Problem
- The VC polls proposer duties every single slot (every 12 seconds on mainnet)
- Proposer duties don't change within an epoch (reorgs are already handled via the
dependent_rootcheck) - This means 31 out of 32 requests per epoch return identical data
- There's even a comment acknowledging "0-epoch look-ahead" as a limitation
Proposed Solution
Fulu adds a proposer_lookahead field to the beacon state with proposer indices for min_seed_lookahead + 1 epochs ahead. We should:
- Poll only at epoch boundaries instead of every slot
- Keep the existing
dependent_rootmechanism for reorgs
Testing
- Monitor VC logs to confirm polling happens only at epoch boundaries
- Check BN HTTP metrics to verify reduced request frequency
- Verify validators still propose correctly
- Test that reorgs trigger duty refreshes
michaelsproul
Metadata
Metadata
Assignees
Labels
optimizationSomething to make Lighthouse run more efficiently.Something to make Lighthouse run more efficiently.val-clientRelates to the validator client binaryRelates to the validator client binary