-
Notifications
You must be signed in to change notification settings - Fork 265
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
initial attestation aggregation #769
Conversation
The epoch boundary condition, especially, is fixed. This is plausibly mergeable now. Testing this is still challenging due to the BLS dependency. |
beacon_chain/beacon_node.nim
Outdated
|
||
let bs = BlockSlot(blck: head, slot: slot) | ||
|
||
let committees_per_slot = get_committee_count_at_slot(state, head.slot) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this looks fishy - why head.slot
here? what if no blocks have been produced for an epoch or two?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, head.slot
is incorrect. The idea is here is to be internally consistently living in the recent-past-slots (including committee assignments, numbers of committees, et cetera), as that's the world relative to which the attestation's being aggregated (not head
, not the current justified slot/epoch, and not the current finalized slot/epoch, and not the current wall slot).
Which slot that exactly is given by the parameter slot
. It probably hasn't made any difference in my local testnet/eth2_network_simulation
runs, but obviously matters in a live network.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fbd05ed
to
60992ea
Compare
5d814b6
to
043c609
Compare
This depends on some block pool changes in #812 to be merged to complete. |
…ailing/following distance; document how the only-broadcast-if mechanism works better and what aggregation already happens, not otherwise sufficiently clear; use correct BlockSlot across epoch boundaries
…te broadcast; follow 0.11.x aggregate broadcast p2p interface topic
…d genesis_validators_root
This version finalizes with
make eth2_network_simulation
.It fills in the remaining part of #721 almost as much as feasible currently, though, given that https://github.com/status-im/nim-beacon-chain/blob/devel/beacon_chain/spec/crypto.nim (where the BLS signing would be from) is still basically the 0.9.x version.
Finalizes under
make eth2_network_simulation
and local testnet locally.