lambdaclass / lambdaclass/lambda_ethereum_consensus

SubnetInfo and shared validator data affecting aggregation publish

Open
#1,286 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug P2
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.