Skip to content

Comments

Introduce slot metadata#202

Merged
jking-aus merged 1 commit intosigp:unstablefrom
dknopik:slot-metadata
Mar 20, 2025
Merged

Introduce slot metadata#202
jking-aus merged 1 commit intosigp:unstablefrom
dknopik:slot-metadata

Conversation

@dknopik
Copy link
Member

@dknopik dknopik commented Mar 20, 2025

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_attestation is 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

  • 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
  • Some useful debug logging in the signature collector

- 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 jking-aus merged commit d793071 into sigp:unstable Mar 20, 2025
10 checks passed
@dknopik dknopik deleted the slot-metadata branch June 20, 2025 13:06
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.

2 participants