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

Implement validator custody #14948

Open
wants to merge 8 commits into
base: peerDAS
Choose a base branch
from
Open

Implement validator custody #14948

wants to merge 8 commits into from

Conversation

nalepae
Copy link
Contributor

@nalepae nalepae commented Feb 18, 2025

What type of PR is this?
Feature

This pull request implements validator custody.

Other notes for review
Please read commit by commmit.

Acknowledgements


1. Tracked validator cache

When a validator client sends a /eth/v1/validator/prepare_beacon_proposer message to the beacon node (or the equivalent gRPC message), the TrackedValidatorsCache remembers the corresponding validator indices.

These indices are deleted from the cache one hour after the latest subscription.
One hour is a convenient duration to let the node operator do maintenance job on their infrastructure if they need to move/reboot some validators clients.

2. Target custody group count.

When a first block of an epoch is received, the content of the TrackedValidatorsCache is retrieved, and the total balance of validators managed by the beacon node is computed. From this, the TargetCustodyGroupCount is computed. Target means the beacon node theoretically should custody this group count.

3. Data columns subnets subscriptions.

The beacon node node subscribes to the subnets determined by the target custody group sampling size.

4. Data availability.

When receiving a block via gossip, the node considers data columns availability determined by the actual custody group sampling size. The actual custody group sampling size can never be higher than the target custody group sampling size.

5. To advertise custody group count.

When the correct amount of data column subnets are subscribed with respect to the target custody group count, then the to advertise custody group count is updated, and set to the target custody group count.
Currently, the only condition is the column subnets subscription. Later, the data columns backfill will also be considered.

6. Advertisement of the custody group count.

Twice per slot, the to advertise custody group count is sent to the network via ENR and Metadata.

@nalepae nalepae force-pushed the validator-custody branch 8 times, most recently from fd844d2 to 6c7d0f8 Compare February 21, 2025 13:44
@nalepae nalepae changed the title Validator custody Implement validators custody Feb 21, 2025
@nalepae nalepae changed the title Implement validators custody Implement validator custody Feb 21, 2025
@nalepae nalepae marked this pull request as ready for review February 22, 2025 18:40
@nalepae nalepae requested a review from a team as a code owner February 22, 2025 18:40
@nalepae nalepae requested review from prestonvanloon, potuz and terencechain and removed request for a team February 22, 2025 18:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant