Use DataColumnSidecarList

This commit is contained in:
dapplion
2025-05-27 00:43:38 -05:00
parent 34b37b97ed
commit 8f74adc66f
7 changed files with 19 additions and 25 deletions

View File

@@ -554,7 +554,7 @@ impl<T: BeaconChainTypes> NetworkBeaconProcessor<T> {
pub fn send_rpc_validate_data_columns(
self: &Arc<Self>,
block_root: Hash256,
data_columns: Vec<Arc<DataColumnSidecar<T::EthSpec>>>,
data_columns: DataColumnSidecarList<T::EthSpec>,
seen_timestamp: Duration,
id: SamplingId,
) -> Result<(), Error<T::EthSpec>> {

View File

@@ -1216,7 +1216,7 @@ impl<T: BeaconChainTypes> SyncNetworkContext<T> {
id: DataColumnsByRootRequestId,
peer_id: PeerId,
rpc_event: RpcEvent<Arc<DataColumnSidecar<T::EthSpec>>>,
) -> Option<RpcResponseResult<Vec<Arc<DataColumnSidecar<T::EthSpec>>>>> {
) -> Option<RpcResponseResult<DataColumnSidecarList<T::EthSpec>>> {
let resp = self
.data_columns_by_root_requests
.on_response(id, rpc_event);
@@ -1314,7 +1314,7 @@ impl<T: BeaconChainTypes> SyncNetworkContext<T> {
id: CustodyId,
req_id: DataColumnsByRootRequestId,
peer_id: PeerId,
resp: RpcResponseResult<Vec<Arc<DataColumnSidecar<T::EthSpec>>>>,
resp: RpcResponseResult<DataColumnSidecarList<T::EthSpec>>,
) -> Option<CustodyRequestResult<T::EthSpec>> {
let span = span!(
Level::INFO,
@@ -1381,7 +1381,7 @@ impl<T: BeaconChainTypes> SyncNetworkContext<T> {
id: CustodyByRangeRequestId,
req_id: DataColumnsByRangeRequestId,
peer_id: PeerId,
resp: RpcResponseResult<Vec<Arc<DataColumnSidecar<T::EthSpec>>>>,
resp: RpcResponseResult<DataColumnSidecarList<T::EthSpec>>,
) -> Option<CustodyRequestResult<T::EthSpec>> {
// Note: need to remove the request to borrow self again below. Otherwise we can't
// do nested requests

View File

@@ -15,8 +15,8 @@ use parking_lot::RwLock;
use std::collections::{HashMap, HashSet};
use std::sync::Arc;
use types::{
BlobSidecar, ChainSpec, ColumnIndex, DataColumnSidecar, EthSpec, Hash256, RuntimeVariableList,
SignedBeaconBlock, Slot,
BlobSidecar, ChainSpec, ColumnIndex, DataColumnSidecarList, EthSpec, Hash256,
RuntimeVariableList, SignedBeaconBlock, Slot,
};
/// Given a `BlocksByRangeRequest` (a range of slots) fetches all necessary data to return
@@ -57,7 +57,7 @@ enum FuluEnabledState<E: EthSpec> {
blocks: Vec<Arc<SignedBeaconBlock<E>>>,
block_peer: PeerId,
custody_by_range_request:
ByRangeRequest<CustodyByRangeRequestId, Vec<Arc<DataColumnSidecar<E>>>, PeerGroup>,
ByRangeRequest<CustodyByRangeRequestId, DataColumnSidecarList<E>, PeerGroup>,
},
}
@@ -389,7 +389,7 @@ impl<T: BeaconChainTypes> BlockComponentsByRangeRequest<T> {
pub fn on_custody_by_range_result(
&mut self,
id: CustodyByRangeRequestId,
data: Vec<Arc<DataColumnSidecar<T::EthSpec>>>,
data: DataColumnSidecarList<T::EthSpec>,
peers: PeerGroup,
cx: &mut SyncNetworkContext<T>,
) -> BlockComponentsByRangeRequestResult<T::EthSpec> {
@@ -483,7 +483,7 @@ fn couple_blocks_deneb<E: EthSpec>(
fn couple_blocks_fulu<E: EthSpec>(
blocks: Vec<Arc<SignedBeaconBlock<E>>>,
data_columns: Vec<Arc<DataColumnSidecar<E>>>,
data_columns: DataColumnSidecarList<E>,
custody_column_indices: Vec<ColumnIndex>,
spec: &ChainSpec,
) -> Result<Vec<RpcBlock<E>>, Error> {

View File

@@ -16,8 +16,8 @@ use std::time::{Duration, Instant};
use std::{collections::HashMap, marker::PhantomData, sync::Arc};
use tracing::{debug, warn};
use types::{
data_column_sidecar::ColumnIndex, DataColumnSidecar, Epoch, EthSpec, Hash256,
SignedBeaconBlockHeader, Slot,
data_column_sidecar::ColumnIndex, DataColumnSidecar, DataColumnSidecarList, Epoch, EthSpec,
Hash256, SignedBeaconBlockHeader, Slot,
};
use super::{PeerGroup, RpcResponseResult, SyncNetworkContext};
@@ -25,8 +25,6 @@ use super::{PeerGroup, RpcResponseResult, SyncNetworkContext};
const TEMPORARY_FAULT_EXPIRY_SECONDS: u64 = 15;
const REQUEST_EXPIRY_SECONDS: u64 = 300;
type DataColumnSidecarList<E> = Vec<Arc<DataColumnSidecar<E>>>;
pub struct ActiveCustodyByRangeRequest<T: BeaconChainTypes> {
start_time: Instant,
id: CustodyByRangeRequestId,

View File

@@ -15,7 +15,7 @@ use std::time::{Duration, Instant};
use std::{collections::HashMap, marker::PhantomData, sync::Arc};
use strum::IntoStaticStr;
use tracing::{debug, warn};
use types::{data_column_sidecar::ColumnIndex, DataColumnSidecar, Hash256};
use types::{data_column_sidecar::ColumnIndex, DataColumnSidecar, DataColumnSidecarList, Hash256};
use super::{LookupRequestResult, PeerGroup, RpcResponseResult, SyncNetworkContext};
@@ -24,8 +24,6 @@ const REQUEST_EXPIRY_SECONDS: u64 = 300;
/// TODO(das): this attempt count is nested into the existing lookup request count.
const MAX_CUSTODY_COLUMN_DOWNLOAD_ATTEMPTS: usize = 3;
type DataColumnSidecarList<E> = Vec<Arc<DataColumnSidecar<E>>>;
pub struct ActiveCustodyByRootRequest<T: BeaconChainTypes> {
start_time: Instant,
block_root: Hash256,

View File

@@ -1,13 +1,13 @@
use super::{ActiveRequestItems, LookupVerifyError};
use lighthouse_network::rpc::methods::DataColumnsByRangeRequest;
use std::sync::Arc;
use types::{DataColumnSidecar, EthSpec, Slot};
use types::{DataColumnSidecar, DataColumnSidecarList, EthSpec, Slot};
/// Accumulates results of a data_columns_by_range request. Only returns items after receiving the
/// stream termination.
pub struct DataColumnsByRangeRequestItems<E: EthSpec> {
request: DataColumnsByRangeRequest,
items: Vec<Arc<DataColumnSidecar<E>>>,
items: DataColumnSidecarList<E>,
}
impl<E: EthSpec> DataColumnsByRangeRequestItems<E> {

View File

@@ -43,8 +43,8 @@ use tracing::info;
use types::{
data_column_sidecar::ColumnIndex,
test_utils::{SeedableRng, TestRandom, XorShiftRng},
BeaconState, BeaconStateBase, BlobSidecar, DataColumnSidecar, EthSpec, ForkContext, ForkName,
Hash256, MinimalEthSpec as E, SignedBeaconBlock, Slot,
BeaconState, BeaconStateBase, BlobSidecar, DataColumnSidecar, DataColumnSidecarList, EthSpec,
ForkContext, ForkName, Hash256, MinimalEthSpec as E, SignedBeaconBlock, Slot,
};
const D: Duration = Duration::new(0, 0);
@@ -216,9 +216,7 @@ impl TestRig {
generate_rand_block_and_blobs::<E>(fork_name, num_blobs, rng, &self.spec)
}
fn rand_block_and_data_columns(
&mut self,
) -> (SignedBeaconBlock<E>, Vec<Arc<DataColumnSidecar<E>>>) {
fn rand_block_and_data_columns(&mut self) -> (SignedBeaconBlock<E>, DataColumnSidecarList<E>) {
let num_blobs = NumBlobs::Number(1);
generate_rand_block_and_data_columns::<E>(
self.fork_name,
@@ -721,7 +719,7 @@ impl TestRig {
fn complete_valid_sampling_column_requests(
&mut self,
ids: DCByRootIds,
data_columns: Vec<Arc<DataColumnSidecar<E>>>,
data_columns: DataColumnSidecarList<E>,
) {
for id in ids {
self.log(&format!("return valid data column for {id:?}"));
@@ -766,7 +764,7 @@ impl TestRig {
fn complete_valid_custody_request(
&mut self,
ids: DCByRootIds,
data_columns: Vec<Arc<DataColumnSidecar<E>>>,
data_columns: DataColumnSidecarList<E>,
missing_components: bool,
) {
let lookup_id = if let SyncRequestId::DataColumnsByRoot(DataColumnsByRootRequestId {