Improve single-node testnet support and Arc NetworkConfig/ChainSpec (#6396)

* Arc ChainSpec and NetworkConfig

* Fix release tests

* Fix lint

* Merge remote-tracking branch 'origin/unstable' into single-node-testnet
This commit is contained in:
Michael Sproul
2024-09-24 10:16:18 +10:00
committed by GitHub
parent d84df5799c
commit 1447eeb40b
66 changed files with 340 additions and 250 deletions

View File

@@ -317,7 +317,7 @@ mod tests {
validator_definitions: Vec<ValidatorDefinition>,
slashing_protection_config: SlashingProtectionConfig,
using_web3signer: bool,
spec: ChainSpec,
spec: Arc<ChainSpec>,
) -> Self {
let log = test_logger();
let validator_dir = TempDir::new().unwrap();
@@ -408,7 +408,7 @@ mod tests {
pub async fn new(
network: &str,
slashing_protection_config: SlashingProtectionConfig,
spec: ChainSpec,
spec: Arc<ChainSpec>,
listen_port: u16,
) -> Self {
let signer_rig =
@@ -575,7 +575,7 @@ mod tests {
/// Test all the "base" (phase 0) types.
async fn test_base_types(network: &str, listen_port: u16) {
let network_config = Eth2NetworkConfig::constant(network).unwrap().unwrap();
let spec = &network_config.chain_spec::<E>().unwrap();
let spec = Arc::new(network_config.chain_spec::<E>().unwrap());
TestingRig::new(
network,
@@ -591,13 +591,16 @@ mod tests {
.unwrap()
})
.await
.assert_signatures_match("beacon_block_base", |pubkey, validator_store| async move {
let block = BeaconBlock::Base(BeaconBlockBase::empty(spec));
let block_slot = block.slot();
validator_store
.sign_block(pubkey, block, block_slot)
.await
.unwrap()
.assert_signatures_match("beacon_block_base", |pubkey, validator_store| {
let spec = spec.clone();
async move {
let block = BeaconBlock::Base(BeaconBlockBase::empty(&spec));
let block_slot = block.slot();
validator_store
.sign_block(pubkey, block, block_slot)
.await
.unwrap()
}
})
.await
.assert_signatures_match("attestation", |pubkey, validator_store| async move {
@@ -645,7 +648,7 @@ mod tests {
/// Test all the Altair types.
async fn test_altair_types(network: &str, listen_port: u16) {
let network_config = Eth2NetworkConfig::constant(network).unwrap().unwrap();
let spec = &network_config.chain_spec::<E>().unwrap();
let spec = Arc::new(network_config.chain_spec::<E>().unwrap());
let altair_fork_slot = spec
.altair_fork_epoch
.unwrap()
@@ -658,17 +661,17 @@ mod tests {
listen_port,
)
.await
.assert_signatures_match(
"beacon_block_altair",
|pubkey, validator_store| async move {
let mut altair_block = BeaconBlockAltair::empty(spec);
.assert_signatures_match("beacon_block_altair", |pubkey, validator_store| {
let spec = spec.clone();
async move {
let mut altair_block = BeaconBlockAltair::empty(&spec);
altair_block.slot = altair_fork_slot;
validator_store
.sign_block(pubkey, BeaconBlock::Altair(altair_block), altair_fork_slot)
.await
.unwrap()
},
)
}
})
.await
.assert_signatures_match(
"sync_selection_proof",
@@ -728,7 +731,7 @@ mod tests {
/// Test all the Bellatrix types.
async fn test_bellatrix_types(network: &str, listen_port: u16) {
let network_config = Eth2NetworkConfig::constant(network).unwrap().unwrap();
let spec = &network_config.chain_spec::<E>().unwrap();
let spec = Arc::new(network_config.chain_spec::<E>().unwrap());
let bellatrix_fork_slot = spec
.bellatrix_fork_epoch
.unwrap()
@@ -741,10 +744,10 @@ mod tests {
listen_port,
)
.await
.assert_signatures_match(
"beacon_block_bellatrix",
|pubkey, validator_store| async move {
let mut bellatrix_block = BeaconBlockBellatrix::empty(spec);
.assert_signatures_match("beacon_block_bellatrix", |pubkey, validator_store| {
let spec = spec.clone();
async move {
let mut bellatrix_block = BeaconBlockBellatrix::empty(&spec);
bellatrix_block.slot = bellatrix_fork_slot;
validator_store
.sign_block(
@@ -754,8 +757,8 @@ mod tests {
)
.await
.unwrap()
},
)
}
})
.await;
}
@@ -767,7 +770,7 @@ mod tests {
let network = "mainnet";
let network_config = Eth2NetworkConfig::constant(network).unwrap().unwrap();
let spec = &network_config.chain_spec::<E>().unwrap();
let spec = Arc::new(network_config.chain_spec::<E>().unwrap());
let bellatrix_fork_slot = spec
.bellatrix_fork_epoch
.unwrap()
@@ -805,7 +808,7 @@ mod tests {
};
let first_block = || {
let mut bellatrix_block = BeaconBlockBellatrix::empty(spec);
let mut bellatrix_block = BeaconBlockBellatrix::empty(&spec);
bellatrix_block.slot = bellatrix_fork_slot;
BeaconBlock::Bellatrix(bellatrix_block)
};