# BN <-> Agggregator v0.11.1 - 1 Pager Design Author: Terence Tsao ## Objective In this page, we aim to achieve an end to end design between BN RPC server and VC RPC client so that BN can properly subscribes to attestation subnet such that: * BN serving attester can find persistent peers on the subnet in question to publish attestation * BN serving aggregator can join the subnet ## Required readings for background https://github.com/ethereum/eth2.0-specs/pull/1615 https://github.com/ethereum/eth2.0-specs/pull/1685 ## Limitations in today's design ![](https://i.imgur.com/xZJ12xP.png) **Red X 1**: Beacon node has no way knowing which attester is also an aggregator and whether it has to serve an aggregator at all. Instead beacon node just subscribes to every the committee ID subnet of every attester. This defaults back to the current testnet limitation, listening on every subnet is very expensive! **Red X 2**: Waiting 1/3 of slot on the beacon node makes little sense. Waitng 1/3 slot should happen on the attester before sending the GetAttestationData request **Red X 3**: Beacon node aggregates *all* unaggregated attestations in the pool at intervals (3 times per slot), this a wasteful operation given a beacon node may not be serving aggregators. Beacon node should aggregate unaggregated attestations of the precise committee ID subnet on demand ## Proposed design to address limitaitons ![](https://i.imgur.com/ovC48eO.png) ~~**Yellow Star 1**: Update RPC duties response to include duties for next epoch~~ We don't have to modify the current RPC duties response. Instead, validator client can just send two duty requsts. One for current epoch and one for next epoch. **Yellow Star 2**: Add new RPC message `SubscribeSubnet` to notify which committee ID subnet to subscribe **Yellow Star 3**: Move wait 1/3 of slot to validator client attester **Yellow Star 4**: Have Aggregate attestations on demand and take out aggregation intervals routine in operation pool ❗**Note**❗ The proposed design assume that backend should not be load balanced with round robin or any other ephemeral connection LB strategy. A beacon node should consider the fact that the validator can connect to the BN later and BNshould do whatever it can to connect to the subnet in a timely manner.