Harmonize Fullnode::new* function arguments
This commit is contained in:
parent
d8861c2a5f
commit
12cddf725e
|
@ -254,12 +254,14 @@ fn main() {
|
||||||
|
|
||||||
let mut fullnode = Fullnode::new(
|
let mut fullnode = Fullnode::new(
|
||||||
node,
|
node,
|
||||||
ledger_path,
|
|
||||||
keypair.clone(),
|
keypair.clone(),
|
||||||
signer_option,
|
ledger_path,
|
||||||
cluster_entrypoint,
|
|
||||||
no_sigverify,
|
|
||||||
Arc::new(RwLock::new(leader_scheduler)),
|
Arc::new(RwLock::new(leader_scheduler)),
|
||||||
|
signer_option,
|
||||||
|
cluster_entrypoint
|
||||||
|
.map(|i| NodeInfo::new_entry_point(&i))
|
||||||
|
.as_ref(),
|
||||||
|
no_sigverify,
|
||||||
Some(rpc_port),
|
Some(rpc_port),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
140
src/fullnode.rs
140
src/fullnode.rs
|
@ -80,27 +80,28 @@ pub struct Fullnode {
|
||||||
pub role_notifiers: (TvuRotationReceiver, TpuRotationReceiver),
|
pub role_notifiers: (TvuRotationReceiver, TpuRotationReceiver),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Fullnode {
|
|
||||||
pub fn new(
|
|
||||||
node: Node,
|
|
||||||
ledger_path: &str,
|
|
||||||
keypair: Arc<Keypair>,
|
|
||||||
vote_signer: Option<Arc<VoteSignerProxy>>,
|
|
||||||
entrypoint_addr: Option<SocketAddr>,
|
|
||||||
sigverify_disabled: bool,
|
|
||||||
leader_scheduler: Arc<RwLock<LeaderScheduler>>,
|
|
||||||
rpc_port: Option<u16>,
|
|
||||||
) -> Self {
|
|
||||||
// TODO: remove this, temporary parameter to configure
|
// TODO: remove this, temporary parameter to configure
|
||||||
// storage amount differently for test configurations
|
// storage amount differently for test configurations
|
||||||
// so tests don't take forever to run.
|
// so tests don't take forever to run.
|
||||||
const NUM_HASHES_FOR_STORAGE_ROTATE: u64 = 1024;
|
const NUM_HASHES_FOR_STORAGE_ROTATE: u64 = 1024;
|
||||||
|
|
||||||
|
impl Fullnode {
|
||||||
|
pub fn new(
|
||||||
|
node: Node,
|
||||||
|
keypair: Arc<Keypair>,
|
||||||
|
ledger_path: &str,
|
||||||
|
leader_scheduler: Arc<RwLock<LeaderScheduler>>,
|
||||||
|
vote_signer: Option<Arc<VoteSignerProxy>>,
|
||||||
|
entrypoint_info_option: Option<&NodeInfo>,
|
||||||
|
sigverify_disabled: bool,
|
||||||
|
rpc_port: Option<u16>,
|
||||||
|
) -> Self {
|
||||||
Self::new_with_storage_rotate(
|
Self::new_with_storage_rotate(
|
||||||
node,
|
node,
|
||||||
ledger_path,
|
|
||||||
keypair,
|
keypair,
|
||||||
|
ledger_path,
|
||||||
vote_signer,
|
vote_signer,
|
||||||
entrypoint_addr,
|
entrypoint_info_option,
|
||||||
sigverify_disabled,
|
sigverify_disabled,
|
||||||
leader_scheduler,
|
leader_scheduler,
|
||||||
rpc_port,
|
rpc_port,
|
||||||
|
@ -110,44 +111,27 @@ impl Fullnode {
|
||||||
|
|
||||||
pub fn new_with_storage_rotate(
|
pub fn new_with_storage_rotate(
|
||||||
node: Node,
|
node: Node,
|
||||||
ledger_path: &str,
|
|
||||||
keypair: Arc<Keypair>,
|
keypair: Arc<Keypair>,
|
||||||
|
ledger_path: &str,
|
||||||
vote_signer: Option<Arc<VoteSignerProxy>>,
|
vote_signer: Option<Arc<VoteSignerProxy>>,
|
||||||
entrypoint_addr: Option<SocketAddr>,
|
entrypoint_info_option: Option<&NodeInfo>,
|
||||||
sigverify_disabled: bool,
|
sigverify_disabled: bool,
|
||||||
leader_scheduler: Arc<RwLock<LeaderScheduler>>,
|
leader_scheduler: Arc<RwLock<LeaderScheduler>>,
|
||||||
rpc_port: Option<u16>,
|
rpc_port: Option<u16>,
|
||||||
storage_rotate_count: u64,
|
storage_rotate_count: u64,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
info!("creating bank...");
|
|
||||||
let (genesis_block, db_ledger) = Self::make_db_ledger(ledger_path);
|
let (genesis_block, db_ledger) = Self::make_db_ledger(ledger_path);
|
||||||
let (bank, entry_height, last_entry_id) =
|
let (bank, entry_height, last_entry_id) =
|
||||||
Self::new_bank_from_db_ledger(&genesis_block, &db_ledger, leader_scheduler);
|
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(
|
Self::new_with_bank_and_db_ledger(
|
||||||
|
node,
|
||||||
keypair,
|
keypair,
|
||||||
vote_signer,
|
|
||||||
bank,
|
bank,
|
||||||
&db_ledger,
|
&db_ledger,
|
||||||
entry_height,
|
entry_height,
|
||||||
&last_entry_id,
|
&last_entry_id,
|
||||||
node,
|
vote_signer,
|
||||||
entrypoint_info.as_ref(),
|
entrypoint_info_option,
|
||||||
sigverify_disabled,
|
sigverify_disabled,
|
||||||
rpc_port,
|
rpc_port,
|
||||||
storage_rotate_count,
|
storage_rotate_count,
|
||||||
|
@ -156,44 +140,42 @@ impl Fullnode {
|
||||||
|
|
||||||
#[allow(clippy::too_many_arguments)]
|
#[allow(clippy::too_many_arguments)]
|
||||||
pub fn new_with_bank(
|
pub fn new_with_bank(
|
||||||
|
node: Node,
|
||||||
keypair: Arc<Keypair>,
|
keypair: Arc<Keypair>,
|
||||||
vote_signer: Option<Arc<VoteSignerProxy>>,
|
|
||||||
bank: Bank,
|
|
||||||
ledger_path: &str,
|
ledger_path: &str,
|
||||||
|
bank: Bank,
|
||||||
entry_height: u64,
|
entry_height: u64,
|
||||||
last_entry_id: &Hash,
|
last_entry_id: &Hash,
|
||||||
node: Node,
|
vote_signer: Option<Arc<VoteSignerProxy>>,
|
||||||
entrypoint_info_option: Option<&NodeInfo>,
|
entrypoint_info_option: Option<&NodeInfo>,
|
||||||
sigverify_disabled: bool,
|
sigverify_disabled: bool,
|
||||||
rpc_port: Option<u16>,
|
rpc_port: Option<u16>,
|
||||||
storage_rotate_count: u64,
|
|
||||||
) -> Self {
|
) -> Self {
|
||||||
let (_genesis_block, db_ledger) = Self::make_db_ledger(ledger_path);
|
let (_genesis_block, db_ledger) = Self::make_db_ledger(ledger_path);
|
||||||
Self::new_with_bank_and_db_ledger(
|
Self::new_with_bank_and_db_ledger(
|
||||||
|
node,
|
||||||
keypair,
|
keypair,
|
||||||
vote_signer,
|
|
||||||
bank,
|
bank,
|
||||||
&db_ledger,
|
&db_ledger,
|
||||||
entry_height,
|
entry_height,
|
||||||
&last_entry_id,
|
&last_entry_id,
|
||||||
node,
|
vote_signer,
|
||||||
entrypoint_info_option,
|
entrypoint_info_option,
|
||||||
sigverify_disabled,
|
sigverify_disabled,
|
||||||
rpc_port,
|
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)]
|
#[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<Keypair>,
|
keypair: Arc<Keypair>,
|
||||||
vote_signer: Option<Arc<VoteSignerProxy>>,
|
|
||||||
bank: Bank,
|
bank: Bank,
|
||||||
db_ledger: &Arc<DbLedger>,
|
db_ledger: &Arc<DbLedger>,
|
||||||
entry_height: u64,
|
entry_height: u64,
|
||||||
last_entry_id: &Hash,
|
last_entry_id: &Hash,
|
||||||
mut node: Node,
|
vote_signer: Option<Arc<VoteSignerProxy>>,
|
||||||
entrypoint_info_option: Option<&NodeInfo>,
|
entrypoint_info_option: Option<&NodeInfo>,
|
||||||
sigverify_disabled: bool,
|
sigverify_disabled: bool,
|
||||||
rpc_port: Option<u16>,
|
rpc_port: Option<u16>,
|
||||||
|
@ -201,8 +183,6 @@ impl Fullnode {
|
||||||
) -> Self {
|
) -> Self {
|
||||||
let mut rpc_addr = node.info.rpc;
|
let mut rpc_addr = node.info.rpc;
|
||||||
let mut rpc_pubsub_addr = node.info.rpc_pubsub;
|
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 rpc_port == `None`, node will listen on the ports set in NodeInfo
|
||||||
if let Some(port) = rpc_port {
|
if let Some(port) = rpc_port {
|
||||||
rpc_addr.set_port(port);
|
rpc_addr.set_port(port);
|
||||||
|
@ -211,10 +191,19 @@ impl Fullnode {
|
||||||
node.info.rpc_pubsub = rpc_pubsub_addr;
|
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 exit = Arc::new(AtomicBool::new(false));
|
||||||
let bank = Arc::new(bank);
|
let bank = Arc::new(bank);
|
||||||
|
|
||||||
node.info.wallclock = timestamp();
|
node.info.wallclock = timestamp();
|
||||||
|
assert_eq!(keypair.pubkey(), node.info.id);
|
||||||
let cluster_info = Arc::new(RwLock::new(ClusterInfo::new_with_keypair(
|
let cluster_info = Arc::new(RwLock::new(ClusterInfo::new_with_keypair(
|
||||||
node.info,
|
node.info,
|
||||||
keypair.clone(),
|
keypair.clone(),
|
||||||
|
@ -274,7 +263,8 @@ impl Fullnode {
|
||||||
|
|
||||||
cluster_info.write().unwrap().set_leader(scheduled_leader);
|
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 {
|
let sockets = Sockets {
|
||||||
repair: node
|
repair: node
|
||||||
.sockets
|
.sockets
|
||||||
|
@ -294,7 +284,7 @@ impl Fullnode {
|
||||||
.collect(),
|
.collect(),
|
||||||
};
|
};
|
||||||
|
|
||||||
//setup channels for rotation indications
|
// Setup channels for rotation indications
|
||||||
let (to_leader_sender, to_leader_receiver) = channel();
|
let (to_leader_sender, to_leader_receiver) = channel();
|
||||||
let (to_validator_sender, to_validator_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) {
|
pub fn exit(&self) {
|
||||||
self.exit.store(true, Ordering::Relaxed);
|
self.exit.store(true, Ordering::Relaxed);
|
||||||
if let Some(ref rpc_service) = self.rpc_service {
|
if let Some(ref rpc_service) = self.rpc_service {
|
||||||
|
@ -534,7 +524,6 @@ mod tests {
|
||||||
make_active_set_entries, LeaderScheduler, LeaderSchedulerConfig,
|
make_active_set_entries, LeaderScheduler, LeaderSchedulerConfig,
|
||||||
};
|
};
|
||||||
use crate::service::Service;
|
use crate::service::Service;
|
||||||
use crate::storage_stage::STORAGE_ROTATE_TEST_COUNT;
|
|
||||||
use crate::streamer::responder;
|
use crate::streamer::responder;
|
||||||
use crate::tpu::TpuReturnType;
|
use crate::tpu::TpuReturnType;
|
||||||
use crate::tvu::TvuReturnType;
|
use crate::tvu::TvuReturnType;
|
||||||
|
@ -565,17 +554,16 @@ mod tests {
|
||||||
let keypair = Arc::new(keypair);
|
let keypair = Arc::new(keypair);
|
||||||
let signer = VoteSignerProxy::new_local(&keypair);
|
let signer = VoteSignerProxy::new_local(&keypair);
|
||||||
let v = Fullnode::new_with_bank(
|
let v = Fullnode::new_with_bank(
|
||||||
|
tn,
|
||||||
keypair,
|
keypair,
|
||||||
Some(Arc::new(signer)),
|
|
||||||
bank,
|
|
||||||
&validator_ledger_path,
|
&validator_ledger_path,
|
||||||
|
bank,
|
||||||
entry_height,
|
entry_height,
|
||||||
&last_id,
|
&last_id,
|
||||||
tn,
|
Some(Arc::new(signer)),
|
||||||
Some(&entry),
|
Some(&entry),
|
||||||
false,
|
false,
|
||||||
None,
|
None,
|
||||||
STORAGE_ROTATE_TEST_COUNT,
|
|
||||||
);
|
);
|
||||||
v.close().unwrap();
|
v.close().unwrap();
|
||||||
remove_dir_all(validator_ledger_path).unwrap();
|
remove_dir_all(validator_ledger_path).unwrap();
|
||||||
|
@ -608,17 +596,16 @@ mod tests {
|
||||||
let keypair = Arc::new(keypair);
|
let keypair = Arc::new(keypair);
|
||||||
let signer = VoteSignerProxy::new_local(&keypair);
|
let signer = VoteSignerProxy::new_local(&keypair);
|
||||||
Fullnode::new_with_bank(
|
Fullnode::new_with_bank(
|
||||||
|
tn,
|
||||||
keypair,
|
keypair,
|
||||||
Some(Arc::new(signer)),
|
|
||||||
bank,
|
|
||||||
&validator_ledger_path,
|
&validator_ledger_path,
|
||||||
|
bank,
|
||||||
entry_height,
|
entry_height,
|
||||||
&last_id,
|
&last_id,
|
||||||
tn,
|
Some(Arc::new(signer)),
|
||||||
Some(&entry),
|
Some(&entry),
|
||||||
false,
|
false,
|
||||||
None,
|
None,
|
||||||
STORAGE_ROTATE_TEST_COUNT,
|
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
@ -683,12 +670,12 @@ mod tests {
|
||||||
// Start up the leader
|
// Start up the leader
|
||||||
let mut bootstrap_leader = Fullnode::new(
|
let mut bootstrap_leader = Fullnode::new(
|
||||||
bootstrap_leader_node,
|
bootstrap_leader_node,
|
||||||
&bootstrap_leader_ledger_path,
|
|
||||||
bootstrap_leader_keypair,
|
bootstrap_leader_keypair,
|
||||||
Some(Arc::new(signer)),
|
&bootstrap_leader_ledger_path,
|
||||||
Some(bootstrap_leader_info.gossip),
|
|
||||||
false,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))),
|
Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))),
|
||||||
|
Some(Arc::new(signer)),
|
||||||
|
Some(&bootstrap_leader_info),
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -787,12 +774,12 @@ mod tests {
|
||||||
let vote_signer = VoteSignerProxy::new_local(&bootstrap_leader_keypair);
|
let vote_signer = VoteSignerProxy::new_local(&bootstrap_leader_keypair);
|
||||||
let bootstrap_leader = Fullnode::new(
|
let bootstrap_leader = Fullnode::new(
|
||||||
bootstrap_leader_node,
|
bootstrap_leader_node,
|
||||||
&bootstrap_leader_ledger_path,
|
|
||||||
bootstrap_leader_keypair,
|
bootstrap_leader_keypair,
|
||||||
Some(Arc::new(vote_signer)),
|
&bootstrap_leader_ledger_path,
|
||||||
Some(bootstrap_leader_info.gossip),
|
|
||||||
false,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))),
|
Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))),
|
||||||
|
Some(Arc::new(vote_signer)),
|
||||||
|
Some(&bootstrap_leader_info),
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -801,12 +788,12 @@ mod tests {
|
||||||
// Test that a node knows to transition to a leader based on parsing the ledger
|
// Test that a node knows to transition to a leader based on parsing the ledger
|
||||||
let validator = Fullnode::new(
|
let validator = Fullnode::new(
|
||||||
validator_node,
|
validator_node,
|
||||||
&validator_ledger_path,
|
|
||||||
validator_keypair,
|
validator_keypair,
|
||||||
Some(Arc::new(validator_vote_account_id)),
|
&validator_ledger_path,
|
||||||
Some(bootstrap_leader_info.gossip),
|
|
||||||
false,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))),
|
Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))),
|
||||||
|
Some(Arc::new(validator_vote_account_id)),
|
||||||
|
Some(&bootstrap_leader_info),
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -829,7 +816,6 @@ mod tests {
|
||||||
let leader_keypair = Keypair::new();
|
let leader_keypair = Keypair::new();
|
||||||
let leader_node = Node::new_localhost_with_pubkey(leader_keypair.pubkey());
|
let leader_node = Node::new_localhost_with_pubkey(leader_keypair.pubkey());
|
||||||
let leader_id = leader_node.info.id;
|
let leader_id = leader_node.info.id;
|
||||||
let leader_gossip = leader_node.info.gossip;
|
|
||||||
|
|
||||||
// Create validator identity
|
// Create validator identity
|
||||||
let num_ending_ticks = 1;
|
let num_ending_ticks = 1;
|
||||||
|
@ -897,12 +883,12 @@ mod tests {
|
||||||
// Start the validator
|
// Start the validator
|
||||||
let validator = Fullnode::new(
|
let validator = Fullnode::new(
|
||||||
validator_node,
|
validator_node,
|
||||||
&validator_ledger_path,
|
|
||||||
validator_keypair,
|
validator_keypair,
|
||||||
Some(Arc::new(vote_signer)),
|
&validator_ledger_path,
|
||||||
Some(leader_gossip),
|
|
||||||
false,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))),
|
Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))),
|
||||||
|
Some(Arc::new(vote_signer)),
|
||||||
|
Some(&leader_node.info),
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -444,7 +444,6 @@ pub fn new_fullnode(
|
||||||
use crate::cluster_info::Node;
|
use crate::cluster_info::Node;
|
||||||
use crate::db_ledger::create_tmp_ledger;
|
use crate::db_ledger::create_tmp_ledger;
|
||||||
use crate::leader_scheduler::LeaderScheduler;
|
use crate::leader_scheduler::LeaderScheduler;
|
||||||
use crate::storage_stage::STORAGE_ROTATE_TEST_COUNT;
|
|
||||||
use crate::vote_signer_proxy::VoteSignerProxy;
|
use crate::vote_signer_proxy::VoteSignerProxy;
|
||||||
use solana_sdk::signature::KeypairUtil;
|
use solana_sdk::signature::KeypairUtil;
|
||||||
|
|
||||||
|
@ -465,17 +464,16 @@ pub fn new_fullnode(
|
||||||
let vote_signer = VoteSignerProxy::new_local(&vote_account_keypair);
|
let vote_signer = VoteSignerProxy::new_local(&vote_account_keypair);
|
||||||
let last_id = bank.last_id();
|
let last_id = bank.last_id();
|
||||||
let server = Fullnode::new_with_bank(
|
let server = Fullnode::new_with_bank(
|
||||||
|
leader,
|
||||||
leader_keypair,
|
leader_keypair,
|
||||||
Some(Arc::new(vote_signer)),
|
|
||||||
bank,
|
|
||||||
&ledger_path,
|
&ledger_path,
|
||||||
|
bank,
|
||||||
entry_height,
|
entry_height,
|
||||||
&last_id,
|
&last_id,
|
||||||
leader,
|
Some(Arc::new(vote_signer)),
|
||||||
None,
|
None,
|
||||||
false,
|
false,
|
||||||
None,
|
None,
|
||||||
STORAGE_ROTATE_TEST_COUNT,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
(server, leader_data, genesis_block, alice, ledger_path)
|
(server, leader_data, genesis_block, alice, ledger_path)
|
||||||
|
|
|
@ -156,14 +156,14 @@ fn test_multi_node_ledger_window() -> result::Result<()> {
|
||||||
let signer_proxy = VoteSignerProxy::new_local(&leader_keypair);
|
let signer_proxy = VoteSignerProxy::new_local(&leader_keypair);
|
||||||
let leader = Fullnode::new(
|
let leader = Fullnode::new(
|
||||||
leader,
|
leader,
|
||||||
&leader_ledger_path,
|
|
||||||
leader_keypair,
|
leader_keypair,
|
||||||
Some(Arc::new(signer_proxy)),
|
&leader_ledger_path,
|
||||||
None,
|
|
||||||
false,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
||||||
leader_pubkey,
|
leader_pubkey,
|
||||||
))),
|
))),
|
||||||
|
Some(Arc::new(signer_proxy)),
|
||||||
|
None,
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -176,14 +176,14 @@ fn test_multi_node_ledger_window() -> result::Result<()> {
|
||||||
let signer_proxy = VoteSignerProxy::new_local(&keypair);
|
let signer_proxy = VoteSignerProxy::new_local(&keypair);
|
||||||
let validator = Fullnode::new(
|
let validator = Fullnode::new(
|
||||||
validator,
|
validator,
|
||||||
&zero_ledger_path,
|
|
||||||
keypair,
|
keypair,
|
||||||
Some(Arc::new(signer_proxy)),
|
&zero_ledger_path,
|
||||||
Some(leader_data.gossip),
|
|
||||||
false,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
||||||
leader_pubkey,
|
leader_pubkey,
|
||||||
))),
|
))),
|
||||||
|
Some(Arc::new(signer_proxy)),
|
||||||
|
Some(&leader_data),
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -260,14 +260,14 @@ fn test_multi_node_validator_catchup_from_zero() -> result::Result<()> {
|
||||||
let signer_proxy = VoteSignerProxy::new_local(&leader_keypair);
|
let signer_proxy = VoteSignerProxy::new_local(&leader_keypair);
|
||||||
let server = Fullnode::new(
|
let server = Fullnode::new(
|
||||||
leader,
|
leader,
|
||||||
&leader_ledger_path,
|
|
||||||
leader_keypair,
|
leader_keypair,
|
||||||
Some(Arc::new(signer_proxy)),
|
&leader_ledger_path,
|
||||||
None,
|
|
||||||
false,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
||||||
leader_pubkey,
|
leader_pubkey,
|
||||||
))),
|
))),
|
||||||
|
Some(Arc::new(signer_proxy)),
|
||||||
|
None,
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -294,14 +294,14 @@ fn test_multi_node_validator_catchup_from_zero() -> result::Result<()> {
|
||||||
let signer_proxy = VoteSignerProxy::new_local(&keypair);
|
let signer_proxy = VoteSignerProxy::new_local(&keypair);
|
||||||
let val = Fullnode::new(
|
let val = Fullnode::new(
|
||||||
validator,
|
validator,
|
||||||
&ledger_path,
|
|
||||||
keypair,
|
keypair,
|
||||||
Some(Arc::new(signer_proxy)),
|
&ledger_path,
|
||||||
Some(leader_data.gossip),
|
|
||||||
false,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
||||||
leader_pubkey,
|
leader_pubkey,
|
||||||
))),
|
))),
|
||||||
|
Some(Arc::new(signer_proxy)),
|
||||||
|
Some(&leader_data),
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
nodes.push(val);
|
nodes.push(val);
|
||||||
|
@ -357,14 +357,14 @@ fn test_multi_node_validator_catchup_from_zero() -> result::Result<()> {
|
||||||
|
|
||||||
let val = Fullnode::new(
|
let val = Fullnode::new(
|
||||||
validator,
|
validator,
|
||||||
&zero_ledger_path,
|
|
||||||
keypair,
|
keypair,
|
||||||
Some(Arc::new(signer_proxy)),
|
&zero_ledger_path,
|
||||||
Some(leader_data.gossip),
|
|
||||||
false,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
||||||
leader_pubkey,
|
leader_pubkey,
|
||||||
))),
|
))),
|
||||||
|
Some(Arc::new(signer_proxy)),
|
||||||
|
Some(&leader_data),
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
nodes.push(val);
|
nodes.push(val);
|
||||||
|
@ -447,14 +447,14 @@ fn test_multi_node_basic() {
|
||||||
let signer_proxy = VoteSignerProxy::new_local(&leader_keypair);
|
let signer_proxy = VoteSignerProxy::new_local(&leader_keypair);
|
||||||
let server = Fullnode::new(
|
let server = Fullnode::new(
|
||||||
leader,
|
leader,
|
||||||
&leader_ledger_path,
|
|
||||||
leader_keypair,
|
leader_keypair,
|
||||||
Some(Arc::new(signer_proxy)),
|
&leader_ledger_path,
|
||||||
None,
|
|
||||||
false,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
||||||
leader_pubkey,
|
leader_pubkey,
|
||||||
))),
|
))),
|
||||||
|
Some(Arc::new(signer_proxy)),
|
||||||
|
None,
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -477,14 +477,14 @@ fn test_multi_node_basic() {
|
||||||
let signer_proxy = VoteSignerProxy::new_local(&keypair);
|
let signer_proxy = VoteSignerProxy::new_local(&keypair);
|
||||||
let val = Fullnode::new(
|
let val = Fullnode::new(
|
||||||
validator,
|
validator,
|
||||||
&ledger_path,
|
|
||||||
keypair,
|
keypair,
|
||||||
Some(Arc::new(signer_proxy)),
|
&ledger_path,
|
||||||
Some(leader_data.gossip),
|
|
||||||
false,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
||||||
leader_pubkey,
|
leader_pubkey,
|
||||||
))),
|
))),
|
||||||
|
Some(Arc::new(signer_proxy)),
|
||||||
|
Some(&leader_data),
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
nodes.push(val);
|
nodes.push(val);
|
||||||
|
@ -557,14 +557,14 @@ fn test_boot_validator_from_file() -> result::Result<()> {
|
||||||
let signer_proxy = VoteSignerProxy::new_local(&leader_keypair);
|
let signer_proxy = VoteSignerProxy::new_local(&leader_keypair);
|
||||||
let leader_fullnode = Fullnode::new(
|
let leader_fullnode = Fullnode::new(
|
||||||
leader,
|
leader,
|
||||||
&leader_ledger_path,
|
|
||||||
leader_keypair,
|
leader_keypair,
|
||||||
Some(Arc::new(signer_proxy)),
|
&leader_ledger_path,
|
||||||
None,
|
|
||||||
false,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
||||||
leader_pubkey,
|
leader_pubkey,
|
||||||
))),
|
))),
|
||||||
|
Some(Arc::new(signer_proxy)),
|
||||||
|
None,
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
let leader_balance =
|
let leader_balance =
|
||||||
|
@ -582,14 +582,14 @@ fn test_boot_validator_from_file() -> result::Result<()> {
|
||||||
let signer_proxy = VoteSignerProxy::new_local(&keypair);
|
let signer_proxy = VoteSignerProxy::new_local(&keypair);
|
||||||
let val_fullnode = Fullnode::new(
|
let val_fullnode = Fullnode::new(
|
||||||
validator,
|
validator,
|
||||||
&ledger_path,
|
|
||||||
keypair,
|
keypair,
|
||||||
Some(Arc::new(signer_proxy)),
|
&ledger_path,
|
||||||
Some(leader_data.gossip),
|
|
||||||
false,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
||||||
leader_pubkey,
|
leader_pubkey,
|
||||||
))),
|
))),
|
||||||
|
Some(Arc::new(signer_proxy)),
|
||||||
|
Some(&leader_data),
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
let mut client = mk_client(&validator_data);
|
let mut client = mk_client(&validator_data);
|
||||||
|
@ -615,14 +615,14 @@ fn create_leader(
|
||||||
let leader_data = leader.info.clone();
|
let leader_data = leader.info.clone();
|
||||||
let leader_fullnode = Fullnode::new(
|
let leader_fullnode = Fullnode::new(
|
||||||
leader,
|
leader,
|
||||||
&ledger_path,
|
|
||||||
leader_keypair,
|
leader_keypair,
|
||||||
Some(signer),
|
&ledger_path,
|
||||||
None,
|
|
||||||
false,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
||||||
leader_data.id,
|
leader_data.id,
|
||||||
))),
|
))),
|
||||||
|
Some(signer),
|
||||||
|
None,
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
(leader_data, leader_fullnode)
|
(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 signer_proxy = VoteSignerProxy::new_local(&keypair);
|
||||||
let val_fullnode = Fullnode::new(
|
let val_fullnode = Fullnode::new(
|
||||||
validator,
|
validator,
|
||||||
&stale_ledger_path,
|
|
||||||
keypair,
|
keypair,
|
||||||
Some(Arc::new(signer_proxy)),
|
&stale_ledger_path,
|
||||||
Some(leader_data.gossip),
|
|
||||||
false,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
||||||
leader_data.id,
|
leader_data.id,
|
||||||
))),
|
))),
|
||||||
|
Some(Arc::new(signer_proxy)),
|
||||||
|
Some(&leader_data),
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -761,14 +761,14 @@ fn test_multi_node_dynamic_network() {
|
||||||
let signer_proxy = VoteSignerProxy::new_local(&leader_keypair);
|
let signer_proxy = VoteSignerProxy::new_local(&leader_keypair);
|
||||||
let server = Fullnode::new(
|
let server = Fullnode::new(
|
||||||
leader,
|
leader,
|
||||||
&leader_ledger_path,
|
|
||||||
leader_keypair,
|
leader_keypair,
|
||||||
Some(Arc::new(signer_proxy)),
|
&leader_ledger_path,
|
||||||
None,
|
|
||||||
true,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
||||||
leader_pubkey,
|
leader_pubkey,
|
||||||
))),
|
))),
|
||||||
|
Some(Arc::new(signer_proxy)),
|
||||||
|
None,
|
||||||
|
true,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
info!(
|
info!(
|
||||||
|
@ -836,14 +836,14 @@ fn test_multi_node_dynamic_network() {
|
||||||
let signer_proxy = VoteSignerProxy::new_local(&keypair);
|
let signer_proxy = VoteSignerProxy::new_local(&keypair);
|
||||||
let val = Fullnode::new(
|
let val = Fullnode::new(
|
||||||
validator,
|
validator,
|
||||||
&ledger_path,
|
|
||||||
keypair,
|
keypair,
|
||||||
Some(Arc::new(signer_proxy)),
|
&ledger_path,
|
||||||
Some(leader_data.gossip),
|
|
||||||
true,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
||||||
leader_pubkey,
|
leader_pubkey,
|
||||||
))),
|
))),
|
||||||
|
Some(Arc::new(signer_proxy)),
|
||||||
|
Some(&leader_data),
|
||||||
|
true,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
(rd, val)
|
(rd, val)
|
||||||
|
@ -1019,12 +1019,12 @@ fn test_leader_to_validator_transition() {
|
||||||
let signer_proxy = VoteSignerProxy::new_local(&leader_keypair);
|
let signer_proxy = VoteSignerProxy::new_local(&leader_keypair);
|
||||||
let mut leader = Fullnode::new(
|
let mut leader = Fullnode::new(
|
||||||
leader_node,
|
leader_node,
|
||||||
&leader_ledger_path,
|
|
||||||
leader_keypair,
|
leader_keypair,
|
||||||
Some(Arc::new(signer_proxy)),
|
&leader_ledger_path,
|
||||||
Some(leader_info.gossip),
|
|
||||||
false,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))),
|
Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))),
|
||||||
|
Some(Arc::new(signer_proxy)),
|
||||||
|
Some(&leader_info),
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -1174,12 +1174,12 @@ fn test_leader_validator_basic() {
|
||||||
let signer_proxy = VoteSignerProxy::new_local(&validator_keypair);
|
let signer_proxy = VoteSignerProxy::new_local(&validator_keypair);
|
||||||
let mut validator = Fullnode::new(
|
let mut validator = Fullnode::new(
|
||||||
validator_node,
|
validator_node,
|
||||||
&validator_ledger_path,
|
|
||||||
validator_keypair,
|
validator_keypair,
|
||||||
Some(Arc::new(signer_proxy)),
|
&validator_ledger_path,
|
||||||
Some(leader_info.gossip),
|
|
||||||
false,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))),
|
Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))),
|
||||||
|
Some(Arc::new(signer_proxy)),
|
||||||
|
Some(&leader_info),
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -1187,12 +1187,12 @@ fn test_leader_validator_basic() {
|
||||||
let signer_proxy = VoteSignerProxy::new_local(&leader_keypair);
|
let signer_proxy = VoteSignerProxy::new_local(&leader_keypair);
|
||||||
let mut leader = Fullnode::new(
|
let mut leader = Fullnode::new(
|
||||||
leader_node,
|
leader_node,
|
||||||
&leader_ledger_path,
|
|
||||||
leader_keypair,
|
leader_keypair,
|
||||||
Some(Arc::new(signer_proxy)),
|
&leader_ledger_path,
|
||||||
Some(leader_info.gossip),
|
|
||||||
false,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))),
|
Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))),
|
||||||
|
Some(Arc::new(signer_proxy)),
|
||||||
|
Some(&leader_info),
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -1382,12 +1382,12 @@ fn test_dropped_handoff_recovery() {
|
||||||
ledger_paths.push(bootstrap_leader_ledger_path.clone());
|
ledger_paths.push(bootstrap_leader_ledger_path.clone());
|
||||||
let bootstrap_leader = Fullnode::new(
|
let bootstrap_leader = Fullnode::new(
|
||||||
bootstrap_leader_node,
|
bootstrap_leader_node,
|
||||||
&bootstrap_leader_ledger_path,
|
|
||||||
bootstrap_leader_keypair,
|
bootstrap_leader_keypair,
|
||||||
Some(Arc::new(signer_proxy)),
|
&bootstrap_leader_ledger_path,
|
||||||
Some(bootstrap_leader_info.gossip),
|
|
||||||
false,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))),
|
Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))),
|
||||||
|
Some(Arc::new(signer_proxy)),
|
||||||
|
Some(&bootstrap_leader_info),
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -1395,22 +1395,22 @@ fn test_dropped_handoff_recovery() {
|
||||||
|
|
||||||
// Start up the validators other than the "next_leader" validator
|
// Start up the validators other than the "next_leader" validator
|
||||||
for i in 0..(N - 1) {
|
for i in 0..(N - 1) {
|
||||||
let kp = Arc::new(Keypair::new());
|
let keypair = Arc::new(Keypair::new());
|
||||||
let validator_ledger_path =
|
let validator_ledger_path =
|
||||||
tmp_copy_ledger(&genesis_ledger_path, "test_dropped_handoff_recovery");
|
tmp_copy_ledger(&genesis_ledger_path, "test_dropped_handoff_recovery");
|
||||||
ledger_paths.push(validator_ledger_path.clone());
|
ledger_paths.push(validator_ledger_path.clone());
|
||||||
let validator_id = kp.pubkey();
|
let validator_id = keypair.pubkey();
|
||||||
info!("validator {}: {}", i, validator_id);
|
info!("validator {}: {}", i, validator_id);
|
||||||
let validator_node = Node::new_localhost_with_pubkey(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(
|
let validator = Fullnode::new(
|
||||||
validator_node,
|
validator_node,
|
||||||
|
keypair,
|
||||||
&validator_ledger_path,
|
&validator_ledger_path,
|
||||||
kp,
|
|
||||||
Some(Arc::new(signer_proxy)),
|
|
||||||
Some(bootstrap_leader_info.gossip),
|
|
||||||
false,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))),
|
Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))),
|
||||||
|
Some(Arc::new(signer_proxy)),
|
||||||
|
Some(&bootstrap_leader_info),
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -1432,12 +1432,12 @@ fn test_dropped_handoff_recovery() {
|
||||||
let signer_proxy = VoteSignerProxy::new_local(&next_leader_keypair);
|
let signer_proxy = VoteSignerProxy::new_local(&next_leader_keypair);
|
||||||
let next_leader = Fullnode::new(
|
let next_leader = Fullnode::new(
|
||||||
next_leader_node,
|
next_leader_node,
|
||||||
&next_leader_ledger_path,
|
|
||||||
next_leader_keypair,
|
next_leader_keypair,
|
||||||
Some(Arc::new(signer_proxy)),
|
&next_leader_ledger_path,
|
||||||
Some(bootstrap_leader_info.gossip),
|
|
||||||
false,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))),
|
Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))),
|
||||||
|
Some(Arc::new(signer_proxy)),
|
||||||
|
Some(&bootstrap_leader_info),
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -1582,12 +1582,12 @@ fn test_full_leader_validator_network() {
|
||||||
Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config)));
|
Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config)));
|
||||||
let validator = Fullnode::new(
|
let validator = Fullnode::new(
|
||||||
validator_node,
|
validator_node,
|
||||||
&validator_ledger_path,
|
|
||||||
kp.clone(),
|
kp.clone(),
|
||||||
Some(Arc::new(signer_proxy)),
|
&validator_ledger_path,
|
||||||
Some(bootstrap_leader_info.gossip),
|
|
||||||
false,
|
|
||||||
leader_scheduler.clone(),
|
leader_scheduler.clone(),
|
||||||
|
Some(Arc::new(signer_proxy)),
|
||||||
|
Some(&bootstrap_leader_info),
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -1600,12 +1600,12 @@ fn test_full_leader_validator_network() {
|
||||||
let leader_scheduler = Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config)));
|
let leader_scheduler = Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config)));
|
||||||
let bootstrap_leader = Fullnode::new(
|
let bootstrap_leader = Fullnode::new(
|
||||||
bootstrap_leader_node,
|
bootstrap_leader_node,
|
||||||
&bootstrap_leader_ledger_path,
|
|
||||||
leader_keypair.clone(),
|
leader_keypair.clone(),
|
||||||
Some(Arc::new(signer_proxy)),
|
&bootstrap_leader_ledger_path,
|
||||||
Some(bootstrap_leader_info.gossip),
|
|
||||||
false,
|
|
||||||
leader_scheduler.clone(),
|
leader_scheduler.clone(),
|
||||||
|
Some(Arc::new(signer_proxy)),
|
||||||
|
Some(&bootstrap_leader_info),
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -1778,12 +1778,12 @@ fn test_broadcast_last_tick() {
|
||||||
let signer_proxy = VoteSignerProxy::new_local(&bootstrap_leader_keypair);
|
let signer_proxy = VoteSignerProxy::new_local(&bootstrap_leader_keypair);
|
||||||
let mut bootstrap_leader = Fullnode::new(
|
let mut bootstrap_leader = Fullnode::new(
|
||||||
bootstrap_leader_node,
|
bootstrap_leader_node,
|
||||||
&bootstrap_leader_ledger_path,
|
|
||||||
bootstrap_leader_keypair,
|
bootstrap_leader_keypair,
|
||||||
Some(Arc::new(signer_proxy)),
|
&bootstrap_leader_ledger_path,
|
||||||
Some(bootstrap_leader_info.gossip),
|
|
||||||
false,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))),
|
Arc::new(RwLock::new(LeaderScheduler::new(&leader_scheduler_config))),
|
||||||
|
Some(Arc::new(signer_proxy)),
|
||||||
|
Some(&bootstrap_leader_info),
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -51,8 +51,8 @@ fn test_replicator_startup() {
|
||||||
|
|
||||||
let leader = Fullnode::new_with_storage_rotate(
|
let leader = Fullnode::new_with_storage_rotate(
|
||||||
leader_node,
|
leader_node,
|
||||||
&leader_ledger_path,
|
|
||||||
leader_keypair,
|
leader_keypair,
|
||||||
|
&leader_ledger_path,
|
||||||
Some(Arc::new(signer_proxy)),
|
Some(Arc::new(signer_proxy)),
|
||||||
None,
|
None,
|
||||||
false,
|
false,
|
||||||
|
@ -81,10 +81,10 @@ fn test_replicator_startup() {
|
||||||
|
|
||||||
let validator = Fullnode::new_with_storage_rotate(
|
let validator = Fullnode::new_with_storage_rotate(
|
||||||
validator_node,
|
validator_node,
|
||||||
&validator_ledger_path,
|
|
||||||
validator_keypair,
|
validator_keypair,
|
||||||
|
&validator_ledger_path,
|
||||||
Some(Arc::new(signer_proxy)),
|
Some(Arc::new(signer_proxy)),
|
||||||
Some(leader_info.gossip),
|
Some(&leader_info),
|
||||||
false,
|
false,
|
||||||
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
||||||
leader_info.id,
|
leader_info.id,
|
||||||
|
@ -278,14 +278,14 @@ fn test_replicator_startup_ledger_hang() {
|
||||||
|
|
||||||
let _ = Fullnode::new(
|
let _ = Fullnode::new(
|
||||||
leader_node,
|
leader_node,
|
||||||
&leader_ledger_path,
|
|
||||||
leader_keypair,
|
leader_keypair,
|
||||||
Some(Arc::new(signer_proxy)),
|
&leader_ledger_path,
|
||||||
None,
|
|
||||||
false,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
||||||
leader_info.id.clone(),
|
leader_info.id.clone(),
|
||||||
))),
|
))),
|
||||||
|
Some(Arc::new(signer_proxy)),
|
||||||
|
None,
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -295,14 +295,14 @@ fn test_replicator_startup_ledger_hang() {
|
||||||
|
|
||||||
let _ = Fullnode::new(
|
let _ = Fullnode::new(
|
||||||
validator_node,
|
validator_node,
|
||||||
&validator_ledger_path,
|
|
||||||
validator_keypair,
|
validator_keypair,
|
||||||
Some(Arc::new(signer_proxy)),
|
&validator_ledger_path,
|
||||||
Some(leader_info.gossip),
|
|
||||||
false,
|
|
||||||
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
Arc::new(RwLock::new(LeaderScheduler::from_bootstrap_leader(
|
||||||
leader_info.id,
|
leader_info.id,
|
||||||
))),
|
))),
|
||||||
|
Some(Arc::new(signer_proxy)),
|
||||||
|
Some(&leader_info),
|
||||||
|
false,
|
||||||
None,
|
None,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue