Cell Dissemination (Partial messages) (#8314)

- https://github.com/ethereum/consensus-specs/pull/4558
- https://eips.ethereum.org/EIPS/eip-8136


  


Co-Authored-By: Daniel Knopik <daniel@dknopik.de>

Co-Authored-By: Pawan Dhananjay <pawandhananjay@gmail.com>

Co-Authored-By: Jimmy Chen <jchen.tc@gmail.com>
This commit is contained in:
Daniel Knopik
2026-04-23 20:52:28 +02:00
committed by GitHub
parent e086628efe
commit 8a384ff445
54 changed files with 4797 additions and 630 deletions

View File

@@ -6,7 +6,9 @@
use std::collections::{HashMap, HashSet};
use std::marker::PhantomData;
use std::sync::Arc;
use types::{BlobSidecar, ChainSpec, DataColumnSidecar, EthSpec, Hash256, SignedBeaconBlock, Slot};
use types::{
BlobSidecar, ChainSpec, DataColumnSidecar, EthSpec, Hash256, PartialDataColumnHeader, Slot,
};
type ValidatorIndex = u64;
type BeaconBlockRoot = Hash256;
@@ -102,17 +104,17 @@ impl ObservationKey {
}
}
pub fn from_block<E: EthSpec>(
block: &SignedBeaconBlock<E>,
pub fn from_partial_column_header<E: EthSpec>(
header: &PartialDataColumnHeader<E>,
block_root: Hash256,
spec: &ChainSpec,
) -> Self {
let slot = block.slot();
let slot = header.slot();
if spec.fork_name_at_slot::<E>(slot).gloas_enabled() {
Self::new_block_root_key(block_root, slot)
} else {
Self::new_proposer_key(block.message().proposer_index(), slot)
Self::new_proposer_key(header.signed_block_header.message.proposer_index, slot)
}
}