Skip to content

Move some DA checker functionality to CustodyContext #8633

@eserilev

Description

@eserilev

Description

DataAvailabilityChecker: a cache to hold fully valid data that can't be imported to fork choice yet

CustodyContext: Contains all the information the node requires to calculate the number of blobs/columns to be custodied when checking for DA.

We have the following functions implemented for DataAvailabilityChecker that should be moved to CustodyContext

  • blobs_required_for_epoch
  • data_columns_required_for_block
  • data_availability_boundary
  • is_deneb (maybe we probably remove this completely, I don't think it's used anywhere)

This will help keep a better separation of concerns between the DataAvailabilityChecker and CustodyContext types

Additional Notes

As part of this refactor:

  • DataAvailabilityChecker no longer needs a reference to slot clock, slot clock should move to CustodyContext. Move DA boundary checks to CustodyContext #8696
  • RpcBlock::new should accept a CustodyContext as an argument instead of a DataAvailabilityChecker Move DA boundary checks to CustodyContext #8696
  • Move AvailableBlock and AvailableBlockData from data_availability_checker.rs to block_verification_types.rs
  • Delete enum DataSidecars and replace its usage with AvailableBlockData
  • Explore passing RpcBlock::FullyAvailable to range and backfill sync
  • Ensure all TODO(#8633) references in the codebase are resolved

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions