Add Gloas data column support (#8682)

Co-Authored-By: Eitan Seri-Levi <eserilev@ucsc.edu>

Co-Authored-By: Eitan Seri- Levi <eserilev@gmail.com>
This commit is contained in:
Eitan Seri-Levi
2026-01-27 20:52:12 -08:00
committed by GitHub
parent 0f57fc9d8e
commit 9bec8df37a
44 changed files with 1507 additions and 680 deletions

View File

@@ -61,12 +61,12 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
let unique_column_indices = historical_data_column_sidecar_list
.iter()
.map(|item| item.index)
.map(|item| *item.index())
.collect::<HashSet<_>>();
let mut slot_and_column_index_to_data_columns = historical_data_column_sidecar_list
.iter()
.map(|data_column| ((data_column.slot(), data_column.index), data_column))
.map(|data_column| ((data_column.slot(), *data_column.index()), data_column))
.collect::<HashMap<_, _>>();
let forward_blocks_iter = self
@@ -80,13 +80,14 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
let (block_root, slot) = block_iter_result
.map_err(|e| HistoricalDataColumnError::BeaconChainError(Box::new(e)))?;
let fork_name = self.spec.fork_name_at_slot::<T::EthSpec>(slot);
for column_index in unique_column_indices.clone() {
if let Some(data_column) =
slot_and_column_index_to_data_columns.remove(&(slot, column_index))
{
if self
.store
.get_data_column(&block_root, &data_column.index)?
.get_data_column(&block_root, data_column.index(), fork_name)?
.is_some()
{
continue;