Skip to content

Implement basic validator custody #7262

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

Open
wants to merge 16 commits into
base: unstable
Choose a base branch
from

Conversation

dapplion
Copy link
Collaborator

@dapplion dapplion commented Apr 4, 2025

Issue Addressed

Also does a consistency check on the DB to make sure the stored columns are compatible

Not tested yet

Proposed Changes

TODO

@dapplion dapplion added work-in-progress PR is a work-in-progress das Data Availability Sampling labels Apr 4, 2025
@dapplion dapplion requested a review from jxs as a code owner April 4, 2025 21:55
Copy link

mergify bot commented Apr 8, 2025

This pull request has merge conflicts. Could you please resolve them @dapplion? 🙏

// We need backfill sync to fetch batches with `CGC_f = cgc_at_finalized_slot`. Then
// `custody_group_count(oldest_block_slot) should now return `CGC_f`. So we have to
// delete the CGC updates with `update.slot < finalized_slot`
todo!();
Copy link
Member

@michaelsproul michaelsproul Apr 10, 2025

Choose a reason for hiding this comment

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

To prevent concurrent updates of oldest_block_slot, we can get import_historical_block_batch to handle the mutation for us.

We can add an argument to that function, something like restart: bool, and set the oldest_block_{slot,root} to the last block in the batch passed in (allowing the oldest_block_slot to go up).

TODO: what if state reconstruction is running as well?

  • Need to consider how state reconstruction depends on and modifies oldest_block_slot. Should maybe make as_archive_anchor() preserve the oldest block slot

Alternatively, make sure we only restart backfill if oldest_block_slot > 0 (might affect some testnets with FULU_FORK_EPOCH=0, but not mainnet). Actually we need to consider max(oldest_block_slot, fulu_fork_slot, clock_slot - da_window)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
das Data Availability Sampling work-in-progress PR is a work-in-progress
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants