Skip to content

Commit 565424d

Browse files
committed
Reduce number of blobs used in tests to speed up CI.
1 parent 538b704 commit 565424d

File tree

12 files changed

+49
-116
lines changed

12 files changed

+49
-116
lines changed

beacon_node/beacon_chain/src/data_availability_checker/overflow_lru_cache.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1277,7 +1277,7 @@ mod pending_components_tests {
12771277
let mut rng = StdRng::seed_from_u64(0xDEADBEEF0BAD5EEDu64);
12781278
let spec = test_spec::<E>();
12791279
let (block, blobs_vec) =
1280-
generate_rand_block_and_blobs::<E>(ForkName::Deneb, NumBlobs::Random, &mut rng, &spec);
1280+
generate_rand_block_and_blobs::<E>(ForkName::Deneb, NumBlobs::Random, &mut rng);
12811281
let max_len = spec.max_blobs_per_block(block.epoch()) as usize;
12821282
let mut blobs: RuntimeFixedVector<Option<Arc<BlobSidecar<E>>>> =
12831283
RuntimeFixedVector::default(max_len);

beacon_node/beacon_chain/src/kzg_utils.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -463,7 +463,7 @@ mod test {
463463

464464
#[track_caller]
465465
fn test_validate_data_columns(kzg: &Kzg, spec: &ChainSpec) {
466-
let num_of_blobs = 6;
466+
let num_of_blobs = 2;
467467
let (signed_block, blobs, proofs) =
468468
create_test_fulu_block_and_blobs::<E>(num_of_blobs, spec);
469469
let blob_refs = blobs.iter().collect::<Vec<_>>();
@@ -489,7 +489,8 @@ mod test {
489489

490490
#[track_caller]
491491
fn test_build_data_columns(kzg: &Kzg, spec: &ChainSpec) {
492-
let num_of_blobs = 6;
492+
// Using at least 2 blobs to make sure we're arranging the data columns correctly.
493+
let num_of_blobs = 2;
493494
let (signed_block, blobs, proofs) =
494495
create_test_fulu_block_and_blobs::<E>(num_of_blobs, spec);
495496

@@ -529,6 +530,7 @@ mod test {
529530

530531
#[track_caller]
531532
fn test_reconstruct_data_columns(kzg: &Kzg, spec: &ChainSpec) {
533+
// Using at least 2 blobs to make sure we're arranging the data columns correctly.
532534
let num_of_blobs = 2;
533535
let (signed_block, blobs, proofs) =
534536
create_test_fulu_block_and_blobs::<E>(num_of_blobs, spec);
@@ -552,6 +554,7 @@ mod test {
552554

553555
#[track_caller]
554556
fn test_reconstruct_data_columns_unordered(kzg: &Kzg, spec: &ChainSpec) {
557+
// Using at least 2 blobs to make sure we're arranging the data columns correctly.
555558
let num_of_blobs = 2;
556559
let (signed_block, blobs, proofs) =
557560
create_test_fulu_block_and_blobs::<E>(num_of_blobs, spec);
@@ -573,7 +576,8 @@ mod test {
573576

574577
#[track_caller]
575578
fn test_reconstruct_blobs_from_data_columns(kzg: &Kzg, spec: &ChainSpec) {
576-
let num_of_blobs = 6;
579+
// Using at least 2 blobs to make sure we're arranging the data columns correctly.
580+
let num_of_blobs = 2;
577581
let (signed_block, blobs, proofs) =
578582
create_test_fulu_block_and_blobs::<E>(num_of_blobs, spec);
579583
let blob_refs = blobs.iter().collect::<Vec<_>>();

beacon_node/beacon_chain/src/test_utils.rs

Lines changed: 24 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -3244,96 +3244,48 @@ pub enum NumBlobs {
32443244
None,
32453245
}
32463246

3247+
macro_rules! add_blob_transactions {
3248+
($message:expr, $num_blobs:expr, $rng:expr, $fork_name:expr) => {{
3249+
let num_blobs = match $num_blobs {
3250+
// Get random number between 1 and 2 blobs by default
3251+
NumBlobs::Random => $rng.random_range(1..=2),
3252+
NumBlobs::Number(n) => n,
3253+
NumBlobs::None => 0,
3254+
};
3255+
let (bundle, transactions) =
3256+
execution_layer::test_utils::generate_blobs::<E>(num_blobs, $fork_name).unwrap();
3257+
3258+
let payload = &mut $message.body.execution_payload;
3259+
payload.execution_payload.transactions = transactions;
3260+
3261+
$message.body.blob_kzg_commitments = bundle.commitments.clone();
3262+
bundle
3263+
}};
3264+
}
3265+
32473266
pub fn generate_rand_block_and_blobs<E: EthSpec>(
32483267
fork_name: ForkName,
32493268
num_blobs: NumBlobs,
32503269
rng: &mut impl Rng,
3251-
spec: &ChainSpec,
32523270
) -> (SignedBeaconBlock<E, FullPayload<E>>, Vec<BlobSidecar<E>>) {
32533271
let inner = map_fork_name!(fork_name, BeaconBlock, <_>::random_for_test(rng));
32543272

32553273
let mut block = SignedBeaconBlock::from_block(inner, types::Signature::random_for_test(rng));
3256-
let max_blobs = spec.max_blobs_per_block(block.epoch()) as usize;
32573274
let mut blob_sidecars = vec![];
32583275

32593276
let bundle = match block {
32603277
SignedBeaconBlock::Deneb(SignedBeaconBlockDeneb {
32613278
ref mut message, ..
3262-
}) => {
3263-
// Get either zero blobs or a random number of blobs between 1 and Max Blobs.
3264-
let payload: &mut FullPayloadDeneb<E> = &mut message.body.execution_payload;
3265-
let num_blobs = match num_blobs {
3266-
NumBlobs::Random => rng.random_range(1..=max_blobs),
3267-
NumBlobs::Number(n) => n,
3268-
NumBlobs::None => 0,
3269-
};
3270-
let (bundle, transactions) =
3271-
execution_layer::test_utils::generate_blobs::<E>(num_blobs, fork_name).unwrap();
3272-
3273-
payload.execution_payload.transactions = <_>::default();
3274-
for tx in Vec::from(transactions) {
3275-
payload.execution_payload.transactions.push(tx).unwrap();
3276-
}
3277-
message.body.blob_kzg_commitments = bundle.commitments.clone();
3278-
bundle
3279-
}
3279+
}) => add_blob_transactions!(message, num_blobs, rng, fork_name),
32803280
SignedBeaconBlock::Electra(SignedBeaconBlockElectra {
32813281
ref mut message, ..
3282-
}) => {
3283-
// Get either zero blobs or a random number of blobs between 1 and Max Blobs.
3284-
let payload: &mut FullPayloadElectra<E> = &mut message.body.execution_payload;
3285-
let num_blobs = match num_blobs {
3286-
NumBlobs::Random => rng.random_range(1..=max_blobs),
3287-
NumBlobs::Number(n) => n,
3288-
NumBlobs::None => 0,
3289-
};
3290-
let (bundle, transactions) =
3291-
execution_layer::test_utils::generate_blobs::<E>(num_blobs, fork_name).unwrap();
3292-
payload.execution_payload.transactions = <_>::default();
3293-
for tx in Vec::from(transactions) {
3294-
payload.execution_payload.transactions.push(tx).unwrap();
3295-
}
3296-
message.body.blob_kzg_commitments = bundle.commitments.clone();
3297-
bundle
3298-
}
3282+
}) => add_blob_transactions!(message, num_blobs, rng, fork_name),
32993283
SignedBeaconBlock::Fulu(SignedBeaconBlockFulu {
33003284
ref mut message, ..
3301-
}) => {
3302-
// Get either zero blobs or a random number of blobs between 1 and Max Blobs.
3303-
let payload: &mut FullPayloadFulu<E> = &mut message.body.execution_payload;
3304-
let num_blobs = match num_blobs {
3305-
NumBlobs::Random => rng.random_range(1..=max_blobs),
3306-
NumBlobs::Number(n) => n,
3307-
NumBlobs::None => 0,
3308-
};
3309-
let (bundle, transactions) =
3310-
execution_layer::test_utils::generate_blobs::<E>(num_blobs, fork_name).unwrap();
3311-
payload.execution_payload.transactions = <_>::default();
3312-
for tx in Vec::from(transactions) {
3313-
payload.execution_payload.transactions.push(tx).unwrap();
3314-
}
3315-
message.body.blob_kzg_commitments = bundle.commitments.clone();
3316-
bundle
3317-
}
3285+
}) => add_blob_transactions!(message, num_blobs, rng, fork_name),
33183286
SignedBeaconBlock::Gloas(SignedBeaconBlockGloas {
33193287
ref mut message, ..
3320-
}) => {
3321-
// Get either zero blobs or a random number of blobs between 1 and Max Blobs.
3322-
let payload: &mut FullPayloadGloas<E> = &mut message.body.execution_payload;
3323-
let num_blobs = match num_blobs {
3324-
NumBlobs::Random => rng.random_range(1..=max_blobs),
3325-
NumBlobs::Number(n) => n,
3326-
NumBlobs::None => 0,
3327-
};
3328-
let (bundle, transactions) =
3329-
execution_layer::test_utils::generate_blobs::<E>(num_blobs, fork_name).unwrap();
3330-
payload.execution_payload.transactions = <_>::default();
3331-
for tx in Vec::from(transactions) {
3332-
payload.execution_payload.transactions.push(tx).unwrap();
3333-
}
3334-
message.body.blob_kzg_commitments = bundle.commitments.clone();
3335-
bundle
3336-
}
3288+
}) => add_blob_transactions!(message, num_blobs, rng, fork_name),
33373289
_ => return (block, blob_sidecars),
33383290
};
33393291

@@ -3374,7 +3326,7 @@ pub fn generate_rand_block_and_data_columns<E: EthSpec>(
33743326
SignedBeaconBlock<E, FullPayload<E>>,
33753327
DataColumnSidecarList<E>,
33763328
) {
3377-
let (block, _blobs) = generate_rand_block_and_blobs(fork_name, num_blobs, rng, spec);
3329+
let (block, _blobs) = generate_rand_block_and_blobs(fork_name, num_blobs, rng);
33783330
let data_columns = generate_data_column_sidecars_from_block(&block, spec);
33793331
(block, data_columns)
33803332
}

beacon_node/execution_layer/src/engine_api/http.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1453,8 +1453,7 @@ mod test {
14531453

14541454
impl Tester {
14551455
pub fn new(with_auth: bool) -> Self {
1456-
let spec = Arc::new(MainnetEthSpec::default_spec());
1457-
let server = MockServer::unit_testing(spec);
1456+
let server = MockServer::unit_testing();
14581457

14591458
let rpc_url = SensitiveUrl::parse(&server.url()).unwrap();
14601459
let echo_url = SensitiveUrl::parse(&format!("{}/echo", server.url())).unwrap();

beacon_node/execution_layer/src/test_utils/execution_block_generator.rs

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ use rand::{Rng, SeedableRng, rngs::StdRng};
1313
use serde::{Deserialize, Serialize};
1414
use ssz::Decode;
1515
use ssz_types::VariableList;
16+
use std::cmp::max;
1617
use std::collections::HashMap;
1718
use std::sync::Arc;
1819
use tree_hash::TreeHash;
@@ -157,7 +158,6 @@ pub struct ExecutionBlockGenerator<E: EthSpec> {
157158
pub blobs_bundles: HashMap<PayloadId, BlobsBundle<E>>,
158159
pub kzg: Option<Arc<Kzg>>,
159160
rng: Arc<Mutex<StdRng>>,
160-
spec: Arc<ChainSpec>,
161161
}
162162

163163
fn make_rng() -> Arc<Mutex<StdRng>> {
@@ -177,7 +177,6 @@ impl<E: EthSpec> ExecutionBlockGenerator<E> {
177177
prague_time: Option<u64>,
178178
osaka_time: Option<u64>,
179179
amsterdam_time: Option<u64>,
180-
spec: Arc<ChainSpec>,
181180
kzg: Option<Arc<Kzg>>,
182181
) -> Self {
183182
let mut generator = Self {
@@ -200,7 +199,6 @@ impl<E: EthSpec> ExecutionBlockGenerator<E> {
200199
blobs_bundles: <_>::default(),
201200
kzg,
202201
rng: make_rng(),
203-
spec,
204202
};
205203

206204
generator.insert_pow_block(0).unwrap();
@@ -732,11 +730,10 @@ impl<E: EthSpec> ExecutionBlockGenerator<E> {
732730

733731
let fork_name = execution_payload.fork_name();
734732
if fork_name.deneb_enabled() {
735-
// get random number between 0 and Max Blobs
733+
// get random number between 0 and 1 blobs by default
734+
// For tests that need higher blob count, consider adding a `set_max_blob_count` method
736735
let mut rng = self.rng.lock();
737-
// TODO(EIP-7892): see FIXME below
738-
// FIXME: this will break with BPO forks. This function needs to calculate the epoch based on block timestamp..
739-
let max_blobs = self.spec.max_blobs_per_block_within_fork(fork_name) as usize;
736+
let max_blobs = max(1, self.min_blobs_count);
740737
let num_blobs = rng.random_range(self.min_blobs_count..=max_blobs);
741738
let (bundle, transactions) = generate_blobs(num_blobs, fork_name)?;
742739
for tx in Vec::from(transactions) {
@@ -977,7 +974,6 @@ mod test {
977974
const TERMINAL_DIFFICULTY: u64 = 10;
978975
const TERMINAL_BLOCK: u64 = 10;
979976
const DIFFICULTY_INCREMENT: u64 = 1;
980-
let spec = Arc::new(MainnetEthSpec::default_spec());
981977

982978
let mut generator: ExecutionBlockGenerator<MainnetEthSpec> = ExecutionBlockGenerator::new(
983979
Uint256::from(TERMINAL_DIFFICULTY),
@@ -988,7 +984,6 @@ mod test {
988984
None,
989985
None,
990986
None,
991-
spec,
992987
None,
993988
);
994989

beacon_node/execution_layer/src/test_utils/mock_execution_layer.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ impl<E: EthSpec> MockExecutionLayer<E> {
6363
prague_time,
6464
osaka_time,
6565
amsterdam_time,
66-
spec.clone(),
6766
kzg,
6867
);
6968

beacon_node/execution_layer/src/test_utils/mod.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4};
2222
use std::sync::{Arc, LazyLock};
2323
use tokio::{runtime, sync::oneshot};
2424
use tracing::info;
25-
use types::{ChainSpec, EthSpec, ExecutionBlockHash, Uint256};
25+
use types::{EthSpec, ExecutionBlockHash, Uint256};
2626
use warp::{Filter, Rejection, http::StatusCode};
2727

2828
use crate::EngineCapabilities;
@@ -114,7 +114,7 @@ pub struct MockServer<E: EthSpec> {
114114
}
115115

116116
impl<E: EthSpec> MockServer<E> {
117-
pub fn unit_testing(chain_spec: Arc<ChainSpec>) -> Self {
117+
pub fn unit_testing() -> Self {
118118
Self::new(
119119
&runtime::Handle::current(),
120120
JwtKey::from_slice(&DEFAULT_JWT_SECRET).unwrap(),
@@ -126,15 +126,13 @@ impl<E: EthSpec> MockServer<E> {
126126
None, // FIXME(electra): should this be the default?
127127
None, // FIXME(fulu): should this be the default?
128128
None, // FIXME(gloas): should this be the default?
129-
chain_spec,
130129
None,
131130
)
132131
}
133132

134133
pub fn new_with_config(
135134
handle: &runtime::Handle,
136135
config: MockExecutionConfig,
137-
spec: Arc<ChainSpec>,
138136
kzg: Option<Arc<Kzg>>,
139137
) -> Self {
140138
create_test_tracing_subscriber();
@@ -161,7 +159,6 @@ impl<E: EthSpec> MockServer<E> {
161159
prague_time,
162160
osaka_time,
163161
amsterdam_time,
164-
spec,
165162
kzg,
166163
);
167164

@@ -226,7 +223,6 @@ impl<E: EthSpec> MockServer<E> {
226223
prague_time: Option<u64>,
227224
osaka_time: Option<u64>,
228225
amsterdam_time: Option<u64>,
229-
spec: Arc<ChainSpec>,
230226
kzg: Option<Arc<Kzg>>,
231227
) -> Self {
232228
Self::new_with_config(
@@ -243,7 +239,6 @@ impl<E: EthSpec> MockServer<E> {
243239
osaka_time,
244240
amsterdam_time,
245241
},
246-
spec,
247242
kzg,
248243
)
249244
}

beacon_node/network/src/sync/block_sidecar_coupling.rs

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -525,7 +525,7 @@ mod tests {
525525
let mut rng = XorShiftRng::from_seed([42; 16]);
526526
let blocks = (0..4)
527527
.map(|_| {
528-
generate_rand_block_and_blobs::<E>(ForkName::Base, NumBlobs::None, &mut rng, &spec)
528+
generate_rand_block_and_blobs::<E>(ForkName::Base, NumBlobs::None, &mut rng)
529529
.0
530530
.into()
531531
})
@@ -549,14 +549,9 @@ mod tests {
549549
let blocks = (0..4)
550550
.map(|_| {
551551
// Always generate some blobs.
552-
generate_rand_block_and_blobs::<E>(
553-
ForkName::Deneb,
554-
NumBlobs::Number(3),
555-
&mut rng,
556-
&spec,
557-
)
558-
.0
559-
.into()
552+
generate_rand_block_and_blobs::<E>(ForkName::Deneb, NumBlobs::Number(3), &mut rng)
553+
.0
554+
.into()
560555
})
561556
.collect::<Vec<Arc<SignedBeaconBlock<E>>>>();
562557

beacon_node/network/src/sync/tests/lookups.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ impl TestRig {
194194
) -> (SignedBeaconBlock<E>, Vec<BlobSidecar<E>>) {
195195
let fork_name = self.fork_name;
196196
let rng = &mut self.rng;
197-
generate_rand_block_and_blobs::<E>(fork_name, num_blobs, rng, &self.spec)
197+
generate_rand_block_and_blobs::<E>(fork_name, num_blobs, rng)
198198
}
199199

200200
fn rand_block_and_data_columns(
@@ -1148,8 +1148,7 @@ impl TestRig {
11481148
fn stable_rng() {
11491149
let spec = types::MainnetEthSpec::default_spec();
11501150
let mut rng = XorShiftRng::from_seed([42; 16]);
1151-
let (block, _) =
1152-
generate_rand_block_and_blobs::<E>(ForkName::Base, NumBlobs::None, &mut rng, &spec);
1151+
let (block, _) = generate_rand_block_and_blobs::<E>(ForkName::Base, NumBlobs::None, &mut rng);
11531152
assert_eq!(
11541153
block.canonical_root(),
11551154
Hash256::from_slice(

consensus/types/src/test_utils/generate_random_block_and_blobs.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ mod test {
7777
#[test]
7878
fn test_verify_blob_inclusion_proof() {
7979
let (_block, blobs) =
80-
generate_rand_block_and_blobs::<MainnetEthSpec>(ForkName::Deneb, 6, &mut rng());
80+
generate_rand_block_and_blobs::<MainnetEthSpec>(ForkName::Deneb, 2, &mut rng());
8181
for blob in blobs {
8282
assert!(blob.verify_blob_sidecar_inclusion_proof());
8383
}
@@ -115,7 +115,7 @@ mod test {
115115
#[test]
116116
fn test_verify_blob_inclusion_proof_invalid() {
117117
let (_block, blobs) =
118-
generate_rand_block_and_blobs::<MainnetEthSpec>(ForkName::Deneb, 6, &mut rng());
118+
generate_rand_block_and_blobs::<MainnetEthSpec>(ForkName::Deneb, 1, &mut rng());
119119

120120
for mut blob in blobs {
121121
blob.kzg_commitment_inclusion_proof = FixedVector::random_for_test(&mut rng());

0 commit comments

Comments
 (0)