Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

target sync committee aggregators to 16 #2514

Merged
merged 2 commits into from
Jul 13, 2021
Merged

target sync committee aggregators to 16 #2514

merged 2 commits into from
Jul 13, 2021

Conversation

djrtwo
Copy link
Contributor

@djrtwo djrtwo commented Jul 12, 2021

@mcdee Did some quick math to show that the current configuration of TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE as 4 had an unacceptably high probability of sync committee subnets not having aggregators.

@hwwhww tossed the math and some options into this spreadsheet. Based on discussions, it looks like the choice of 16 is the right tradeoff to generally have a high chance of having at least one aggregator per slot, even on a daily basis.

Note, that 4 was naively selected to reduce chatter on yet another global channel, but assuming attestation aggregation is not already overwhelming, this increases global messages for ~6% (4 more 16 aggregator topics on top of the 64 attestation topics that also have 16 aggregator targets)

@djrtwo
Copy link
Contributor Author

djrtwo commented Jul 12, 2021

Thanks for the fix @hwwhww !

Copy link
Contributor

@hwwhww hwwhww left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The logic LGTM.

And about if should TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE be in preset/config yaml file, TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE should be "constant" if SYNC_COMMITTEE_SIZE // SYNC_COMMITTEE_SUBNET_COUNT := 128 is also constant. We could:

  1. Set that SYNC_COMMITTEE_SIZE // SYNC_COMMITTEE_SUBNET_COUNT should be a constant value. So we can add assert SYNC_COMMITTEE_SIZE // SYNC_COMMITTEE_SUBNET_COUNT == TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE * 4 to test_config_invariants.py;
  2. Or, we can put TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE to preset file to remind the client devs of updating this field correspondingly in the future. (I'm not strongly for this time... but it's easy to forget...)

What do you think?

@hwwhww hwwhww added the scope:v-guide Validator guide label Jul 12, 2021
@djrtwo
Copy link
Contributor Author

djrtwo commented Jul 12, 2021

What does the restriction with (1) buy us?

@hwwhww
Copy link
Contributor

hwwhww commented Jul 13, 2021

What does the restriction with (1) buy us?

I was thinking that if we somehow update SYNC_COMMITTEE_SIZE or SYNC_COMMITTEE_SUBNET_COUNT for other reasons, we would be notified to increase TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE if needs. However, I just tried other numbers on the spreadsheet, the TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE = 16 should have guaranteed a high chance of aggregator selections with different committee sizes. So, it's not "required". 😅

@djrtwo
Copy link
Contributor Author

djrtwo commented Jul 13, 2021

going to merge as is for now!
thanks

@djrtwo djrtwo merged commit 2275780 into dev Jul 13, 2021
@djrtwo djrtwo deleted the sync-agg-target branch July 13, 2021 17:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
scope:v-guide Validator guide
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants