Fix invalid Barrier transactions (#3139)
This commit is contained in:
parent
ca99ebaaf4
commit
ec034a5cb9
|
@ -7,6 +7,7 @@ use solana::thin_client::ThinClient;
|
|||
use solana_drone::drone::request_airdrop_transaction;
|
||||
use solana_metrics::influxdb;
|
||||
use solana_sdk::hash::Hash;
|
||||
use solana_sdk::pubkey::Pubkey;
|
||||
use solana_sdk::signature::{Keypair, KeypairUtil};
|
||||
use solana_sdk::system_transaction::SystemTransaction;
|
||||
use solana_sdk::timing::timestamp;
|
||||
|
@ -103,7 +104,8 @@ pub fn sample_tx_count(
|
|||
pub fn send_barrier_transaction(
|
||||
barrier_client: &mut ThinClient,
|
||||
blockhash: &mut Hash,
|
||||
id: &Keypair,
|
||||
source_keypair: &Keypair,
|
||||
dest_id: &Pubkey,
|
||||
) {
|
||||
let transfer_start = Instant::now();
|
||||
|
||||
|
@ -118,7 +120,7 @@ pub fn send_barrier_transaction(
|
|||
|
||||
*blockhash = barrier_client.get_recent_blockhash();
|
||||
let signature = barrier_client
|
||||
.transfer(0, &id, id.pubkey(), blockhash)
|
||||
.transfer(0, &source_keypair, *dest_id, blockhash)
|
||||
.expect("Unable to send barrier transaction");
|
||||
|
||||
let confirmatiom = barrier_client.poll_for_signature(&signature);
|
||||
|
@ -140,7 +142,7 @@ pub fn send_barrier_transaction(
|
|||
// Sanity check that the client balance is still 1
|
||||
let balance = barrier_client
|
||||
.poll_balance_with_timeout(
|
||||
&id.pubkey(),
|
||||
&source_keypair.pubkey(),
|
||||
&Duration::from_millis(100),
|
||||
&Duration::from_secs(10),
|
||||
)
|
||||
|
|
|
@ -9,7 +9,7 @@ use solana::gen_keys::GenKeys;
|
|||
use solana::service::Service;
|
||||
use solana::thin_client::poll_gossip_for_leader;
|
||||
use solana_metrics;
|
||||
use solana_sdk::signature::KeypairUtil;
|
||||
use solana_sdk::signature::{Keypair, KeypairUtil};
|
||||
|
||||
use std::collections::VecDeque;
|
||||
use std::process::exit;
|
||||
|
@ -146,7 +146,8 @@ fn main() {
|
|||
target /= MAX_SPENDS_PER_TX;
|
||||
}
|
||||
let gen_keypairs = rnd.gen_n_keypairs(total_keys as u64);
|
||||
let barrier_id = rnd.gen_n_keypairs(1).pop().unwrap();
|
||||
let barrier_source_keypair = Keypair::new();
|
||||
let barrier_dest_id = Keypair::new().pubkey();
|
||||
|
||||
println!("Get tokens...");
|
||||
let num_tokens_per_account = 20;
|
||||
|
@ -166,7 +167,7 @@ fn main() {
|
|||
}
|
||||
let start = gen_keypairs.len() - (tx_count * 2) as usize;
|
||||
let keypairs = &gen_keypairs[start..];
|
||||
airdrop_tokens(&mut barrier_client, &drone_addr, &barrier_id, 1);
|
||||
airdrop_tokens(&mut barrier_client, &drone_addr, &barrier_source_keypair, 1);
|
||||
|
||||
println!("Get last ID...");
|
||||
let mut blockhash = client.get_recent_blockhash();
|
||||
|
@ -253,7 +254,12 @@ fn main() {
|
|||
// It's not feasible (would take too much time) to confirm each of the `tx_count / 2`
|
||||
// transactions sent by `generate_txs()` so instead send and confirm a single transaction
|
||||
// to validate the network is still functional.
|
||||
send_barrier_transaction(&mut barrier_client, &mut blockhash, &barrier_id);
|
||||
send_barrier_transaction(
|
||||
&mut barrier_client,
|
||||
&mut blockhash,
|
||||
&barrier_source_keypair,
|
||||
&barrier_dest_id,
|
||||
);
|
||||
|
||||
i += 1;
|
||||
if should_switch_directions(num_tokens_per_account, i) {
|
||||
|
|
Loading…
Reference in New Issue