Remove ValidatorConfig derive Clone, and fix local-cluster tests (#15647)

* Remove ValidatorConfig derive Clone

* Add local-cluster ValidatorConfig helpers

* Fix benches
This commit is contained in:
Tyera Eulberg
2021-03-02 21:21:30 -07:00
committed by GitHub
parent b20bf8ebb0
commit a4f0033bd7
8 changed files with 180 additions and 67 deletions

View File

@@ -1,6 +1,7 @@
use crate::{
cluster::{Cluster, ClusterValidatorInfo, ValidatorInfo},
cluster_tests,
validator_configs::*,
};
use itertools::izip;
use log::*;
@@ -45,7 +46,7 @@ use std::{
sync::Arc,
};
#[derive(Clone, Debug)]
#[derive(Debug)]
pub struct ClusterConfig {
/// The validator config that should be applied to every node in the cluster
pub validator_configs: Vec<ValidatorConfig>,
@@ -110,7 +111,10 @@ impl LocalCluster {
let mut config = ClusterConfig {
node_stakes: stakes,
cluster_lamports,
validator_configs: vec![ValidatorConfig::default(); num_nodes],
validator_configs: make_identical_validator_configs(
&ValidatorConfig::default(),
num_nodes,
),
..ClusterConfig::default()
};
Self::new(&mut config)
@@ -193,7 +197,7 @@ impl LocalCluster {
let (leader_ledger_path, _blockhash) = create_new_tmp_ledger!(&genesis_config);
let leader_contact_info = leader_node.info.clone();
let mut leader_config = config.validator_configs[0].clone();
let mut leader_config = safe_clone_config(&config.validator_configs[0]);
leader_config.rpc_addrs = Some((leader_node.info.rpc, leader_node.info.rpc_pubsub));
leader_config.account_paths = vec![leader_ledger_path.join("accounts")];
let leader_keypair = Arc::new(Keypair::from_bytes(&leader_keypair.to_bytes()).unwrap());
@@ -217,10 +221,9 @@ impl LocalCluster {
ledger_path: leader_ledger_path,
contact_info: leader_contact_info.clone(),
};
let cluster_leader = ClusterValidatorInfo::new(
leader_info,
config.validator_configs[0].clone(),
safe_clone_config(&config.validator_configs[0]),
leader_server,
);
@@ -255,10 +258,8 @@ impl LocalCluster {
);
}
let listener_config = ValidatorConfig {
voting_disabled: true,
..config.validator_configs[0].clone()
};
let mut listener_config = safe_clone_config(&config.validator_configs[0]);
listener_config.voting_disabled = true;
(0..config.num_listeners).for_each(|_| {
cluster.add_validator(&listener_config, 0, Arc::new(Keypair::new()), None);
});
@@ -339,7 +340,7 @@ impl LocalCluster {
}
}
let mut config = validator_config.clone();
let mut config = safe_clone_config(validator_config);
config.rpc_addrs = Some((validator_node.info.rpc, validator_node.info.rpc_pubsub));
config.account_paths = vec![ledger_path.join("accounts")];
let voting_keypair = voting_keypair.unwrap();
@@ -362,7 +363,7 @@ impl LocalCluster {
ledger_path,
contact_info,
},
validator_config.clone(),
safe_clone_config(validator_config),
validator_server,
);
@@ -710,7 +711,10 @@ mod test {
validator_config.rpc_config.enable_validator_exit = true;
const NUM_NODES: usize = 1;
let mut config = ClusterConfig {
validator_configs: vec![ValidatorConfig::default(); NUM_NODES],
validator_configs: make_identical_validator_configs(
&ValidatorConfig::default(),
NUM_NODES,
),
node_stakes: vec![3; NUM_NODES],
cluster_lamports: 100,
ticks_per_slot: 8,