Conversation
- Once per slot, gather prepare data needed by the Anchor validator store and pass it - Only wait for attestation signatures from attesting validators - Remove fork of sync committee service
jking-aus
approved these changes
Mar 20, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Introduction
We reuse the Lighthouse validator services by having them invoke the
AnchorValidatorStore. Of course, the validator services are very tailored towards use in Lighthouse's VC. This already caused some issues in the past, as sometimes, we need to know more duties and some contextual data for this slot, but the validator store API works purely on a "per signature" level. In the past, this was mitigated by having a "fork" of the sync committee service, which grouped all aggregation duties for a validator (as a validator theoretically have multiple!) and provided attestation data for sync committee signatures, as we reuse the qbft consensus of attestations.Problem
During testnet operation, I noticed a bug where the signature collector waited for all validators of a (ssv) committee to submit their attestation signature - but it should only wait for all attesting validators. The problem is once again, that the validator store can not know this - as
sign_attestationis called one by one. So one solution would be to fork the attestation service - which I want to avoid, as we want to benefit from the newest developments in Lighthouse.Solution
Instead, introduce
SlotMetadata, which collects all the data needed by Anchor at 1/3rd into each slot, in order to have all this data when the duty services call the store. This includes the attesting validators and a way to cache data for the rare event of being in the sync committee multiple times.Changes