Is your feature request related to a problem? Please describe.
Currently Nimbus VC requests proposer and attester duties each slot. This is done to prevent stale data in case of reorgs. However, in the general case this can be done differently, by checking the dependant root of the received data from either the unsigned attestation or unsigned block.
The problem is that in setups with huge amount of validators running under Nimbus VC (i.e. 2500 x 32ETH validators), those calls to the beacon node can be really slow (>1s). This hinders the performance and in the attempt of some BNs to fulfil those requests, other requests like block proposals can be slowed down, resulting in degraded performance.
Describe the solution you'd like
Query for duties only once per epoch. Check for dependant root upon fetching data, in order to assure no reorg happened.
Describe alternatives you've considered
N/A
Additional context
N/A
Is your feature request related to a problem? Please describe.
Currently Nimbus VC requests proposer and attester duties each slot. This is done to prevent stale data in case of reorgs. However, in the general case this can be done differently, by checking the dependant root of the received data from either the unsigned attestation or unsigned block.
The problem is that in setups with huge amount of validators running under Nimbus VC (i.e. 2500 x 32ETH validators), those calls to the beacon node can be really slow (>1s). This hinders the performance and in the attempt of some BNs to fulfil those requests, other requests like block proposals can be slowed down, resulting in degraded performance.
Describe the solution you'd like
Query for duties only once per epoch. Check for dependant root upon fetching data, in order to assure no reorg happened.
Describe alternatives you've considered
N/A
Additional context
N/A