mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-03 00:31:50 +00:00
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:
@@ -28,9 +28,9 @@ use std::sync::Arc;
|
||||
use std::time::Duration;
|
||||
use types::{
|
||||
Attestation, AttestationRef, AttesterSlashing, AttesterSlashingRef, BeaconBlock, BeaconState,
|
||||
BlobSidecar, BlobsList, BlockImportSource, Checkpoint, DataColumnSidecarList,
|
||||
DataColumnSubnetId, ExecutionBlockHash, Hash256, IndexedAttestation, KzgProof,
|
||||
ProposerPreparationData, SignedBeaconBlock, Slot, Uint256,
|
||||
BlobSidecar, BlobsList, BlockImportSource, Checkpoint, DataColumnSidecar,
|
||||
DataColumnSidecarList, DataColumnSubnetId, ExecutionBlockHash, Hash256, IndexedAttestation,
|
||||
KzgProof, ProposerPreparationData, SignedBeaconBlock, Slot, Uint256,
|
||||
};
|
||||
|
||||
// When set to true, cache any states fetched from the db.
|
||||
@@ -252,7 +252,15 @@ impl<E: EthSpec> LoadCase for ForkChoiceTest<E> {
|
||||
columns_vec
|
||||
.into_iter()
|
||||
.map(|column| {
|
||||
ssz_decode_file(&path.join(format!("{column}.ssz_snappy")))
|
||||
ssz_decode_file_with(
|
||||
&path.join(format!("{column}.ssz_snappy")),
|
||||
|bytes| {
|
||||
DataColumnSidecar::from_ssz_bytes_for_fork(
|
||||
bytes, fork_name,
|
||||
)
|
||||
.map(Arc::new)
|
||||
},
|
||||
)
|
||||
})
|
||||
.collect::<Result<Vec<_>, _>>()
|
||||
})
|
||||
@@ -530,7 +538,8 @@ impl<E: EthSpec> Tester<E> {
|
||||
let gossip_verified_data_columns = columns
|
||||
.into_iter()
|
||||
.map(|column| {
|
||||
let subnet_id = DataColumnSubnetId::from_column_index(column.index, &self.spec);
|
||||
let subnet_id =
|
||||
DataColumnSubnetId::from_column_index(*column.index(), &self.spec);
|
||||
GossipVerifiedDataColumn::new(column.clone(), subnet_id, &self.harness.chain)
|
||||
.unwrap_or_else(|_| {
|
||||
data_column_success = false;
|
||||
|
||||
@@ -305,6 +305,10 @@ impl<T, E> SszStaticHandler<T, E> {
|
||||
Self::for_forks(vec![ForkName::Fulu])
|
||||
}
|
||||
|
||||
pub fn gloas_only() -> Self {
|
||||
Self::for_forks(vec![ForkName::Gloas])
|
||||
}
|
||||
|
||||
pub fn altair_and_later() -> Self {
|
||||
Self::for_forks(ForkName::list_all()[1..].to_vec())
|
||||
}
|
||||
|
||||
@@ -61,6 +61,8 @@ type_name!(BlobIdentifier);
|
||||
type_name_generic!(DataColumnsByRootIdentifier, "DataColumnsByRootIdentifier");
|
||||
type_name_generic!(BlobSidecar);
|
||||
type_name_generic!(DataColumnSidecar);
|
||||
type_name_generic!(DataColumnSidecarFulu, "DataColumnSidecar");
|
||||
type_name_generic!(DataColumnSidecarGloas, "DataColumnSidecar");
|
||||
type_name!(Checkpoint);
|
||||
type_name!(ConsolidationRequest);
|
||||
type_name_generic!(ContributionAndProof);
|
||||
|
||||
@@ -241,8 +241,9 @@ mod ssz_static {
|
||||
use ef_tests::{Handler, SszStaticHandler, SszStaticTHCHandler, SszStaticWithSpecHandler};
|
||||
use types::state::HistoricalSummary;
|
||||
use types::{
|
||||
AttesterSlashingBase, AttesterSlashingElectra, ConsolidationRequest, DepositRequest,
|
||||
LightClientBootstrapAltair, PendingDeposit, PendingPartialWithdrawal, WithdrawalRequest, *,
|
||||
AttesterSlashingBase, AttesterSlashingElectra, ConsolidationRequest, DataColumnSidecarFulu,
|
||||
DataColumnSidecarGloas, DepositRequest, LightClientBootstrapAltair, PendingDeposit,
|
||||
PendingPartialWithdrawal, WithdrawalRequest, *,
|
||||
};
|
||||
|
||||
ssz_static_test!(attestation_data, AttestationData);
|
||||
@@ -659,9 +660,13 @@ mod ssz_static {
|
||||
|
||||
#[test]
|
||||
fn data_column_sidecar() {
|
||||
SszStaticHandler::<DataColumnSidecar<MinimalEthSpec>, MinimalEthSpec>::fulu_and_later()
|
||||
SszStaticHandler::<DataColumnSidecarFulu<MinimalEthSpec>, MinimalEthSpec>::fulu_only()
|
||||
.run();
|
||||
SszStaticHandler::<DataColumnSidecar<MainnetEthSpec>, MainnetEthSpec>::fulu_and_later()
|
||||
SszStaticHandler::<DataColumnSidecarFulu<MainnetEthSpec>, MainnetEthSpec>::fulu_only()
|
||||
.run();
|
||||
SszStaticHandler::<DataColumnSidecarGloas<MinimalEthSpec>, MinimalEthSpec>::gloas_only()
|
||||
.run();
|
||||
SszStaticHandler::<DataColumnSidecarGloas<MainnetEthSpec>, MainnetEthSpec>::gloas_only()
|
||||
.run();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user