From 12cddf725eda1aa397ca41a2feb8c3b24dfe18f0 Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Mon, 28 Jan 2019 20:10:38 -0800 Subject: [PATCH] Harmonize Fullnode::new* function arguments --- fullnode/src/main.rs | 10 ++- src/fullnode.rs | 134 ++++++++++++++----------------- src/thin_client.rs | 8 +- tests/multinode.rs | 182 +++++++++++++++++++++---------------------- tests/replicator.rs | 22 +++--- 5 files changed, 171 insertions(+), 185 deletions(-) diff --git a/fullnode/src/main.rs b/fullnode/src/main.rs index 0b72ccfb2b..c081d5c7a4 100644 --- a/fullnode/src/main.rs +++ b/fullnode/src/main.rs @@ -254,12 +254,14 @@ fn main() { let mut fullnode = Fullnode::new( node, - ledger_path, keypair.clone(), - signer_option, - cluster_entrypoint, - no_sigverify, + ledger_path, Arc::new(RwLock::new(leader_scheduler)), + signer_option, + cluster_entrypoint + .map(|i| NodeInfo::new_entry_point(&i)) + .as_ref(), + no_sigverify, Some(rpc_port), ); diff --git a/src/fullnode.rs b/src/fullnode.rs index f7902d4c97..6ace8624ad 100644 --- a/src/fullnode.rs +++ b/src/fullnode.rs @@ -80,27 +80,28 @@ pub struct Fullnode { pub role_notifiers: (TvuRotationReceiver, TpuRotationReceiver), } +// TODO: remove this, temporary parameter to configure +// storage amount differently for test configurations +// so tests don't take forever to run. +const NUM_HASHES_FOR_STORAGE_ROTATE: u64 = 1024; + impl Fullnode { pub fn new( node: Node, - ledger_path: &str, keypair: Arc, - vote_signer: Option>, - entrypoint_addr: Option, - sigverify_disabled: bool, + ledger_path: &str, leader_scheduler: Arc>, + vote_signer: Option>, + entrypoint_info_option: Option<&NodeInfo>, + sigverify_disabled: bool, rpc_port: Option, ) -> Self { - // TODO: remove this, temporary parameter to configure - // storage amount differently for test configurations - // so tests don't take forever to run. - const NUM_HASHES_FOR_STORAGE_ROTATE: u64 = 1024; Self::new_with_storage_rotate( node, - ledger_path, keypair, + ledger_path, vote_signer, - entrypoint_addr, + entrypoint_info_option, sigverify_disabled, leader_scheduler, rpc_port, @@ -110,44 +111,27 @@ impl Fullnode { pub fn new_with_storage_rotate( node: Node, - ledger_path: &str, keypair: Arc, + ledger_path: &str, vote_signer: Option>, - entrypoint_addr: Option, + entrypoint_info_option: Option<&NodeInfo>, sigverify_disabled: bool, leader_scheduler: Arc>, rpc_port: Option, storage_rotate_count: u64, ) -> Self { - info!("creating bank..."); let (genesis_block, db_ledger) = Self::make_db_ledger(ledger_path); let (bank, entry_height, last_entry_id) = Self::new_bank_from_db_ledger(&genesis_block, &db_ledger, leader_scheduler); - - info!("creating networking stack..."); - let local_gossip_addr = node.sockets.gossip.local_addr().unwrap(); - - info!( - "starting... local gossip address: {} (advertising {})", - local_gossip_addr, node.info.gossip - ); - let mut rpc_addr = node.info.rpc; - if let Some(port) = rpc_port { - rpc_addr.set_port(port); - } - info!("node rpc address: {}", rpc_addr); - info!("node entrypoint_addr: {:?}", entrypoint_addr); - - let entrypoint_info = entrypoint_addr.map(|i| NodeInfo::new_entry_point(&i)); Self::new_with_bank_and_db_ledger( + node, keypair, - vote_signer, bank, &db_ledger, entry_height, &last_entry_id, - node, - entrypoint_info.as_ref(), + vote_signer, + entrypoint_info_option, sigverify_disabled, rpc_port, storage_rotate_count, @@ -156,44 +140,42 @@ impl Fullnode { #[allow(clippy::too_many_arguments)] pub fn new_with_bank( + node: Node, keypair: Arc, - vote_signer: Option>, - bank: Bank, ledger_path: &str, + bank: Bank, entry_height: u64, last_entry_id: &Hash, - node: Node, + vote_signer: Option>, entrypoint_info_option: Option<&NodeInfo>, sigverify_disabled: bool, rpc_port: Option, - storage_rotate_count: u64, ) -> Self { let (_genesis_block, db_ledger) = Self::make_db_ledger(ledger_path); Self::new_with_bank_and_db_ledger( + node, keypair, - vote_signer, bank, &db_ledger, entry_height, &last_entry_id, - node, + vote_signer, entrypoint_info_option, sigverify_disabled, rpc_port, - storage_rotate_count, + NUM_HASHES_FOR_STORAGE_ROTATE, ) } - /// Create a fullnode instance acting as a leader or validator. #[allow(clippy::too_many_arguments)] - pub fn new_with_bank_and_db_ledger( + fn new_with_bank_and_db_ledger( + mut node: Node, keypair: Arc, - vote_signer: Option>, bank: Bank, db_ledger: &Arc, entry_height: u64, last_entry_id: &Hash, - mut node: Node, + vote_signer: Option>, entrypoint_info_option: Option<&NodeInfo>, sigverify_disabled: bool, rpc_port: Option, @@ -201,8 +183,6 @@ impl Fullnode { ) -> Self { let mut rpc_addr = node.info.rpc; let mut rpc_pubsub_addr = node.info.rpc_pubsub; - // Use custom RPC port, if provided (`Some(port)`) - // RPC port may be any valid open port on the node // If rpc_port == `None`, node will listen on the ports set in NodeInfo if let Some(port) = rpc_port { rpc_addr.set_port(port); @@ -211,10 +191,19 @@ impl Fullnode { node.info.rpc_pubsub = rpc_pubsub_addr; } + info!("node rpc address: {}", node.info.rpc); + info!("node entrypoint_info: {:?}", entrypoint_info_option); + let local_gossip_addr = node.sockets.gossip.local_addr().unwrap(); + info!( + "node local gossip address: {} (advertising {})", + local_gossip_addr, node.info.gossip + ); + let exit = Arc::new(AtomicBool::new(false)); let bank = Arc::new(bank); node.info.wallclock = timestamp(); + assert_eq!(keypair.pubkey(), node.info.id); let cluster_info = Arc::new(RwLock::new(ClusterInfo::new_with_keypair( node.info, keypair.clone(), @@ -274,7 +263,8 @@ impl Fullnode { cluster_info.write().unwrap().set_leader(scheduled_leader); - // todo always start leader and validator, keep leader side switching between tpu forwarder and regular tpu. + // TODO: always start leader and validator, keep leader side switching between tpu + // forwarder and regular tpu. let sockets = Sockets { repair: node .sockets @@ -294,7 +284,7 @@ impl Fullnode { .collect(), }; - //setup channels for rotation indications + // Setup channels for rotation indications let (to_leader_sender, to_leader_receiver) = channel(); let (to_validator_sender, to_validator_receiver) = channel(); @@ -442,7 +432,7 @@ impl Fullnode { } } - //used for notifying many nodes in parallel to exit + // Used for notifying many nodes in parallel to exit pub fn exit(&self) { self.exit.store(true, Ordering::Relaxed); if let Some(ref rpc_service) = self.rpc_service { @@ -534,7 +524,6 @@ mod tests { make_active_set_entries, LeaderScheduler, LeaderSchedulerConfig, }; use crate::service::Service; - use crate::storage_stage::STORAGE_ROTATE_TEST_COUNT; use crate::streamer::responder; use crate::tpu::TpuReturnType; use crate::tvu::TvuReturnType; @@ -565,17 +554,16 @@ mod tests { let keypair = Arc::new(keypair); let signer = VoteSignerProxy::new_local(&keypair); let v = Fullnode::new_with_bank( + tn, keypair, - Some(Arc::new(signer)), - bank, &validator_ledger_path, + bank, entry_height, &last_id, - tn, + Some(Arc::new(signer)), Some(&entry), false, None, - STORAGE_ROTATE_TEST_COUNT, ); v.close().unwrap(); remove_dir_all(validator_ledger_path).unwrap(); @@ -608,17 +596,16 @@ mod tests { let keypair = Arc::new(keypair); let signer = VoteSignerProxy::new_local(&keypair); Fullnode::new_with_bank( + tn, keypair, - Some(Arc::new(signer)), - bank, &validator_ledger_path, + bank, entry_height, &last_id, - tn, + Some(Arc::new(signer)), Some(&entry), false, None, - STORAGE_ROTATE_TEST_COUNT, ) }) .collect(); @@ -683,12 +670,12 @@ mod tests { // Start up the leader let mut bootstrap_leader = Fullnode::new( bootstrap_leader_node, - &bootstrap_leader_ledger_path, bootstrap_leader_keypair, - Some(Arc::new(signer)), - Some(bootstrap_leader_info.gossip), - false, + &bootstrap_leader_ledger_path, Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))), + Some(Arc::new(signer)), + Some(&bootstrap_leader_info), + false, None, ); @@ -787,12 +774,12 @@ mod tests { let vote_signer = VoteSignerProxy::new_local(&bootstrap_leader_keypair); let bootstrap_leader = Fullnode::new( bootstrap_leader_node, - &bootstrap_leader_ledger_path, bootstrap_leader_keypair, - Some(Arc::new(vote_signer)), - Some(bootstrap_leader_info.gossip), - false, + &bootstrap_leader_ledger_path, Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))), + Some(Arc::new(vote_signer)), + Some(&bootstrap_leader_info), + false, None, ); @@ -801,12 +788,12 @@ mod tests { // Test that a node knows to transition to a leader based on parsing the ledger let validator = Fullnode::new( validator_node, - &validator_ledger_path, validator_keypair, - Some(Arc::new(validator_vote_account_id)), - Some(bootstrap_leader_info.gossip), - false, + &validator_ledger_path, Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))), + Some(Arc::new(validator_vote_account_id)), + Some(&bootstrap_leader_info), + false, None, ); @@ -829,7 +816,6 @@ mod tests { let leader_keypair = Keypair::new(); let leader_node = Node::new_localhost_with_pubkey(leader_keypair.pubkey()); let leader_id = leader_node.info.id; - let leader_gossip = leader_node.info.gossip; // Create validator identity let num_ending_ticks = 1; @@ -897,12 +883,12 @@ mod tests { // Start the validator let validator = Fullnode::new( validator_node, - &validator_ledger_path, validator_keypair, - Some(Arc::new(vote_signer)), - Some(leader_gossip), - false, + &validator_ledger_path, Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))), + Some(Arc::new(vote_signer)), + Some(&leader_node.info), + false, None, ); diff --git a/src/thin_client.rs b/src/thin_client.rs index a3f928846f..db906db6e7 100644 --- a/src/thin_client.rs +++ b/src/thin_client.rs @@ -444,7 +444,6 @@ pub fn new_fullnode( use crate::cluster_info::Node; use crate::db_ledger::create_tmp_ledger; use crate::leader_scheduler::LeaderScheduler; - use crate::storage_stage::STORAGE_ROTATE_TEST_COUNT; use crate::vote_signer_proxy::VoteSignerProxy; use solana_sdk::signature::KeypairUtil; @@ -465,17 +464,16 @@ pub fn new_fullnode( let vote_signer = VoteSignerProxy::new_local(&vote_account_keypair); let last_id = bank.last_id(); let server = Fullnode::new_with_bank( + leader, leader_keypair, - Some(Arc::new(vote_signer)), - bank, &ledger_path, + bank, entry_height, &last_id, - leader, + Some(Arc::new(vote_signer)), None, false, None, - STORAGE_ROTATE_TEST_COUNT, ); (server, leader_data, genesis_block, alice, ledger_path) diff --git a/tests/multinode.rs b/tests/multinode.rs index a183e48ada..12e267f6b8 100644 --- a/tests/multinode.rs +++ b/tests/multinode.rs @@ -156,14 +156,14 @@ fn test_multi_node_ledger_window() -> result::Result<()> { let signer_proxy = VoteSignerProxy::new_local(&leader_keypair); let leader = Fullnode::new( leader, - &leader_ledger_path, leader_keypair, - Some(Arc::new(signer_proxy)), - None, - false, + &leader_ledger_path, Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader( leader_pubkey, ))), + Some(Arc::new(signer_proxy)), + None, + false, None, ); @@ -176,14 +176,14 @@ fn test_multi_node_ledger_window() -> result::Result<()> { let signer_proxy = VoteSignerProxy::new_local(&keypair); let validator = Fullnode::new( validator, - &zero_ledger_path, keypair, - Some(Arc::new(signer_proxy)), - Some(leader_data.gossip), - false, + &zero_ledger_path, Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader( leader_pubkey, ))), + Some(Arc::new(signer_proxy)), + Some(&leader_data), + false, None, ); @@ -260,14 +260,14 @@ fn test_multi_node_validator_catchup_from_zero() -> result::Result<()> { let signer_proxy = VoteSignerProxy::new_local(&leader_keypair); let server = Fullnode::new( leader, - &leader_ledger_path, leader_keypair, - Some(Arc::new(signer_proxy)), - None, - false, + &leader_ledger_path, Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader( leader_pubkey, ))), + Some(Arc::new(signer_proxy)), + None, + false, None, ); @@ -294,14 +294,14 @@ fn test_multi_node_validator_catchup_from_zero() -> result::Result<()> { let signer_proxy = VoteSignerProxy::new_local(&keypair); let val = Fullnode::new( validator, - &ledger_path, keypair, - Some(Arc::new(signer_proxy)), - Some(leader_data.gossip), - false, + &ledger_path, Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader( leader_pubkey, ))), + Some(Arc::new(signer_proxy)), + Some(&leader_data), + false, None, ); nodes.push(val); @@ -357,14 +357,14 @@ fn test_multi_node_validator_catchup_from_zero() -> result::Result<()> { let val = Fullnode::new( validator, - &zero_ledger_path, keypair, - Some(Arc::new(signer_proxy)), - Some(leader_data.gossip), - false, + &zero_ledger_path, Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader( leader_pubkey, ))), + Some(Arc::new(signer_proxy)), + Some(&leader_data), + false, None, ); nodes.push(val); @@ -447,14 +447,14 @@ fn test_multi_node_basic() { let signer_proxy = VoteSignerProxy::new_local(&leader_keypair); let server = Fullnode::new( leader, - &leader_ledger_path, leader_keypair, - Some(Arc::new(signer_proxy)), - None, - false, + &leader_ledger_path, Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader( leader_pubkey, ))), + Some(Arc::new(signer_proxy)), + None, + false, None, ); @@ -477,14 +477,14 @@ fn test_multi_node_basic() { let signer_proxy = VoteSignerProxy::new_local(&keypair); let val = Fullnode::new( validator, - &ledger_path, keypair, - Some(Arc::new(signer_proxy)), - Some(leader_data.gossip), - false, + &ledger_path, Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader( leader_pubkey, ))), + Some(Arc::new(signer_proxy)), + Some(&leader_data), + false, None, ); nodes.push(val); @@ -557,14 +557,14 @@ fn test_boot_validator_from_file() -> result::Result<()> { let signer_proxy = VoteSignerProxy::new_local(&leader_keypair); let leader_fullnode = Fullnode::new( leader, - &leader_ledger_path, leader_keypair, - Some(Arc::new(signer_proxy)), - None, - false, + &leader_ledger_path, Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader( leader_pubkey, ))), + Some(Arc::new(signer_proxy)), + None, + false, None, ); let leader_balance = @@ -582,14 +582,14 @@ fn test_boot_validator_from_file() -> result::Result<()> { let signer_proxy = VoteSignerProxy::new_local(&keypair); let val_fullnode = Fullnode::new( validator, - &ledger_path, keypair, - Some(Arc::new(signer_proxy)), - Some(leader_data.gossip), - false, + &ledger_path, Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader( leader_pubkey, ))), + Some(Arc::new(signer_proxy)), + Some(&leader_data), + false, None, ); let mut client = mk_client(&validator_data); @@ -615,14 +615,14 @@ fn create_leader( let leader_data = leader.info.clone(); let leader_fullnode = Fullnode::new( leader, - &ledger_path, leader_keypair, - Some(signer), - None, - false, + &ledger_path, Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader( leader_data.id, ))), + Some(signer), + None, + false, None, ); (leader_data, leader_fullnode) @@ -692,14 +692,14 @@ fn test_leader_restart_validator_start_from_old_ledger() -> result::Result<()> { let signer_proxy = VoteSignerProxy::new_local(&keypair); let val_fullnode = Fullnode::new( validator, - &stale_ledger_path, keypair, - Some(Arc::new(signer_proxy)), - Some(leader_data.gossip), - false, + &stale_ledger_path, Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader( leader_data.id, ))), + Some(Arc::new(signer_proxy)), + Some(&leader_data), + false, None, ); @@ -761,14 +761,14 @@ fn test_multi_node_dynamic_network() { let signer_proxy = VoteSignerProxy::new_local(&leader_keypair); let server = Fullnode::new( leader, - &leader_ledger_path, leader_keypair, - Some(Arc::new(signer_proxy)), - None, - true, + &leader_ledger_path, Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader( leader_pubkey, ))), + Some(Arc::new(signer_proxy)), + None, + true, None, ); info!( @@ -836,14 +836,14 @@ fn test_multi_node_dynamic_network() { let signer_proxy = VoteSignerProxy::new_local(&keypair); let val = Fullnode::new( validator, - &ledger_path, keypair, - Some(Arc::new(signer_proxy)), - Some(leader_data.gossip), - true, + &ledger_path, Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader( leader_pubkey, ))), + Some(Arc::new(signer_proxy)), + Some(&leader_data), + true, None, ); (rd, val) @@ -1019,12 +1019,12 @@ fn test_leader_to_validator_transition() { let signer_proxy = VoteSignerProxy::new_local(&leader_keypair); let mut leader = Fullnode::new( leader_node, - &leader_ledger_path, leader_keypair, - Some(Arc::new(signer_proxy)), - Some(leader_info.gossip), - false, + &leader_ledger_path, Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))), + Some(Arc::new(signer_proxy)), + Some(&leader_info), + false, None, ); @@ -1174,12 +1174,12 @@ fn test_leader_validator_basic() { let signer_proxy = VoteSignerProxy::new_local(&validator_keypair); let mut validator = Fullnode::new( validator_node, - &validator_ledger_path, validator_keypair, - Some(Arc::new(signer_proxy)), - Some(leader_info.gossip), - false, + &validator_ledger_path, Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))), + Some(Arc::new(signer_proxy)), + Some(&leader_info), + false, None, ); @@ -1187,12 +1187,12 @@ fn test_leader_validator_basic() { let signer_proxy = VoteSignerProxy::new_local(&leader_keypair); let mut leader = Fullnode::new( leader_node, - &leader_ledger_path, leader_keypair, - Some(Arc::new(signer_proxy)), - Some(leader_info.gossip), - false, + &leader_ledger_path, Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))), + Some(Arc::new(signer_proxy)), + Some(&leader_info), + false, None, ); @@ -1382,12 +1382,12 @@ fn test_dropped_handoff_recovery() { ledger_paths.push(bootstrap_leader_ledger_path.clone()); let bootstrap_leader = Fullnode::new( bootstrap_leader_node, - &bootstrap_leader_ledger_path, bootstrap_leader_keypair, - Some(Arc::new(signer_proxy)), - Some(bootstrap_leader_info.gossip), - false, + &bootstrap_leader_ledger_path, Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))), + Some(Arc::new(signer_proxy)), + Some(&bootstrap_leader_info), + false, None, ); @@ -1395,22 +1395,22 @@ fn test_dropped_handoff_recovery() { // Start up the validators other than the "next_leader" validator for i in 0..(N - 1) { - let kp = Arc::new(Keypair::new()); + let keypair = Arc::new(Keypair::new()); let validator_ledger_path = tmp_copy_ledger(&genesis_ledger_path, "test_dropped_handoff_recovery"); ledger_paths.push(validator_ledger_path.clone()); - let validator_id = kp.pubkey(); + let validator_id = keypair.pubkey(); info!("validator {}: {}", i, validator_id); let validator_node = Node::new_localhost_with_pubkey(validator_id); - let signer_proxy = VoteSignerProxy::new_local(&kp); + let signer_proxy = VoteSignerProxy::new_local(&keypair); let validator = Fullnode::new( validator_node, + keypair, &validator_ledger_path, - kp, - Some(Arc::new(signer_proxy)), - Some(bootstrap_leader_info.gossip), - false, Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))), + Some(Arc::new(signer_proxy)), + Some(&bootstrap_leader_info), + false, None, ); @@ -1432,12 +1432,12 @@ fn test_dropped_handoff_recovery() { let signer_proxy = VoteSignerProxy::new_local(&next_leader_keypair); let next_leader = Fullnode::new( next_leader_node, - &next_leader_ledger_path, next_leader_keypair, - Some(Arc::new(signer_proxy)), - Some(bootstrap_leader_info.gossip), - false, + &next_leader_ledger_path, Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))), + Some(Arc::new(signer_proxy)), + Some(&bootstrap_leader_info), + false, None, ); @@ -1582,12 +1582,12 @@ fn test_full_leader_validator_network() { Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))); let validator = Fullnode::new( validator_node, - &validator_ledger_path, kp.clone(), - Some(Arc::new(signer_proxy)), - Some(bootstrap_leader_info.gossip), - false, + &validator_ledger_path, leader_scheduler.clone(), + Some(Arc::new(signer_proxy)), + Some(&bootstrap_leader_info), + false, None, ); @@ -1600,12 +1600,12 @@ fn test_full_leader_validator_network() { let leader_scheduler = Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))); let bootstrap_leader = Fullnode::new( bootstrap_leader_node, - &bootstrap_leader_ledger_path, leader_keypair.clone(), - Some(Arc::new(signer_proxy)), - Some(bootstrap_leader_info.gossip), - false, + &bootstrap_leader_ledger_path, leader_scheduler.clone(), + Some(Arc::new(signer_proxy)), + Some(&bootstrap_leader_info), + false, None, ); @@ -1778,12 +1778,12 @@ fn test_broadcast_last_tick() { let signer_proxy = VoteSignerProxy::new_local(&bootstrap_leader_keypair); let mut bootstrap_leader = Fullnode::new( bootstrap_leader_node, - &bootstrap_leader_ledger_path, bootstrap_leader_keypair, - Some(Arc::new(signer_proxy)), - Some(bootstrap_leader_info.gossip), - false, + &bootstrap_leader_ledger_path, Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))), + Some(Arc::new(signer_proxy)), + Some(&bootstrap_leader_info), + false, None, ); diff --git a/tests/replicator.rs b/tests/replicator.rs index 644628fa99..48536d8b4e 100644 --- a/tests/replicator.rs +++ b/tests/replicator.rs @@ -51,8 +51,8 @@ fn test_replicator_startup() { let leader = Fullnode::new_with_storage_rotate( leader_node, - &leader_ledger_path, leader_keypair, + &leader_ledger_path, Some(Arc::new(signer_proxy)), None, false, @@ -81,10 +81,10 @@ fn test_replicator_startup() { let validator = Fullnode::new_with_storage_rotate( validator_node, - &validator_ledger_path, validator_keypair, + &validator_ledger_path, Some(Arc::new(signer_proxy)), - Some(leader_info.gossip), + Some(&leader_info), false, Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader( leader_info.id, @@ -278,14 +278,14 @@ fn test_replicator_startup_ledger_hang() { let _ = Fullnode::new( leader_node, - &leader_ledger_path, leader_keypair, - Some(Arc::new(signer_proxy)), - None, - false, + &leader_ledger_path, Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader( leader_info.id.clone(), ))), + Some(Arc::new(signer_proxy)), + None, + false, None, ); @@ -295,14 +295,14 @@ fn test_replicator_startup_ledger_hang() { let _ = Fullnode::new( validator_node, - &validator_ledger_path, validator_keypair, - Some(Arc::new(signer_proxy)), - Some(leader_info.gossip), - false, + &validator_ledger_path, Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader( leader_info.id, ))), + Some(Arc::new(signer_proxy)), + Some(&leader_info), + false, None, );