lambdaclass / lambdaclass/lambda_ethereum_consensus
SubnetInfo and shared validator data affecting aggregation publish
Nobody has claimed this yet.
- Dominant language
- Elixir
- Stars
- 109
- Forks
- 41
- PR merge metrics
- No merged PRs in 30d
Description
After #1218 Subnet information is collected in a shared way by all validators, this affects the current SubnetInfo as well as the about to be introduced SyncSubnetInfo in #1284. In setups with lots of validators on other nodes or low amount of validators in ours this is not seen, but when more than one validator has aggregation duties on the same slot, the first one who stops collecting messages is the one who produce the aggregation first.
This is something that happens easily in kurtosis due to the low amount of aggregators and how easy is to find multiple aggregators for the same slot, but shouldn't be common on testnets or mainnet (Please correct me if I'm missing something here) so this is low priority.
Here is a log showing the issue seen while working on #1284:
2024-09-05 18:58:02 INFO 21:58:02.003 [Validator] 8 published aggregate slot=2
2024-09-05 18:58:02 ERROR 21:58:02.004 [Validator] 5 Failed to stop collecting attestations. Reason: subnet not joined
2024-09-05 18:58:02 ERROR 21:58:02.004 [Validator] 21 Failed to stop collecting attestations. Reason: subnet not joined
2024-09-05 18:58:02 ERROR 21:58:02.005 [Validator] 22 Failed to stop collecting attestations. Reason: subnet not joined
2024-09-05 18:58:02 INFO 21:58:02.006 [Validator] 44 published aggregate slot=2
2024-09-05 18:58:02 ERROR 21:58:02.007 [Validator] 12 Failed to stop collecting attestations. Reason: subnet not joined
2024-09-05 18:58:02 ERROR 21:58:02.007 [Validator] 14 Failed to stop collecting attestations. Reason: subnet not joined
2024-09-05 18:58:02 ERROR 21:58:02.007 [Validator] 30 Failed to stop collecting attestations. Reason: subnet not joined
2024-09-05 18:58:02 INFO 21:58:02.008 [Validator] 44 publishing sync committee aggregate slot=2
2024-09-05 18:58:02 INFO 21:58:02.009 [Validator] 44 published sync committee aggregate slot=2
2024-09-05 18:58:02 INFO 21:58:02.010 [Validator] 29 publishing sync committee aggregate slot=2
2024-09-05 18:58:02 INFO 21:58:02.011 [Validator] 29 published sync committee aggregate slot=2
2024-09-05 18:58:02 INFO 21:58:02.011 [Validator] 61 publishing sync committee aggregate slot=2
2024-09-05 18:58:02 INFO 21:58:02.012 [Validator] 61 published sync committee aggregate slot=2
2024-09-05 18:58:02 ERROR 21:58:02.013 [Validator] 30 Failed to stop collecting sync committee messages. Reason: subnet not joined
2024-09-05 18:58:02 ERROR 21:58:02.013 [Validator] 45 Failed to stop collecting sync committee messages. Reason: subnet not joined
2024-09-05 18:58:02 ERROR 21:58:02.014 [Validator] 48 Failed to stop collecting sync committee messages. Reason: subnet not joined
2024-09-05 18:58:02 ERROR 21:58:02.014 [Validator] 57 Failed to stop collecting sync committee messages. Reason: subnet not joined
2024-09-05 18:58:02 ERROR 21:58:02.015 [Validator] 26 Failed to stop collecting sync committee messages. Reason: subnet not joined
2024-09-05 18:58:02 ERROR 21:58:02.015 [Validator] 63 Failed to stop collecting sync committee messages. Reason: subnet not joined
2024-09-05 18:58:02 ERROR 21:58:02.015 [Validator] 46 Failed to stop collecting sync committee messages. Reason: subnet not joined
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the shared SubnetInfo behavior introduced after #1218 and its interaction with SyncSubnetInfo from #1284. Reproduce the aggregation scenario in kurtosis, focusing on multiple validators with aggregation duties in the same slot. Done means validators can stop collecting and publish without the observed "subnet not joined" errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- elixir
- Domain
- distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100