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

@@ -9,7 +9,10 @@ use rand::rngs::StdRng;
use std::sync::Arc;
use types::data::FixedBlobSidecarList;
use types::test_utils::TestRandom;
use types::{BlobSidecar, DataColumnSidecar, EthSpec, MinimalEthSpec, Slot};
use types::{
BlobSidecar, DataColumnSidecar, DataColumnSidecarFulu, DataColumnSidecarGloas, EthSpec,
MinimalEthSpec, Slot,
};
type E = MinimalEthSpec;
@@ -73,13 +76,22 @@ async fn data_column_sidecar_event_on_process_gossip_data_column() {
// build and process a gossip verified data column
let mut rng = StdRng::seed_from_u64(0xDEADBEEF0BAD5EEDu64);
let sidecar = {
// DA checker only accepts sampling columns, so we need to create one with a sampling index.
let mut random_sidecar = DataColumnSidecar::random_for_test(&mut rng);
let slot = Slot::new(10);
let epoch = slot.epoch(E::slots_per_epoch());
random_sidecar.signed_block_header.message.slot = slot;
random_sidecar.index = harness.chain.sampling_columns_for_epoch(epoch)[0];
random_sidecar
let fork_name = harness.spec.fork_name_at_slot::<E>(slot);
// DA checker only accepts sampling columns, so we need to create one with a sampling index.
if fork_name.gloas_enabled() {
let mut random_sidecar = DataColumnSidecarGloas::random_for_test(&mut rng);
let epoch = slot.epoch(E::slots_per_epoch());
random_sidecar.slot = slot;
random_sidecar.index = harness.chain.sampling_columns_for_epoch(epoch)[0];
DataColumnSidecar::Gloas(random_sidecar)
} else {
let mut random_sidecar = DataColumnSidecarFulu::random_for_test(&mut rng);
let epoch = slot.epoch(E::slots_per_epoch());
random_sidecar.signed_block_header.message.slot = slot;
random_sidecar.index = harness.chain.sampling_columns_for_epoch(epoch)[0];
DataColumnSidecar::Fulu(random_sidecar)
}
};
let gossip_verified_data_column =
GossipVerifiedDataColumn::__new_for_testing(Arc::new(sidecar));