Move and rename cluster_client
This commit is contained in:
committed by
Tyera Eulberg
parent
b7f420412b
commit
1d689e84f1
@ -1,14 +0,0 @@
|
||||
use crate::cluster_info::FULLNODE_PORT_RANGE;
|
||||
use crate::contact_info::ContactInfo;
|
||||
use solana_client::thin_client::ThinClient;
|
||||
use std::time::Duration;
|
||||
|
||||
pub fn mk_client(r: &ContactInfo) -> ThinClient {
|
||||
let (_, transactions_socket) = solana_netutil::bind_in_range(FULLNODE_PORT_RANGE).unwrap();
|
||||
ThinClient::new(r.rpc, r.tpu, transactions_socket)
|
||||
}
|
||||
|
||||
pub fn mk_client_with_timeout(r: &ContactInfo, timeout: Duration) -> ThinClient {
|
||||
let (_, transactions_socket) = solana_netutil::bind_in_range(FULLNODE_PORT_RANGE).unwrap();
|
||||
ThinClient::new_with_timeout(r.rpc, r.tpu, transactions_socket, timeout)
|
||||
}
|
@ -3,10 +3,11 @@ use crate::blocktree::Blocktree;
|
||||
///
|
||||
/// All tests must start from an entry point and a funding keypair and
|
||||
/// discover the rest of the network.
|
||||
use crate::cluster_client::mk_client;
|
||||
use crate::cluster_info::FULLNODE_PORT_RANGE;
|
||||
use crate::contact_info::ContactInfo;
|
||||
use crate::entry::{Entry, EntrySlice};
|
||||
use crate::gossip_service::discover;
|
||||
use solana_client::client::create_client;
|
||||
use solana_sdk::hash::Hash;
|
||||
use solana_sdk::signature::{Keypair, KeypairUtil, Signature};
|
||||
use solana_sdk::system_transaction::SystemTransaction;
|
||||
@ -27,7 +28,7 @@ pub fn spend_and_verify_all_nodes(
|
||||
assert!(cluster_nodes.len() >= nodes);
|
||||
for ingress_node in &cluster_nodes {
|
||||
let random_keypair = Keypair::new();
|
||||
let mut client = mk_client(&ingress_node);
|
||||
let mut client = create_client(ingress_node.client_facing_addr(), FULLNODE_PORT_RANGE);
|
||||
let bal = client
|
||||
.poll_get_balance(&funding_keypair.pubkey())
|
||||
.expect("balance in source");
|
||||
@ -43,14 +44,14 @@ pub fn spend_and_verify_all_nodes(
|
||||
.retry_transfer(&funding_keypair, &mut transaction, 5)
|
||||
.unwrap();
|
||||
for validator in &cluster_nodes {
|
||||
let mut client = mk_client(&validator);
|
||||
let mut client = create_client(validator.client_facing_addr(), FULLNODE_PORT_RANGE);
|
||||
client.poll_for_signature(&sig).unwrap();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn send_many_transactions(node: &ContactInfo, funding_keypair: &Keypair, num_txs: u64) {
|
||||
let mut client = mk_client(node);
|
||||
let mut client = create_client(node.client_facing_addr(), FULLNODE_PORT_RANGE);
|
||||
for _ in 0..num_txs {
|
||||
let random_keypair = Keypair::new();
|
||||
let bal = client
|
||||
@ -74,12 +75,12 @@ pub fn fullnode_exit(entry_point_info: &ContactInfo, nodes: usize) {
|
||||
let cluster_nodes = discover(&entry_point_info.gossip, nodes).unwrap();
|
||||
assert!(cluster_nodes.len() >= nodes);
|
||||
for node in &cluster_nodes {
|
||||
let mut client = mk_client(&node);
|
||||
let mut client = create_client(node.client_facing_addr(), FULLNODE_PORT_RANGE);
|
||||
assert!(client.fullnode_exit().unwrap());
|
||||
}
|
||||
sleep(Duration::from_millis(SLOT_MILLIS));
|
||||
for node in &cluster_nodes {
|
||||
let mut client = mk_client(&node);
|
||||
let mut client = create_client(node.client_facing_addr(), FULLNODE_PORT_RANGE);
|
||||
assert!(client.fullnode_exit().is_err());
|
||||
}
|
||||
}
|
||||
@ -125,7 +126,7 @@ pub fn kill_entry_and_spend_and_verify_rest(
|
||||
solana_logger::setup();
|
||||
let cluster_nodes = discover(&entry_point_info.gossip, nodes).unwrap();
|
||||
assert!(cluster_nodes.len() >= nodes);
|
||||
let mut client = mk_client(&entry_point_info);
|
||||
let mut client = create_client(entry_point_info.client_facing_addr(), FULLNODE_PORT_RANGE);
|
||||
info!("sleeping for an epoch");
|
||||
sleep(Duration::from_millis(SLOT_MILLIS * DEFAULT_SLOTS_PER_EPOCH));
|
||||
info!("done sleeping for an epoch");
|
||||
@ -139,7 +140,7 @@ pub fn kill_entry_and_spend_and_verify_rest(
|
||||
continue;
|
||||
}
|
||||
|
||||
let mut client = mk_client(&ingress_node);
|
||||
let mut client = create_client(ingress_node.client_facing_addr(), FULLNODE_PORT_RANGE);
|
||||
let bal = client
|
||||
.poll_get_balance(&funding_keypair.pubkey())
|
||||
.expect("balance in source");
|
||||
@ -194,7 +195,7 @@ fn poll_all_nodes_for_signature(
|
||||
if validator.id == entry_point_info.id {
|
||||
continue;
|
||||
}
|
||||
let mut client = mk_client(&validator);
|
||||
let mut client = create_client(validator.client_facing_addr(), FULLNODE_PORT_RANGE);
|
||||
client.poll_for_signature(&sig)?;
|
||||
}
|
||||
|
||||
|
@ -196,6 +196,10 @@ impl ContactInfo {
|
||||
pub fn is_valid_address(addr: &SocketAddr) -> bool {
|
||||
(addr.port() != 0) && Self::is_valid_ip(addr.ip())
|
||||
}
|
||||
|
||||
pub fn client_facing_addr(&self) -> (SocketAddr, SocketAddr) {
|
||||
(self.rpc, self.tpu)
|
||||
}
|
||||
}
|
||||
|
||||
impl Signable for ContactInfo {
|
||||
|
@ -13,7 +13,6 @@ pub mod broadcast_stage;
|
||||
pub mod chacha;
|
||||
#[cfg(all(feature = "chacha", feature = "cuda"))]
|
||||
pub mod chacha_cuda;
|
||||
pub mod cluster_client;
|
||||
pub mod cluster_info_vote_listener;
|
||||
#[macro_use]
|
||||
pub mod contact_info;
|
||||
|
@ -1,10 +1,10 @@
|
||||
use crate::blocktree::{create_new_tmp_ledger, tmp_copy_blocktree};
|
||||
use crate::cluster_client::mk_client;
|
||||
use crate::cluster_info::Node;
|
||||
use crate::cluster_info::{Node, FULLNODE_PORT_RANGE};
|
||||
use crate::contact_info::ContactInfo;
|
||||
use crate::fullnode::{Fullnode, FullnodeConfig};
|
||||
use crate::gossip_service::discover;
|
||||
use crate::service::Service;
|
||||
use solana_client::client::create_client;
|
||||
use solana_client::thin_client::{retry_get_balance, ThinClient};
|
||||
use solana_sdk::genesis_block::GenesisBlock;
|
||||
use solana_sdk::pubkey::Pubkey;
|
||||
@ -58,7 +58,10 @@ impl LocalCluster {
|
||||
fullnode_config,
|
||||
);
|
||||
let mut fullnodes = vec![leader_server];
|
||||
let mut client = mk_client(&leader_contact_info);
|
||||
let mut client = create_client(
|
||||
leader_contact_info.client_facing_addr(),
|
||||
FULLNODE_PORT_RANGE,
|
||||
);
|
||||
for stake in &node_stakes[1..] {
|
||||
// Must have enough tokens to fund vote account and set delegate
|
||||
assert!(*stake > 2);
|
||||
|
@ -3,8 +3,7 @@ use crate::blocktree::Blocktree;
|
||||
use crate::blocktree_processor;
|
||||
#[cfg(feature = "chacha")]
|
||||
use crate::chacha::{chacha_cbc_encrypt_ledger, CHACHA_BLOCK_SIZE};
|
||||
use crate::cluster_client::mk_client;
|
||||
use crate::cluster_info::{ClusterInfo, Node};
|
||||
use crate::cluster_info::{ClusterInfo, Node, FULLNODE_PORT_RANGE};
|
||||
use crate::contact_info::ContactInfo;
|
||||
use crate::gossip_service::GossipService;
|
||||
use crate::result::Result;
|
||||
@ -14,6 +13,7 @@ use crate::streamer::BlobReceiver;
|
||||
use crate::window_service::WindowService;
|
||||
use rand::thread_rng;
|
||||
use rand::Rng;
|
||||
use solana_client::client::create_client;
|
||||
use solana_client::rpc_request::{RpcClient, RpcRequest, RpcRequestHandler};
|
||||
use solana_client::thin_client::{retry_get_balance, ThinClient};
|
||||
use solana_drone::drone::{request_airdrop_transaction, DRONE_PORT};
|
||||
@ -205,7 +205,7 @@ impl Replicator {
|
||||
cluster_info_w.insert_self(contact_info);
|
||||
}
|
||||
|
||||
let mut client = mk_client(leader_info);
|
||||
let mut client = create_client(leader_info.client_facing_addr(), FULLNODE_PORT_RANGE);
|
||||
|
||||
Self::get_airdrop_lamports(&mut client, &keypair, &leader_info);
|
||||
info!("Done downloading ledger at {}", ledger_path);
|
||||
|
@ -5,14 +5,14 @@
|
||||
use crate::blocktree::Blocktree;
|
||||
#[cfg(all(feature = "chacha", feature = "cuda"))]
|
||||
use crate::chacha_cuda::chacha_cbc_encrypt_file_many_keys;
|
||||
use crate::cluster_client::mk_client_with_timeout;
|
||||
use crate::cluster_info::ClusterInfo;
|
||||
use crate::cluster_info::{ClusterInfo, FULLNODE_PORT_RANGE};
|
||||
use crate::entry::{Entry, EntryReceiver};
|
||||
use crate::result::{Error, Result};
|
||||
use crate::service::Service;
|
||||
use bincode::deserialize;
|
||||
use rand::{Rng, SeedableRng};
|
||||
use rand_chacha::ChaChaRng;
|
||||
use solana_client::client::create_client_with_timeout;
|
||||
use solana_sdk::hash::Hash;
|
||||
use solana_sdk::pubkey::Pubkey;
|
||||
use solana_sdk::signature::{Keypair, Signature};
|
||||
@ -228,7 +228,11 @@ impl StorageStage {
|
||||
account_to_create: Option<Pubkey>,
|
||||
) -> io::Result<()> {
|
||||
let contact_info = cluster_info.read().unwrap().my_data();
|
||||
let mut client = mk_client_with_timeout(&contact_info, Duration::from_secs(5));
|
||||
let mut client = create_client_with_timeout(
|
||||
contact_info.client_facing_addr(),
|
||||
FULLNODE_PORT_RANGE,
|
||||
Duration::from_secs(5),
|
||||
);
|
||||
|
||||
if let Some(account) = account_to_create {
|
||||
if client.get_account_userdata(&account).is_ok() {
|
||||
|
Reference in New Issue
Block a user