diff --git a/bench-exchange/src/bench.rs b/bench-exchange/src/bench.rs index b5d2d0cab3..784ec29f2b 100644 --- a/bench-exchange/src/bench.rs +++ b/bench-exchange/src/bench.rs @@ -4,7 +4,11 @@ use crate::order_book::*; use itertools::izip; use log::*; use rayon::prelude::*; +use solana::cluster_info::FULLNODE_PORT_RANGE; +use solana::contact_info::ContactInfo; use solana::gen_keys::GenKeys; +use solana_client::thin_client::create_client; +use solana_client::thin_client::ThinClient; use solana_drone::drone::request_airdrop_transaction; use solana_exchange_api::exchange_instruction; use solana_exchange_api::exchange_state::*; @@ -1007,15 +1011,30 @@ pub fn airdrop_lamports(client: &Client, drone_addr: &SocketAddr, id: &Keypair, } } +pub fn get_clients(nodes: Vec) -> Vec { + nodes + .iter() + .filter_map(|node| { + let cluster_entrypoint = node; + let cluster_addrs = cluster_entrypoint.client_facing_addr(); + if ContactInfo::is_valid_address(&cluster_addrs.0) + && ContactInfo::is_valid_address(&cluster_addrs.1) + { + let client = create_client(cluster_addrs, FULLNODE_PORT_RANGE); + Some(client) + } else { + None + } + }) + .collect() +} + #[cfg(test)] mod tests { use super::*; - use solana::cluster_info::FULLNODE_PORT_RANGE; - use solana::contact_info::ContactInfo; use solana::fullnode::FullnodeConfig; use solana::gossip_service::discover_nodes; use solana::local_cluster::{ClusterConfig, LocalCluster}; - use solana_client::thin_client::create_client; use solana_drone::drone::run_local_drone; use solana_exchange_api::exchange_processor::process_instruction; use solana_runtime::bank::Bank; @@ -1072,21 +1091,7 @@ mod tests { exit(1); }); - let clients: Vec<_> = nodes - .iter() - .filter_map(|node| { - let cluster_entrypoint = node.clone(); - let cluster_addrs = cluster_entrypoint.client_facing_addr(); - if ContactInfo::is_valid_address(&cluster_addrs.0) - && ContactInfo::is_valid_address(&cluster_addrs.1) - { - let client = create_client(cluster_addrs, FULLNODE_PORT_RANGE); - Some(client) - } else { - None - } - }) - .collect(); + let clients = get_clients(nodes); if clients.len() < NUM_NODES { error!( diff --git a/bench-exchange/src/main.rs b/bench-exchange/src/main.rs index c311ae5e11..691605616a 100644 --- a/bench-exchange/src/main.rs +++ b/bench-exchange/src/main.rs @@ -2,12 +2,9 @@ pub mod bench; mod cli; pub mod order_book; -use crate::bench::{airdrop_lamports, do_bench_exchange, Config}; +use crate::bench::{airdrop_lamports, do_bench_exchange, get_clients, Config}; use log::*; -use solana::cluster_info::FULLNODE_PORT_RANGE; -use solana::contact_info::ContactInfo; use solana::gossip_service::discover_nodes; -use solana_client::thin_client::create_client; use solana_sdk::signature::KeypairUtil; fn main() { @@ -35,21 +32,7 @@ fn main() { panic!("Failed to discover nodes"); }); - let clients: Vec<_> = nodes - .iter() - .filter_map(|node| { - let cluster_entrypoint = node.clone(); - let cluster_addrs = cluster_entrypoint.client_facing_addr(); - if ContactInfo::is_valid_address(&cluster_addrs.0) - && ContactInfo::is_valid_address(&cluster_addrs.1) - { - let client = create_client(cluster_addrs, FULLNODE_PORT_RANGE); - Some(client) - } else { - None - } - }) - .collect(); + let clients = get_clients(nodes); info!("{} nodes found", clients.len()); if clients.len() < num_nodes {