parent
9a7b6abc91
commit
b3bb4357bb
|
@ -11,6 +11,7 @@ use {
|
||||||
gossip_service::GossipService,
|
gossip_service::GossipService,
|
||||||
legacy_contact_info::LegacyContactInfo as ContactInfo,
|
legacy_contact_info::LegacyContactInfo as ContactInfo,
|
||||||
},
|
},
|
||||||
|
solana_metrics::datapoint_info,
|
||||||
solana_rpc_client::rpc_client::RpcClient,
|
solana_rpc_client::rpc_client::RpcClient,
|
||||||
solana_runtime::{
|
solana_runtime::{
|
||||||
snapshot_archive_info::SnapshotArchiveInfoGetter,
|
snapshot_archive_info::SnapshotArchiveInfoGetter,
|
||||||
|
@ -593,6 +594,9 @@ pub fn rpc_bootstrap(
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let total_snapshot_download_time = Instant::now();
|
||||||
|
let mut get_rpc_nodes_time = Duration::new(0, 0);
|
||||||
|
let mut snapshot_download_time = Duration::new(0, 0);
|
||||||
let mut blacklisted_rpc_nodes = HashSet::new();
|
let mut blacklisted_rpc_nodes = HashSet::new();
|
||||||
let mut gossip = None;
|
let mut gossip = None;
|
||||||
let mut vetted_rpc_nodes = vec![];
|
let mut vetted_rpc_nodes = vec![];
|
||||||
|
@ -617,6 +621,7 @@ pub fn rpc_bootstrap(
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let get_rpc_nodes_start = Instant::now();
|
||||||
get_vetted_rpc_nodes(
|
get_vetted_rpc_nodes(
|
||||||
&mut vetted_rpc_nodes,
|
&mut vetted_rpc_nodes,
|
||||||
&gossip.as_ref().unwrap().0,
|
&gossip.as_ref().unwrap().0,
|
||||||
|
@ -626,8 +631,10 @@ pub fn rpc_bootstrap(
|
||||||
&bootstrap_config,
|
&bootstrap_config,
|
||||||
);
|
);
|
||||||
let (rpc_contact_info, snapshot_hash, rpc_client) = vetted_rpc_nodes.pop().unwrap();
|
let (rpc_contact_info, snapshot_hash, rpc_client) = vetted_rpc_nodes.pop().unwrap();
|
||||||
|
get_rpc_nodes_time += get_rpc_nodes_start.elapsed();
|
||||||
|
|
||||||
match attempt_download_genesis_and_snapshot(
|
let snapshot_download_start = Instant::now();
|
||||||
|
let download_result = attempt_download_genesis_and_snapshot(
|
||||||
&rpc_contact_info,
|
&rpc_contact_info,
|
||||||
ledger_path,
|
ledger_path,
|
||||||
validator_config,
|
validator_config,
|
||||||
|
@ -646,7 +653,9 @@ pub fn rpc_bootstrap(
|
||||||
identity_keypair,
|
identity_keypair,
|
||||||
vote_account,
|
vote_account,
|
||||||
authorized_voter_keypairs.clone(),
|
authorized_voter_keypairs.clone(),
|
||||||
) {
|
);
|
||||||
|
snapshot_download_time += snapshot_download_start.elapsed();
|
||||||
|
match download_result {
|
||||||
Ok(()) => break,
|
Ok(()) => break,
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
fail_rpc_node(
|
fail_rpc_node(
|
||||||
|
@ -662,6 +671,23 @@ pub fn rpc_bootstrap(
|
||||||
if let Some(gossip) = gossip.take() {
|
if let Some(gossip) = gossip.take() {
|
||||||
shutdown_gossip_service(gossip);
|
shutdown_gossip_service(gossip);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
datapoint_info!(
|
||||||
|
"bootstrap-snapshot-download",
|
||||||
|
(
|
||||||
|
"total_time_secs",
|
||||||
|
total_snapshot_download_time.elapsed().as_secs(),
|
||||||
|
i64
|
||||||
|
),
|
||||||
|
("get_rpc_nodes_time_secs", get_rpc_nodes_time.as_secs(), i64),
|
||||||
|
(
|
||||||
|
"snapshot_download_time_secs",
|
||||||
|
snapshot_download_time.as_secs(),
|
||||||
|
i64
|
||||||
|
),
|
||||||
|
("download_abort_count", download_abort_count, i64),
|
||||||
|
("blacklisted_nodes_count", blacklisted_rpc_nodes.len(), i64),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get RPC peer node candidates to download from.
|
/// Get RPC peer node candidates to download from.
|
||||||
|
|
Loading…
Reference in New Issue