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

Do not require non-aggregators to subscribe to attnets #1685

Merged
merged 3 commits into from
Mar 26, 2020

Conversation

djrtwo
Copy link
Contributor

@djrtwo djrtwo commented Mar 25, 2020

As suggested by @AgeManning and discussed on the recent networking call, this PR distinguishes from an aggregating and non-aggregating beacon committee member for the purposes of attestation subnets.

  • Aggregators -- fully subscribe to the attestation subnet to receive newly published attestations for aggregation
  • Non-aggregators -- Only find sufficient peers on the attestation subnet (rather than subscribe) to allow for publishing of attestations. Reduces bandwidth requirement on the node, and keeps attnets small for quick propagation.

@djrtwo djrtwo requested a review from protolambda March 25, 2020 22:03
specs/phase0/validator.md Outdated Show resolved Hide resolved
specs/phase0/validator.md Outdated Show resolved Hide resolved
@mkalinin
Copy link
Collaborator

Do I understand correctly that after this change the mesh of a subnet will consist only from aggregators assigned to particular slot? If yes, doesn't it increase a surface for eclipse attack?

@zilm13
Copy link
Contributor

zilm13 commented Mar 26, 2020

plus to @mkalinin: open subnetwork of many nodes provides better security properties than small subnetwork even if its private.
Plus average Kademlia table of long running node consists of ~150 peers, which means you will have 2-3 nodes(/64) from any subnetwork in it (if you have only validators in network) according to the previous spec to start search from an 0 with new spec.

@djrtwo
Copy link
Contributor Author

djrtwo commented Mar 26, 2020

Do I understand correctly that after this change the mesh of a subnet will consist only from aggregators assigned to particular slot?

No, the mesh consists of the persistent committee plus the aggregators for a range of slots (something like 5 to 20 slots worth of aggregators, assuming aggregators join some amount of slots in advance to prepare). Persistent committees are simulated in phase 0 (see Phase 0 Attestation Subnet Stability)

which means you will have 2-3 nodes(/64)

Assuming that there is a distribution of validators across nodes and that each validator subscribes to a random subnet (rather than just each node), then there would be multiple more than 2-3 nodes of attnet capabilites in your routing table.

@djrtwo
Copy link
Contributor Author

djrtwo commented Mar 26, 2020

addressed comments @protolambda

Copy link
Collaborator

@protolambda protolambda left a comment

Choose a reason for hiding this comment

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

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants