diff --git a/bench-tps/src/main.rs b/bench-tps/src/main.rs index d6e5e4658b..ff95dd9ceb 100644 --- a/bench-tps/src/main.rs +++ b/bench-tps/src/main.rs @@ -37,7 +37,7 @@ fn converge( //lets spy on the network let (node, gossip_socket) = ClusterInfo::spy_node(); println!("Spy node: {}", node.id); - let mut spy_cluster_info = ClusterInfo::new(node); + let mut spy_cluster_info = ClusterInfo::new_with_invalid_keypair(node); spy_cluster_info.insert_info(leader.clone()); spy_cluster_info.set_leader(leader.id); let spy_ref = Arc::new(RwLock::new(spy_cluster_info)); diff --git a/benches/banking_stage.rs b/benches/banking_stage.rs index 0bbd570c1e..7add8a47be 100644 --- a/benches/banking_stage.rs +++ b/benches/banking_stage.rs @@ -105,7 +105,7 @@ fn bench_banking_stage_multi_accounts(bencher: &mut Bencher) { }) .collect(); let (exit, poh_recorder, poh_service, signal_receiver) = create_test_recorder(&bank); - let cluster_info = ClusterInfo::new(Node::new_localhost().info); + let cluster_info = ClusterInfo::new_with_invalid_keypair(Node::new_localhost().info); let cluster_info = Arc::new(RwLock::new(cluster_info)); let _banking_stage = BankingStage::new(&cluster_info, &poh_recorder, verified_receiver); poh_recorder.lock().unwrap().set_bank(&bank); @@ -212,7 +212,7 @@ fn bench_banking_stage_multi_programs(bencher: &mut Bencher) { }) .collect(); let (exit, poh_recorder, poh_service, signal_receiver) = create_test_recorder(&bank); - let cluster_info = ClusterInfo::new(Node::new_localhost().info); + let cluster_info = ClusterInfo::new_with_invalid_keypair(Node::new_localhost().info); let cluster_info = Arc::new(RwLock::new(cluster_info)); let _banking_stage = BankingStage::new(&cluster_info, &poh_recorder, verified_receiver); poh_recorder.lock().unwrap().set_bank(&bank); diff --git a/core/src/banking_stage.rs b/core/src/banking_stage.rs index fb0340dc28..2878778bd5 100644 --- a/core/src/banking_stage.rs +++ b/core/src/banking_stage.rs @@ -385,7 +385,7 @@ mod tests { let bank = Arc::new(Bank::new(&genesis_block)); let (verified_sender, verified_receiver) = channel(); let (exit, poh_recorder, poh_service, _entry_receiever) = create_test_recorder(&bank); - let cluster_info = ClusterInfo::new(Node::new_localhost().info); + let cluster_info = ClusterInfo::new_with_invalid_keypair(Node::new_localhost().info); let cluster_info = Arc::new(RwLock::new(cluster_info)); let banking_stage = BankingStage::new(&cluster_info, &poh_recorder, verified_receiver); drop(verified_sender); @@ -403,7 +403,7 @@ mod tests { let start_hash = bank.last_blockhash(); let (verified_sender, verified_receiver) = channel(); let (exit, poh_recorder, poh_service, entry_receiver) = create_test_recorder(&bank); - let cluster_info = ClusterInfo::new(Node::new_localhost().info); + let cluster_info = ClusterInfo::new_with_invalid_keypair(Node::new_localhost().info); let cluster_info = Arc::new(RwLock::new(cluster_info)); poh_recorder.lock().unwrap().set_bank(&bank); let banking_stage = BankingStage::new(&cluster_info, &poh_recorder, verified_receiver); @@ -433,7 +433,7 @@ mod tests { let start_hash = bank.last_blockhash(); let (verified_sender, verified_receiver) = channel(); let (exit, poh_recorder, poh_service, entry_receiver) = create_test_recorder(&bank); - let cluster_info = ClusterInfo::new(Node::new_localhost().info); + let cluster_info = ClusterInfo::new_with_invalid_keypair(Node::new_localhost().info); let cluster_info = Arc::new(RwLock::new(cluster_info)); poh_recorder.lock().unwrap().set_bank(&bank); let banking_stage = BankingStage::new(&cluster_info, &poh_recorder, verified_receiver); @@ -491,7 +491,7 @@ mod tests { let bank = Arc::new(Bank::new(&genesis_block)); let (verified_sender, verified_receiver) = channel(); let (exit, poh_recorder, poh_service, entry_receiver) = create_test_recorder(&bank); - let cluster_info = ClusterInfo::new(Node::new_localhost().info); + let cluster_info = ClusterInfo::new_with_invalid_keypair(Node::new_localhost().info); let cluster_info = Arc::new(RwLock::new(cluster_info)); poh_recorder.lock().unwrap().set_bank(&bank); let _banking_stage = BankingStage::new(&cluster_info, &poh_recorder, verified_receiver); diff --git a/core/src/broadcast_stage.rs b/core/src/broadcast_stage.rs index 17959fdfc3..41996262a1 100644 --- a/core/src/broadcast_stage.rs +++ b/core/src/broadcast_stage.rs @@ -286,7 +286,7 @@ mod test { let broadcast_buddy = Node::new_localhost_with_pubkey(buddy_keypair.pubkey()); // Fill the cluster_info with the buddy's info - let mut cluster_info = ClusterInfo::new(leader_info.info.clone()); + let mut cluster_info = ClusterInfo::new_with_invalid_keypair(leader_info.info.clone()); cluster_info.insert_info(broadcast_buddy.info); let cluster_info = Arc::new(RwLock::new(cluster_info)); diff --git a/core/src/cluster_info.rs b/core/src/cluster_info.rs index abd5a02149..e9ba1c1922 100644 --- a/core/src/cluster_info.rs +++ b/core/src/cluster_info.rs @@ -162,8 +162,8 @@ enum Protocol { } impl ClusterInfo { - pub fn new(node_info: NodeInfo) -> Self { - //Without a keypair, gossip will not function. Only useful for tests. + /// Without a valid keypair gossip will not function. Only useful for tests. + pub fn new_with_invalid_keypair(node_info: NodeInfo) -> Self { ClusterInfo::new_with_keypair(node_info, Arc::new(Keypair::new())) } pub fn new_with_keypair(node_info: NodeInfo, keypair: Arc) -> Self { @@ -1461,7 +1461,9 @@ mod tests { //check that gossip doesn't try to push to invalid addresses let node = Node::new_localhost(); let (spy, _) = ClusterInfo::spy_node(); - let cluster_info = Arc::new(RwLock::new(ClusterInfo::new(node.info))); + let cluster_info = Arc::new(RwLock::new(ClusterInfo::new_with_invalid_keypair( + node.info, + ))); cluster_info.write().unwrap().insert_info(spy); cluster_info .write() @@ -1483,14 +1485,14 @@ mod tests { #[test] fn test_cluster_info_new() { let d = NodeInfo::new_localhost(Keypair::new().pubkey(), timestamp()); - let cluster_info = ClusterInfo::new(d.clone()); + let cluster_info = ClusterInfo::new_with_invalid_keypair(d.clone()); assert_eq!(d.id, cluster_info.my_data().id); } #[test] fn insert_info_test() { let d = NodeInfo::new_localhost(Keypair::new().pubkey(), timestamp()); - let mut cluster_info = ClusterInfo::new(d); + let mut cluster_info = ClusterInfo::new_with_invalid_keypair(d); let d = NodeInfo::new_localhost(Keypair::new().pubkey(), timestamp()); let label = CrdsValueLabel::ContactInfo(d.id); cluster_info.insert_info(d); @@ -1499,7 +1501,7 @@ mod tests { #[test] fn window_index_request() { let me = NodeInfo::new_localhost(Keypair::new().pubkey(), timestamp()); - let mut cluster_info = ClusterInfo::new(me); + let mut cluster_info = ClusterInfo::new_with_invalid_keypair(me); let rv = cluster_info.window_index_request(0, 0, false); assert_matches!(rv, Err(Error::ClusterInfoError(ClusterInfoError::NoPeers))); @@ -1656,7 +1658,7 @@ mod tests { fn test_default_leader() { solana_logger::setup(); let node_info = NodeInfo::new_localhost(Keypair::new().pubkey(), 0); - let mut cluster_info = ClusterInfo::new(node_info); + let mut cluster_info = ClusterInfo::new_with_invalid_keypair(node_info); let network_entry_point = NodeInfo::new_entry_point(&socketaddr!("127.0.0.1:1239")); cluster_info.insert_info(network_entry_point); assert!(cluster_info.leader_data().is_none()); @@ -1910,7 +1912,7 @@ mod tests { let keys = Keypair::new(); let now = timestamp(); let node_info = NodeInfo::new_localhost(keys.pubkey(), 0); - let mut cluster_info = ClusterInfo::new(node_info); + let mut cluster_info = ClusterInfo::new_with_invalid_keypair(node_info); // make sure empty crds is handled correctly let (votes, max_ts) = cluster_info.get_votes(now); diff --git a/core/src/gossip_service.rs b/core/src/gossip_service.rs index 5ea1bcf583..bd40a656e4 100644 --- a/core/src/gossip_service.rs +++ b/core/src/gossip_service.rs @@ -164,7 +164,7 @@ mod tests { fn test_exit() { let exit = Arc::new(AtomicBool::new(false)); let tn = Node::new_localhost(); - let cluster_info = ClusterInfo::new(tn.info.clone()); + let cluster_info = ClusterInfo::new_with_invalid_keypair(tn.info.clone()); let c = Arc::new(RwLock::new(cluster_info)); let d = GossipService::new(&c, None, None, tn.sockets.gossip, &exit); exit.store(true, Ordering::Relaxed); diff --git a/core/src/replay_stage.rs b/core/src/replay_stage.rs index ec668c8d57..fa8f1d5376 100644 --- a/core/src/replay_stage.rs +++ b/core/src/replay_stage.rs @@ -361,7 +361,7 @@ mod test { let (my_ledger_path, _blockhash) = create_new_tmp_ledger!(&genesis_block); // Set up the cluster info - let cluster_info_me = Arc::new(RwLock::new(ClusterInfo::new(my_node.info.clone()))); + let cluster_info_me = Arc::new(RwLock::new(ClusterInfo::new_with_invalid_keypair(my_node.info.clone()))); // Set up the replay stage { diff --git a/core/src/replicator.rs b/core/src/replicator.rs index 827d1239a5..ef5379e386 100644 --- a/core/src/replicator.rs +++ b/core/src/replicator.rs @@ -118,7 +118,7 @@ impl Replicator { info!("Replicator: id: {}", keypair.pubkey()); info!("Creating cluster info...."); - let cluster_info = Arc::new(RwLock::new(ClusterInfo::new(node.info.clone()))); + let cluster_info = Arc::new(RwLock::new(ClusterInfo::new_with_invalid_keypair(node.info.clone()))); let leader_pubkey = leader_info.id; { diff --git a/core/src/rpc.rs b/core/src/rpc.rs index 0277b3af18..faaa51e0b5 100644 --- a/core/src/rpc.rs +++ b/core/src/rpc.rs @@ -437,7 +437,7 @@ mod tests { &exit, ))); request_processor.write().unwrap().set_bank(&bank); - let cluster_info = Arc::new(RwLock::new(ClusterInfo::new(NodeInfo::default()))); + let cluster_info = Arc::new(RwLock::new(ClusterInfo::new_with_invalid_keypair(NodeInfo::default()))); let leader = NodeInfo::new_with_socketaddr(&socketaddr!("127.0.0.1:1234")); cluster_info.write().unwrap().insert_info(leader.clone()); @@ -638,7 +638,7 @@ mod tests { request_processor.set_bank(&bank); Arc::new(RwLock::new(request_processor)) }, - cluster_info: Arc::new(RwLock::new(ClusterInfo::new(NodeInfo::default()))), + cluster_info: Arc::new(RwLock::new(ClusterInfo::new_with_invalid_keypair(NodeInfo::default()))), }; let req = @@ -655,7 +655,7 @@ mod tests { #[test] fn test_rpc_get_leader_addr() { - let cluster_info = Arc::new(RwLock::new(ClusterInfo::new(NodeInfo::default()))); + let cluster_info = Arc::new(RwLock::new(ClusterInfo::new_with_invalid_keypair(NodeInfo::default()))); assert_eq!( get_leader_addr(&cluster_info), Err(Error { diff --git a/core/src/rpc_service.rs b/core/src/rpc_service.rs index b8a39a4aba..d9311c157a 100644 --- a/core/src/rpc_service.rs +++ b/core/src/rpc_service.rs @@ -99,7 +99,7 @@ mod tests { let (genesis_block, alice) = GenesisBlock::new(10_000); let exit = Arc::new(AtomicBool::new(false)); let bank = Bank::new(&genesis_block); - let cluster_info = Arc::new(RwLock::new(ClusterInfo::new(NodeInfo::default()))); + let cluster_info = Arc::new(RwLock::new(ClusterInfo::new_with_invalid_keypair(NodeInfo::default()))); let rpc_addr = SocketAddr::new( IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)), solana_netutil::find_available_port_in_range((10000, 65535)).unwrap(), diff --git a/core/src/storage_stage.rs b/core/src/storage_stage.rs index 3df8cc3588..5284a77a64 100644 --- a/core/src/storage_stage.rs +++ b/core/src/storage_stage.rs @@ -492,7 +492,7 @@ mod tests { fn test_cluster_info(id: Pubkey) -> Arc> { let node_info = NodeInfo::new_localhost(id, 0); - let cluster_info = ClusterInfo::new(node_info); + let cluster_info = ClusterInfo::new_with_invalid_keypair(node_info); Arc::new(RwLock::new(cluster_info)) } diff --git a/core/src/thin_client.rs b/core/src/thin_client.rs index 3f7016a56d..0ad0c08985 100644 --- a/core/src/thin_client.rs +++ b/core/src/thin_client.rs @@ -394,7 +394,7 @@ pub fn poll_gossip_for_leader(leader_gossip: SocketAddr, timeout: Option) - let exit = Arc::new(AtomicBool::new(false)); let (node, gossip_socket) = ClusterInfo::spy_node(); let my_addr = gossip_socket.local_addr().unwrap(); - let cluster_info = Arc::new(RwLock::new(ClusterInfo::new(node))); + let cluster_info = Arc::new(RwLock::new(ClusterInfo::new_with_invalid_keypair(node))); let gossip_service = GossipService::new(&cluster_info.clone(), None, None, gossip_socket, &exit); diff --git a/core/src/tvu.rs b/core/src/tvu.rs index 244305ab1f..320b533142 100644 --- a/core/src/tvu.rs +++ b/core/src/tvu.rs @@ -192,7 +192,7 @@ pub mod tests { }]; //start cluster_info1 - let mut cluster_info1 = ClusterInfo::new(target1.info.clone()); + let mut cluster_info1 = ClusterInfo::new_with_invalid_keypair(target1.info.clone()); cluster_info1.insert_info(leader.info.clone()); cluster_info1.set_leader(leader.info.id); let cref1 = Arc::new(RwLock::new(cluster_info1)); diff --git a/core/src/window_service.rs b/core/src/window_service.rs index 742f8d3d17..2f4187ecef 100644 --- a/core/src/window_service.rs +++ b/core/src/window_service.rs @@ -172,7 +172,7 @@ mod test { let leader_node = Node::new_localhost(); let validator_node = Node::new_localhost(); let exit = Arc::new(AtomicBool::new(false)); - let mut cluster_info_me = ClusterInfo::new(validator_node.info.clone()); + let mut cluster_info_me = ClusterInfo::new_with_invalid_keypair(validator_node.info.clone()); let me_id = leader_node.info.id; cluster_info_me.set_leader(me_id); let subs = Arc::new(RwLock::new(cluster_info_me)); @@ -244,7 +244,7 @@ mod test { let leader_node = Node::new_localhost(); let validator_node = Node::new_localhost(); let exit = Arc::new(AtomicBool::new(false)); - let cluster_info_me = ClusterInfo::new(validator_node.info.clone()); + let cluster_info_me = ClusterInfo::new_with_invalid_keypair(validator_node.info.clone()); let me_id = leader_node.info.id; let subs = Arc::new(RwLock::new(cluster_info_me)); diff --git a/tests/cluster_info.rs b/tests/cluster_info.rs index 35ea99d4c9..c2dbd5ead7 100644 --- a/tests/cluster_info.rs +++ b/tests/cluster_info.rs @@ -37,7 +37,7 @@ fn run_simulation(num_nodes: u64, fanout: usize, hood_size: usize) { // describe the leader let leader_info = ContactInfo::new_localhost(Keypair::new().pubkey(), 0); - let mut cluster_info = ClusterInfo::new(leader_info.clone()); + let mut cluster_info = ClusterInfo::new_with_invalid_keypair(leader_info.clone()); cluster_info.set_leader(leader_info.id); // setup stakes diff --git a/tests/replicator.rs b/tests/replicator.rs index 33dea9090c..feab4ca469 100644 --- a/tests/replicator.rs +++ b/tests/replicator.rs @@ -146,7 +146,7 @@ fn test_replicator_startup_basic() { // Create a client which downloads from the replicator and see that it // can respond with blobs. let tn = Node::new_localhost(); - let cluster_info = ClusterInfo::new(tn.info.clone()); + let cluster_info = ClusterInfo::new_with_invalid_keypair(tn.info.clone()); let repair_index = replicator.entry_height(); let req = cluster_info .window_index_request_bytes(0, repair_index) diff --git a/tests/tvu.rs b/tests/tvu.rs index 48e13bb8ac..373121db2a 100644 --- a/tests/tvu.rs +++ b/tests/tvu.rs @@ -47,14 +47,14 @@ fn test_replay() { let exit = Arc::new(AtomicBool::new(false)); // start cluster_info_l - let mut cluster_info_l = ClusterInfo::new(leader.info.clone()); + let mut cluster_info_l = ClusterInfo::new_with_invalid_keypair(leader.info.clone()); cluster_info_l.set_leader(leader.info.id); let cref_l = Arc::new(RwLock::new(cluster_info_l)); let dr_l = new_gossip(cref_l, leader.sockets.gossip, &exit); // start cluster_info2 - let mut cluster_info2 = ClusterInfo::new(target2.info.clone()); + let mut cluster_info2 = ClusterInfo::new_with_invalid_keypair(target2.info.clone()); cluster_info2.insert_info(leader.info.clone()); cluster_info2.set_leader(leader.info.id); let cref2 = Arc::new(RwLock::new(cluster_info2)); @@ -97,7 +97,7 @@ fn test_replay() { assert_eq!(bank.get_balance(&mint_keypair.pubkey()), starting_balance); // start cluster_info1 - let mut cluster_info1 = ClusterInfo::new(target1.info.clone()); + let mut cluster_info1 = ClusterInfo::new_with_invalid_keypair(target1.info.clone()); cluster_info1.insert_info(leader.info.clone()); cluster_info1.set_leader(leader.info.id); let cref1 = Arc::new(RwLock::new(cluster_info1));