Add Storage accounts for all nodes (#4298)
* Setup storage keypairs for all nodes * Clean up naming * clippy * Update arg value_names
This commit is contained in:
@ -76,7 +76,8 @@ impl Fullnode {
|
||||
keypair: &Arc<Keypair>,
|
||||
ledger_path: &str,
|
||||
vote_account: &Pubkey,
|
||||
voting_keypair: T,
|
||||
voting_keypair: &Arc<T>,
|
||||
storage_keypair: &Arc<Keypair>,
|
||||
entrypoint_info_option: Option<&ContactInfo>,
|
||||
config: &FullnodeConfig,
|
||||
) -> Self
|
||||
@ -219,12 +220,13 @@ impl Fullnode {
|
||||
let voting_keypair = if config.voting_disabled {
|
||||
None
|
||||
} else {
|
||||
Some(Arc::new(voting_keypair))
|
||||
Some(voting_keypair)
|
||||
};
|
||||
|
||||
let tvu = Tvu::new(
|
||||
vote_account,
|
||||
voting_keypair,
|
||||
storage_keypair,
|
||||
&bank_forks,
|
||||
&cluster_info,
|
||||
sockets,
|
||||
@ -355,13 +357,15 @@ pub fn new_fullnode_for_tests() -> (Fullnode, ContactInfo, Keypair, String) {
|
||||
|
||||
let (ledger_path, _blockhash) = create_new_tmp_ledger!(&genesis_block);
|
||||
|
||||
let voting_keypair = Keypair::new();
|
||||
let voting_keypair = Arc::new(Keypair::new());
|
||||
let storage_keypair = Arc::new(Keypair::new());
|
||||
let node = Fullnode::new(
|
||||
node,
|
||||
&node_keypair,
|
||||
&ledger_path,
|
||||
&voting_keypair.pubkey(),
|
||||
voting_keypair,
|
||||
&voting_keypair,
|
||||
&storage_keypair,
|
||||
None,
|
||||
&FullnodeConfig::default(),
|
||||
);
|
||||
@ -387,13 +391,15 @@ mod tests {
|
||||
create_genesis_block_with_leader(10_000, &leader_keypair.pubkey(), 1000).0;
|
||||
let (validator_ledger_path, _blockhash) = create_new_tmp_ledger!(&genesis_block);
|
||||
|
||||
let voting_keypair = Keypair::new();
|
||||
let voting_keypair = Arc::new(Keypair::new());
|
||||
let storage_keypair = Arc::new(Keypair::new());
|
||||
let validator = Fullnode::new(
|
||||
validator_node,
|
||||
&Arc::new(validator_keypair),
|
||||
&validator_ledger_path,
|
||||
&voting_keypair.pubkey(),
|
||||
voting_keypair,
|
||||
&voting_keypair,
|
||||
&storage_keypair,
|
||||
Some(&leader_node.info),
|
||||
&FullnodeConfig::default(),
|
||||
);
|
||||
@ -415,13 +421,15 @@ mod tests {
|
||||
create_genesis_block_with_leader(10_000, &leader_keypair.pubkey(), 1000);
|
||||
let (validator_ledger_path, _blockhash) = create_new_tmp_ledger!(&genesis_block);
|
||||
ledger_paths.push(validator_ledger_path.clone());
|
||||
let voting_keypair = Keypair::new();
|
||||
let voting_keypair = Arc::new(Keypair::new());
|
||||
let storage_keypair = Arc::new(Keypair::new());
|
||||
Fullnode::new(
|
||||
validator_node,
|
||||
&Arc::new(validator_keypair),
|
||||
&validator_ledger_path,
|
||||
&voting_keypair.pubkey(),
|
||||
voting_keypair,
|
||||
&voting_keypair,
|
||||
&storage_keypair,
|
||||
Some(&leader_node.info),
|
||||
&FullnodeConfig::default(),
|
||||
)
|
||||
|
@ -27,18 +27,11 @@ use std::sync::Arc;
|
||||
|
||||
pub struct FullnodeInfo {
|
||||
pub keypair: Arc<Keypair>,
|
||||
pub voting_keypair: Arc<Keypair>,
|
||||
pub storage_keypair: Arc<Keypair>,
|
||||
pub ledger_path: String,
|
||||
}
|
||||
|
||||
impl FullnodeInfo {
|
||||
fn new(keypair: Arc<Keypair>, ledger_path: String) -> Self {
|
||||
Self {
|
||||
keypair,
|
||||
ledger_path,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub struct ReplicatorInfo {
|
||||
pub replicator_storage_id: Pubkey,
|
||||
pub ledger_path: String,
|
||||
@ -134,13 +127,15 @@ impl LocalCluster {
|
||||
let (genesis_ledger_path, _blockhash) = create_new_tmp_ledger!(&genesis_block);
|
||||
let leader_ledger_path = tmp_copy_blocktree!(&genesis_ledger_path);
|
||||
let leader_contact_info = leader_node.info.clone();
|
||||
|
||||
let leader_storage_keypair = Arc::new(Keypair::new());
|
||||
let leader_voting_keypair = Arc::new(voting_keypair);
|
||||
let leader_server = Fullnode::new(
|
||||
leader_node,
|
||||
&leader_keypair,
|
||||
&leader_ledger_path,
|
||||
&voting_keypair.pubkey(),
|
||||
voting_keypair,
|
||||
&leader_voting_keypair.pubkey(),
|
||||
&leader_voting_keypair,
|
||||
&leader_storage_keypair,
|
||||
None,
|
||||
&config.fullnode_config,
|
||||
);
|
||||
@ -150,7 +145,12 @@ impl LocalCluster {
|
||||
fullnodes.insert(leader_pubkey, leader_server);
|
||||
fullnode_infos.insert(
|
||||
leader_pubkey,
|
||||
FullnodeInfo::new(leader_keypair.clone(), leader_ledger_path),
|
||||
FullnodeInfo {
|
||||
keypair: leader_keypair,
|
||||
voting_keypair: leader_voting_keypair,
|
||||
storage_keypair: leader_storage_keypair,
|
||||
ledger_path: leader_ledger_path,
|
||||
},
|
||||
);
|
||||
|
||||
let mut cluster = Self {
|
||||
@ -221,6 +221,7 @@ impl LocalCluster {
|
||||
// Must have enough tokens to fund vote account and set delegate
|
||||
let validator_keypair = Arc::new(Keypair::new());
|
||||
let voting_keypair = Keypair::new();
|
||||
let storage_keypair = Arc::new(Keypair::new());
|
||||
let validator_pubkey = validator_keypair.pubkey();
|
||||
let validator_node = Node::new_localhost_with_pubkey(&validator_keypair.pubkey());
|
||||
let ledger_path = tmp_copy_blocktree!(&self.genesis_ledger_path);
|
||||
@ -250,12 +251,14 @@ impl LocalCluster {
|
||||
.unwrap();
|
||||
}
|
||||
|
||||
let voting_keypair = Arc::new(voting_keypair);
|
||||
let validator_server = Fullnode::new(
|
||||
validator_node,
|
||||
&validator_keypair,
|
||||
&ledger_path,
|
||||
&voting_keypair.pubkey(),
|
||||
voting_keypair,
|
||||
&voting_keypair,
|
||||
&storage_keypair,
|
||||
Some(&self.entry_point_info),
|
||||
&fullnode_config,
|
||||
);
|
||||
@ -265,12 +268,22 @@ impl LocalCluster {
|
||||
if fullnode_config.voting_disabled {
|
||||
self.listener_infos.insert(
|
||||
validator_keypair.pubkey(),
|
||||
FullnodeInfo::new(validator_keypair.clone(), ledger_path),
|
||||
FullnodeInfo {
|
||||
keypair: validator_keypair,
|
||||
voting_keypair,
|
||||
storage_keypair,
|
||||
ledger_path,
|
||||
},
|
||||
);
|
||||
} else {
|
||||
self.fullnode_infos.insert(
|
||||
validator_keypair.pubkey(),
|
||||
FullnodeInfo::new(validator_keypair.clone(), ledger_path),
|
||||
FullnodeInfo {
|
||||
keypair: validator_keypair,
|
||||
voting_keypair,
|
||||
storage_keypair,
|
||||
ledger_path,
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -467,13 +480,13 @@ impl Cluster for LocalCluster {
|
||||
if pubkey == self.entry_point_info.id {
|
||||
self.entry_point_info = node.info.clone();
|
||||
}
|
||||
let new_voting_keypair = Keypair::new();
|
||||
let restarted_node = Fullnode::new(
|
||||
node,
|
||||
&fullnode_info.keypair,
|
||||
&fullnode_info.ledger_path,
|
||||
&new_voting_keypair.pubkey(),
|
||||
new_voting_keypair,
|
||||
&fullnode_info.voting_keypair.pubkey(),
|
||||
&fullnode_info.voting_keypair,
|
||||
&fullnode_info.storage_keypair,
|
||||
None,
|
||||
&self.fullnode_config,
|
||||
);
|
||||
|
@ -74,7 +74,7 @@ impl ReplayStage {
|
||||
pub fn new<T>(
|
||||
my_id: &Pubkey,
|
||||
vote_account: &Pubkey,
|
||||
voting_keypair: Option<Arc<T>>,
|
||||
voting_keypair: Option<&Arc<T>>,
|
||||
blocktree: Arc<Blocktree>,
|
||||
bank_forks: &Arc<RwLock<BankForks>>,
|
||||
cluster_info: Arc<RwLock<ClusterInfo>>,
|
||||
@ -105,6 +105,7 @@ impl ReplayStage {
|
||||
}
|
||||
// Start the replay stage loop
|
||||
let leader_schedule_cache = leader_schedule_cache.clone();
|
||||
let voting_keypair = voting_keypair.cloned();
|
||||
let t_replay = Builder::new()
|
||||
.name("solana-replay-stage".to_string())
|
||||
.spawn(move || {
|
||||
|
@ -57,7 +57,8 @@ impl Tvu {
|
||||
#[allow(clippy::new_ret_no_self, clippy::too_many_arguments)]
|
||||
pub fn new<T>(
|
||||
vote_account: &Pubkey,
|
||||
voting_keypair: Option<Arc<T>>,
|
||||
voting_keypair: Option<&Arc<T>>,
|
||||
storage_keypair: &Arc<Keypair>,
|
||||
bank_forks: &Arc<RwLock<BankForks>>,
|
||||
cluster_info: &Arc<RwLock<ClusterInfo>>,
|
||||
sockets: Sockets,
|
||||
@ -139,13 +140,12 @@ impl Tvu {
|
||||
None
|
||||
};
|
||||
|
||||
let storage_keypair = Arc::new(Keypair::new());
|
||||
let storage_stage = StorageStage::new(
|
||||
storage_state,
|
||||
root_slot_receiver,
|
||||
Some(blocktree),
|
||||
&keypair,
|
||||
&storage_keypair,
|
||||
storage_keypair,
|
||||
&exit,
|
||||
&bank_forks,
|
||||
storage_rotate_count,
|
||||
@ -214,10 +214,12 @@ pub mod tests {
|
||||
let (exit, poh_recorder, poh_service, _entry_receiver) =
|
||||
create_test_recorder(&bank, &blocktree);
|
||||
let voting_keypair = Keypair::new();
|
||||
let storage_keypair = Arc::new(Keypair::new());
|
||||
let leader_schedule_cache = Arc::new(LeaderScheduleCache::new_from_bank(&bank));
|
||||
let tvu = Tvu::new(
|
||||
&voting_keypair.pubkey(),
|
||||
Some(Arc::new(voting_keypair)),
|
||||
Some(&Arc::new(voting_keypair)),
|
||||
&storage_keypair,
|
||||
&Arc::new(RwLock::new(bank_forks)),
|
||||
&cref1,
|
||||
{
|
||||
|
Reference in New Issue
Block a user