bench needs to discover leader as well
This commit is contained in:
parent
a002148098
commit
bbce08a67b
|
@ -283,8 +283,8 @@ fn airdrop_tokens(client: &mut ThinClient, leader: &NodeInfo, id: &Keypair, tx_c
|
||||||
if starting_balance < tx_count {
|
if starting_balance < tx_count {
|
||||||
let airdrop_amount = tx_count - starting_balance;
|
let airdrop_amount = tx_count - starting_balance;
|
||||||
println!(
|
println!(
|
||||||
"Airdropping {:?} tokens from {}",
|
"Airdropping {:?} tokens from {} for {}",
|
||||||
airdrop_amount, drone_addr
|
airdrop_amount, drone_addr, id.pubkey(),
|
||||||
);
|
);
|
||||||
|
|
||||||
request_airdrop(&drone_addr, &id.pubkey(), airdrop_amount as u64).unwrap();
|
request_airdrop(&drone_addr, &id.pubkey(), airdrop_amount as u64).unwrap();
|
||||||
|
@ -304,7 +304,7 @@ fn airdrop_tokens(client: &mut ThinClient, leader: &NodeInfo, id: &Keypair, tx_c
|
||||||
}
|
}
|
||||||
metrics_submit_token_balance(current_balance);
|
metrics_submit_token_balance(current_balance);
|
||||||
if current_balance - starting_balance != airdrop_amount {
|
if current_balance - starting_balance != airdrop_amount {
|
||||||
println!("Airdrop failed!");
|
println!("Airdrop failed! {} {} {}", id.pubkey(), current_balance, starting_balance);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -495,7 +495,7 @@ fn main() {
|
||||||
|
|
||||||
let exit_signal = Arc::new(AtomicBool::new(false));
|
let exit_signal = Arc::new(AtomicBool::new(false));
|
||||||
let mut c_threads = vec![];
|
let mut c_threads = vec![];
|
||||||
let validators = converge(&leader, &exit_signal, num_nodes, &mut c_threads, addr);
|
let (validators, leader) = converge(&leader, &exit_signal, num_nodes, &mut c_threads, addr);
|
||||||
|
|
||||||
println!(" Node address | Node identifier");
|
println!(" Node address | Node identifier");
|
||||||
println!("----------------------+------------------");
|
println!("----------------------+------------------");
|
||||||
|
@ -515,11 +515,16 @@ fn main() {
|
||||||
);
|
);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
if leader.is_none() {
|
||||||
|
println!("no leader");
|
||||||
|
}
|
||||||
|
|
||||||
if matches.is_present("converge_only") {
|
if matches.is_present("converge_only") {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
let leader = leader.unwrap();
|
||||||
|
|
||||||
|
println!("leader is at {} {}", leader.contact_info.rpu, leader.id);
|
||||||
let mut client = mk_client(&leader);
|
let mut client = mk_client(&leader);
|
||||||
let mut barrier_client = mk_client(&leader);
|
let mut barrier_client = mk_client(&leader);
|
||||||
|
|
||||||
|
@ -656,7 +661,7 @@ fn converge(
|
||||||
num_nodes: usize,
|
num_nodes: usize,
|
||||||
threads: &mut Vec<JoinHandle<()>>,
|
threads: &mut Vec<JoinHandle<()>>,
|
||||||
addr: IpAddr,
|
addr: IpAddr,
|
||||||
) -> Vec<NodeInfo> {
|
) -> (Vec<NodeInfo>, Option<NodeInfo>) {
|
||||||
//lets spy on the network
|
//lets spy on the network
|
||||||
let (node, gossip_socket, gossip_send_socket) = Crdt::spy_node(addr);
|
let (node, gossip_socket, gossip_send_socket) = Crdt::spy_node(addr);
|
||||||
let mut spy_crdt = Crdt::new(node).expect("Crdt::new");
|
let mut spy_crdt = Crdt::new(node).expect("Crdt::new");
|
||||||
|
@ -675,6 +680,12 @@ fn converge(
|
||||||
let mut v: Vec<NodeInfo> = vec![];
|
let mut v: Vec<NodeInfo> = vec![];
|
||||||
//wait for the network to converge, 30 seconds should be plenty
|
//wait for the network to converge, 30 seconds should be plenty
|
||||||
for _ in 0..30 {
|
for _ in 0..30 {
|
||||||
|
if spy_ref
|
||||||
|
.read()
|
||||||
|
.unwrap().leader_data().is_none() {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
v = spy_ref
|
v = spy_ref
|
||||||
.read()
|
.read()
|
||||||
.unwrap()
|
.unwrap()
|
||||||
|
@ -683,6 +694,7 @@ fn converge(
|
||||||
.filter(|x| Crdt::is_valid_address(x.contact_info.rpu))
|
.filter(|x| Crdt::is_valid_address(x.contact_info.rpu))
|
||||||
.cloned()
|
.cloned()
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
if v.len() >= num_nodes {
|
if v.len() >= num_nodes {
|
||||||
println!("CONVERGED!");
|
println!("CONVERGED!");
|
||||||
break;
|
break;
|
||||||
|
@ -696,7 +708,8 @@ fn converge(
|
||||||
sleep(Duration::new(1, 0));
|
sleep(Duration::new(1, 0));
|
||||||
}
|
}
|
||||||
threads.extend(ncp.thread_hdls().into_iter());
|
threads.extend(ncp.thread_hdls().into_iter());
|
||||||
v
|
let leader = spy_ref.read().unwrap().leader_data().cloned();
|
||||||
|
(v,leader)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn read_leader(path: &str) -> Config {
|
fn read_leader(path: &str) -> Config {
|
||||||
|
|
Loading…
Reference in New Issue