consolidate tmp ledgers
This commit is contained in:
committed by
Greg Fitzgerald
parent
31e779d3f2
commit
d0f43e9934
@ -1393,7 +1393,7 @@ mod tests {
|
|||||||
};
|
};
|
||||||
use entry::Entry;
|
use entry::Entry;
|
||||||
use hash::{hash, Hash};
|
use hash::{hash, Hash};
|
||||||
use ledger::{LedgerWindow, LedgerWriter};
|
use ledger::{get_tmp_ledger_path, LedgerWindow, LedgerWriter};
|
||||||
use logger;
|
use logger;
|
||||||
use packet::SharedBlob;
|
use packet::SharedBlob;
|
||||||
use result::Error;
|
use result::Error;
|
||||||
@ -1815,11 +1815,7 @@ mod tests {
|
|||||||
assert!(rv.is_none());
|
assert!(rv.is_none());
|
||||||
|
|
||||||
fn tmp_ledger(name: &str) -> String {
|
fn tmp_ledger(name: &str) -> String {
|
||||||
use std::env;
|
let path = get_tmp_ledger_path(name);
|
||||||
let out_dir = env::var("OUT_DIR").unwrap_or_else(|_| "target".to_string());
|
|
||||||
let keypair = Keypair::new();
|
|
||||||
|
|
||||||
let path = format!("{}/tmp/ledger-{}-{}", out_dir, name, keypair.pubkey());
|
|
||||||
|
|
||||||
let mut writer = LedgerWriter::open(&path, true).unwrap();
|
let mut writer = LedgerWriter::open(&path, true).unwrap();
|
||||||
let zero = Hash::default();
|
let zero = Hash::default();
|
||||||
|
11
src/drone.rs
11
src/drone.rs
@ -228,6 +228,7 @@ mod tests {
|
|||||||
use drone::{Drone, DroneRequest, REQUEST_CAP, TIME_SLICE};
|
use drone::{Drone, DroneRequest, REQUEST_CAP, TIME_SLICE};
|
||||||
use fullnode::Fullnode;
|
use fullnode::Fullnode;
|
||||||
use leader_scheduler::LeaderScheduler;
|
use leader_scheduler::LeaderScheduler;
|
||||||
|
use ledger::get_tmp_ledger_path;
|
||||||
use logger;
|
use logger;
|
||||||
use mint::Mint;
|
use mint::Mint;
|
||||||
use netutil::get_ip_addr;
|
use netutil::get_ip_addr;
|
||||||
@ -305,14 +306,6 @@ mod tests {
|
|||||||
assert_eq!(drone.request_cap, REQUEST_CAP);
|
assert_eq!(drone.request_cap, REQUEST_CAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn tmp_ledger_path(name: &str) -> String {
|
|
||||||
use std::env;
|
|
||||||
let out_dir = env::var("OUT_DIR").unwrap_or_else(|_| "target".to_string());
|
|
||||||
let keypair = Keypair::new();
|
|
||||||
|
|
||||||
format!("{}/tmp/ledger-{}-{}", out_dir, name, keypair.pubkey())
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
#[ignore]
|
||||||
fn test_send_airdrop() {
|
fn test_send_airdrop() {
|
||||||
@ -328,7 +321,7 @@ mod tests {
|
|||||||
let bob_pubkey = Keypair::new().pubkey();
|
let bob_pubkey = Keypair::new().pubkey();
|
||||||
let carlos_pubkey = Keypair::new().pubkey();
|
let carlos_pubkey = Keypair::new().pubkey();
|
||||||
let leader_data = leader.info.clone();
|
let leader_data = leader.info.clone();
|
||||||
let ledger_path = tmp_ledger_path("send_airdrop");
|
let ledger_path = get_tmp_ledger_path("send_airdrop");
|
||||||
|
|
||||||
let server = Fullnode::new_with_bank(
|
let server = Fullnode::new_with_bank(
|
||||||
leader_keypair,
|
leader_keypair,
|
||||||
|
@ -603,7 +603,7 @@ mod tests {
|
|||||||
use cluster_info::Node;
|
use cluster_info::Node;
|
||||||
use fullnode::{Fullnode, NodeRole, TvuReturnType};
|
use fullnode::{Fullnode, NodeRole, TvuReturnType};
|
||||||
use leader_scheduler::{make_active_set_entries, LeaderScheduler, LeaderSchedulerConfig};
|
use leader_scheduler::{make_active_set_entries, LeaderScheduler, LeaderSchedulerConfig};
|
||||||
use ledger::{create_sample_ledger, genesis, LedgerWriter};
|
use ledger::{create_tmp_genesis, create_tmp_sample_ledger, LedgerWriter};
|
||||||
use packet::make_consecutive_blobs;
|
use packet::make_consecutive_blobs;
|
||||||
use service::Service;
|
use service::Service;
|
||||||
use signature::{Keypair, KeypairUtil};
|
use signature::{Keypair, KeypairUtil};
|
||||||
@ -618,7 +618,7 @@ mod tests {
|
|||||||
fn validator_exit() {
|
fn validator_exit() {
|
||||||
let keypair = Keypair::new();
|
let keypair = Keypair::new();
|
||||||
let tn = Node::new_localhost_with_pubkey(keypair.pubkey());
|
let tn = Node::new_localhost_with_pubkey(keypair.pubkey());
|
||||||
let (mint, validator_ledger_path) = genesis("validator_exit", 10_000);
|
let (mint, validator_ledger_path) = create_tmp_genesis("validator_exit", 10_000);
|
||||||
let bank = Bank::new(&mint);
|
let bank = Bank::new(&mint);
|
||||||
let entry = tn.info.clone();
|
let entry = tn.info.clone();
|
||||||
let genesis_entries = &mint.create_entries();
|
let genesis_entries = &mint.create_entries();
|
||||||
@ -648,7 +648,7 @@ mod tests {
|
|||||||
let keypair = Keypair::new();
|
let keypair = Keypair::new();
|
||||||
let tn = Node::new_localhost_with_pubkey(keypair.pubkey());
|
let tn = Node::new_localhost_with_pubkey(keypair.pubkey());
|
||||||
let (mint, validator_ledger_path) =
|
let (mint, validator_ledger_path) =
|
||||||
genesis(&format!("validator_parallel_exit_{}", i), 10_000);
|
create_tmp_genesis(&format!("validator_parallel_exit_{}", i), 10_000);
|
||||||
ledger_paths.push(validator_ledger_path.clone());
|
ledger_paths.push(validator_ledger_path.clone());
|
||||||
let bank = Bank::new(&mint);
|
let bank = Bank::new(&mint);
|
||||||
let entry = tn.info.clone();
|
let entry = tn.info.clone();
|
||||||
@ -696,7 +696,7 @@ mod tests {
|
|||||||
|
|
||||||
// Make a common mint and a genesis entry for both leader + validator's ledgers
|
// Make a common mint and a genesis entry for both leader + validator's ledgers
|
||||||
let (mint, bootstrap_leader_ledger_path, genesis_entries) =
|
let (mint, bootstrap_leader_ledger_path, genesis_entries) =
|
||||||
create_sample_ledger("test_wrong_role_transition", 10_000);
|
create_tmp_sample_ledger("test_wrong_role_transition", 10_000);
|
||||||
|
|
||||||
let last_id = genesis_entries
|
let last_id = genesis_entries
|
||||||
.last()
|
.last()
|
||||||
@ -762,6 +762,7 @@ mod tests {
|
|||||||
panic!("Expected node to be the leader");
|
panic!("Expected node to be the leader");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
let _ignored = remove_dir_all(&bootstrap_leader_ledger_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@ -774,7 +775,7 @@ mod tests {
|
|||||||
|
|
||||||
// Create validator identity
|
// Create validator identity
|
||||||
let (mint, validator_ledger_path, genesis_entries) =
|
let (mint, validator_ledger_path, genesis_entries) =
|
||||||
create_sample_ledger("test_validator_to_leader_transition", 10_000);
|
create_tmp_sample_ledger("test_validator_to_leader_transition", 10_000);
|
||||||
let validator_keypair = Keypair::new();
|
let validator_keypair = Keypair::new();
|
||||||
let validator_node = Node::new_localhost_with_pubkey(validator_keypair.pubkey());
|
let validator_node = Node::new_localhost_with_pubkey(validator_keypair.pubkey());
|
||||||
let validator_info = validator_node.info.clone();
|
let validator_info = validator_node.info.clone();
|
||||||
|
@ -595,21 +595,21 @@ pub fn next_entries(
|
|||||||
next_entries_mut(&mut id, &mut num_hashes, transactions)
|
next_entries_mut(&mut id, &mut num_hashes, transactions)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn tmp_ledger_path(name: &str) -> String {
|
pub fn get_tmp_ledger_path(name: &str) -> String {
|
||||||
use std::env;
|
use std::env;
|
||||||
let out_dir = env::var("OUT_DIR").unwrap_or_else(|_| "target".to_string());
|
let out_dir = env::var("OUT_DIR").unwrap_or_else(|_| "target".to_string());
|
||||||
let keypair = Keypair::new();
|
let keypair = Keypair::new();
|
||||||
|
|
||||||
format!("{}/tmp/ledger-{}-{}", out_dir, name, keypair.pubkey())
|
let path = format!("{}/tmp/ledger-{}-{}", out_dir, name, keypair.pubkey());
|
||||||
|
|
||||||
|
// whack any possible collision
|
||||||
|
let _ignored = remove_dir_all(&path);
|
||||||
|
|
||||||
|
path
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
pub fn create_tmp_ledger_with_mint(name: &str, mint: &Mint) -> String {
|
||||||
pub fn tmp_ledger_with_mint(name: &str, mint: &Mint) -> String {
|
let path = get_tmp_ledger_path(name);
|
||||||
use std::env;
|
|
||||||
let out_dir = env::var("OUT_DIR").unwrap_or_else(|_| "target".to_string());
|
|
||||||
let keypair = Keypair::new();
|
|
||||||
|
|
||||||
let path = format!("{}/tmp-ledger-{}-{}", out_dir, name, keypair.pubkey());
|
|
||||||
|
|
||||||
let mut writer = LedgerWriter::open(&path, true).unwrap();
|
let mut writer = LedgerWriter::open(&path, true).unwrap();
|
||||||
writer.write_entries(mint.create_entries()).unwrap();
|
writer.write_entries(mint.create_entries()).unwrap();
|
||||||
@ -617,34 +617,20 @@ pub fn tmp_ledger_with_mint(name: &str, mint: &Mint) -> String {
|
|||||||
path
|
path
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
pub fn create_tmp_genesis(name: &str, num: i64) -> (Mint, String) {
|
||||||
pub fn genesis(name: &str, num: i64) -> (Mint, String) {
|
|
||||||
let mint = Mint::new(num);
|
let mint = Mint::new(num);
|
||||||
let path = tmp_ledger_path(name);
|
let path = create_tmp_ledger_with_mint(name, &mint);
|
||||||
let mut writer = LedgerWriter::open(&path, true).unwrap();
|
|
||||||
writer.write_entries(mint.create_entries()).unwrap();
|
|
||||||
|
|
||||||
(mint, path)
|
(mint, path)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn create_ticks(num_ticks: usize, hash: &mut Hash) -> Vec<Entry> {
|
pub fn create_tmp_sample_ledger(name: &str, num: i64) -> (Mint, String, Vec<Entry>) {
|
||||||
let mut ticks = Vec::with_capacity(num_ticks);
|
|
||||||
let mut num_hashes = 0;
|
|
||||||
for _ in 0..num_ticks {
|
|
||||||
ticks.push(Entry::new_mut(hash, &mut num_hashes, vec![]));
|
|
||||||
}
|
|
||||||
|
|
||||||
ticks
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn create_sample_ledger(name: &str, num: i64) -> (Mint, String, Vec<Entry>) {
|
|
||||||
let mint = Mint::new(num);
|
let mint = Mint::new(num);
|
||||||
let path = tmp_ledger_path(name);
|
let path = get_tmp_ledger_path(name);
|
||||||
|
|
||||||
// Create the entries
|
// Create the entries
|
||||||
let mut genesis = mint.create_entries();
|
let mut genesis = mint.create_entries();
|
||||||
let ticks = create_ticks(1, &mut mint.last_id());
|
genesis.extend(vec![Entry::new(&mint.last_id(), 0, vec![])]);
|
||||||
genesis.extend(ticks);
|
|
||||||
|
|
||||||
let mut writer = LedgerWriter::open(&path, true).unwrap();
|
let mut writer = LedgerWriter::open(&path, true).unwrap();
|
||||||
writer.write_entries(genesis.clone()).unwrap();
|
writer.write_entries(genesis.clone()).unwrap();
|
||||||
@ -819,7 +805,7 @@ mod tests {
|
|||||||
fn test_ledger_reader_writer() {
|
fn test_ledger_reader_writer() {
|
||||||
use logger;
|
use logger;
|
||||||
logger::setup();
|
logger::setup();
|
||||||
let ledger_path = tmp_ledger_path("test_ledger_reader_writer");
|
let ledger_path = get_tmp_ledger_path("test_ledger_reader_writer");
|
||||||
let entries = make_tiny_test_entries(10);
|
let entries = make_tiny_test_entries(10);
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -899,7 +885,7 @@ mod tests {
|
|||||||
logger::setup();
|
logger::setup();
|
||||||
|
|
||||||
let entries = make_tiny_test_entries(10);
|
let entries = make_tiny_test_entries(10);
|
||||||
let ledger_path = tmp_ledger_path("test_recover_ledger");
|
let ledger_path = get_tmp_ledger_path("test_recover_ledger");
|
||||||
|
|
||||||
// truncate data file, tests recover inside read_ledger_check()
|
// truncate data file, tests recover inside read_ledger_check()
|
||||||
truncated_last_entry(&ledger_path, entries.clone());
|
truncated_last_entry(&ledger_path, entries.clone());
|
||||||
@ -950,7 +936,7 @@ mod tests {
|
|||||||
logger::setup();
|
logger::setup();
|
||||||
|
|
||||||
let entries = make_tiny_test_entries(10);
|
let entries = make_tiny_test_entries(10);
|
||||||
let ledger_path = tmp_ledger_path("test_verify_ledger");
|
let ledger_path = get_tmp_ledger_path("test_verify_ledger");
|
||||||
{
|
{
|
||||||
let mut writer = LedgerWriter::open(&ledger_path, true).unwrap();
|
let mut writer = LedgerWriter::open(&ledger_path, true).unwrap();
|
||||||
writer.write_entries(entries.clone()).unwrap();
|
writer.write_entries(entries.clone()).unwrap();
|
||||||
@ -967,7 +953,7 @@ mod tests {
|
|||||||
use logger;
|
use logger;
|
||||||
logger::setup();
|
logger::setup();
|
||||||
let entries = make_tiny_test_entries(10);
|
let entries = make_tiny_test_entries(10);
|
||||||
let ledger_path = tmp_ledger_path("test_raw_entries");
|
let ledger_path = get_tmp_ledger_path("test_raw_entries");
|
||||||
{
|
{
|
||||||
let mut writer = LedgerWriter::open(&ledger_path, true).unwrap();
|
let mut writer = LedgerWriter::open(&ledger_path, true).unwrap();
|
||||||
writer.write_entries(entries.clone()).unwrap();
|
writer.write_entries(entries.clone()).unwrap();
|
||||||
@ -1018,10 +1004,14 @@ mod tests {
|
|||||||
let (num_entries, bytes6) = window.get_entries_bytes(9, 1, &mut buf).unwrap();
|
let (num_entries, bytes6) = window.get_entries_bytes(9, 1, &mut buf).unwrap();
|
||||||
assert_eq!(num_entries, 1);
|
assert_eq!(num_entries, 1);
|
||||||
let bytes6 = bytes6 as usize;
|
let bytes6 = bytes6 as usize;
|
||||||
assert_eq!(bytes6, bytes);
|
|
||||||
|
let entry: Entry = deserialize(&buf[size_of::<u64>()..bytes6]).unwrap();
|
||||||
|
assert_eq!(entry, entries[9]);
|
||||||
|
|
||||||
// Read out of range
|
// Read out of range
|
||||||
assert!(window.get_entries_bytes(20, 2, &mut buf).is_err());
|
assert!(window.get_entries_bytes(20, 2, &mut buf).is_err());
|
||||||
|
|
||||||
|
let _ignored = remove_dir_all(&ledger_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -190,8 +190,8 @@ impl ReplicateStage {
|
|||||||
return Some(ReplicateStageReturnType::LeaderRotation(
|
return Some(ReplicateStageReturnType::LeaderRotation(
|
||||||
entry_height_,
|
entry_height_,
|
||||||
// We should never start the TPU / this stage on an exact entry that causes leader
|
// We should never start the TPU / this stage on an exact entry that causes leader
|
||||||
// rotation (Fullnode should automatically transition on startup if it detects
|
// rotation (Fullnode should automatically transition on startup if it detects
|
||||||
// are no longer a validator. Hence we can assume that some entry must have
|
// are no longer a validator. Hence we can assume that some entry must have
|
||||||
// triggered leader rotation
|
// triggered leader rotation
|
||||||
last_entry_id.expect("Must exist an entry that triggered rotation"),
|
last_entry_id.expect("Must exist an entry that triggered rotation"),
|
||||||
));
|
));
|
||||||
@ -248,11 +248,12 @@ mod test {
|
|||||||
use cluster_info::{ClusterInfo, Node};
|
use cluster_info::{ClusterInfo, Node};
|
||||||
use fullnode::Fullnode;
|
use fullnode::Fullnode;
|
||||||
use leader_scheduler::{make_active_set_entries, LeaderScheduler, LeaderSchedulerConfig};
|
use leader_scheduler::{make_active_set_entries, LeaderScheduler, LeaderSchedulerConfig};
|
||||||
use ledger::{create_sample_ledger, next_entries_mut, LedgerWriter};
|
use ledger::{create_tmp_sample_ledger, next_entries_mut, LedgerWriter};
|
||||||
use logger;
|
use logger;
|
||||||
use replicate_stage::{ReplicateStage, ReplicateStageReturnType};
|
use replicate_stage::{ReplicateStage, ReplicateStageReturnType};
|
||||||
use service::Service;
|
use service::Service;
|
||||||
use signature::{Keypair, KeypairUtil};
|
use signature::{Keypair, KeypairUtil};
|
||||||
|
use std::fs::remove_dir_all;
|
||||||
use std::sync::atomic::{AtomicBool, Ordering};
|
use std::sync::atomic::{AtomicBool, Ordering};
|
||||||
use std::sync::mpsc::channel;
|
use std::sync::mpsc::channel;
|
||||||
use std::sync::{Arc, RwLock};
|
use std::sync::{Arc, RwLock};
|
||||||
@ -269,7 +270,7 @@ mod test {
|
|||||||
|
|
||||||
// Create a ledger
|
// Create a ledger
|
||||||
let (mint, my_ledger_path, genesis_entries) =
|
let (mint, my_ledger_path, genesis_entries) =
|
||||||
create_sample_ledger("test_replicate_stage_leader_rotation_exit", 10_000);
|
create_tmp_sample_ledger("test_replicate_stage_leader_rotation_exit", 10_000);
|
||||||
let mut last_id = genesis_entries
|
let mut last_id = genesis_entries
|
||||||
.last()
|
.last()
|
||||||
.expect("expected at least one genesis entry")
|
.expect("expected at least one genesis entry")
|
||||||
@ -357,5 +358,6 @@ mod test {
|
|||||||
Fullnode::new_bank_from_ledger(&my_ledger_path, &mut leader_scheduler);
|
Fullnode::new_bank_from_ledger(&my_ledger_path, &mut leader_scheduler);
|
||||||
|
|
||||||
assert_eq!(entry_height, bootstrap_height);
|
assert_eq!(entry_height, bootstrap_height);
|
||||||
|
let _ignored = remove_dir_all(&my_ledger_path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -158,7 +158,7 @@ mod tests {
|
|||||||
use fullnode::Fullnode;
|
use fullnode::Fullnode;
|
||||||
use hash::Hash;
|
use hash::Hash;
|
||||||
use leader_scheduler::LeaderScheduler;
|
use leader_scheduler::LeaderScheduler;
|
||||||
use ledger::{genesis, read_ledger, tmp_ledger_path};
|
use ledger::{create_tmp_genesis, get_tmp_ledger_path, read_ledger};
|
||||||
use logger;
|
use logger;
|
||||||
use replicator::sample_file;
|
use replicator::sample_file;
|
||||||
use replicator::Replicator;
|
use replicator::Replicator;
|
||||||
@ -178,13 +178,13 @@ mod tests {
|
|||||||
logger::setup();
|
logger::setup();
|
||||||
info!("starting replicator test");
|
info!("starting replicator test");
|
||||||
let entry_height = 0;
|
let entry_height = 0;
|
||||||
let replicator_ledger_path = &tmp_ledger_path("replicator_test_replicator_ledger");
|
let replicator_ledger_path = &get_tmp_ledger_path("replicator_test_replicator_ledger");
|
||||||
|
|
||||||
let exit = Arc::new(AtomicBool::new(false));
|
let exit = Arc::new(AtomicBool::new(false));
|
||||||
let done = Arc::new(AtomicBool::new(false));
|
let done = Arc::new(AtomicBool::new(false));
|
||||||
|
|
||||||
let leader_ledger_path = "replicator_test_leader_ledger";
|
let leader_ledger_path = "replicator_test_leader_ledger";
|
||||||
let (mint, leader_ledger_path) = genesis(leader_ledger_path, 100);
|
let (mint, leader_ledger_path) = create_tmp_genesis(leader_ledger_path, 100);
|
||||||
|
|
||||||
info!("starting leader node");
|
info!("starting leader node");
|
||||||
let leader_keypair = Keypair::new();
|
let leader_keypair = Keypair::new();
|
||||||
|
@ -285,7 +285,7 @@ mod tests {
|
|||||||
use hash::{hash, Hash};
|
use hash::{hash, Hash};
|
||||||
use jsonrpc_core::Response;
|
use jsonrpc_core::Response;
|
||||||
use leader_scheduler::LeaderScheduler;
|
use leader_scheduler::LeaderScheduler;
|
||||||
use ledger::tmp_ledger_with_mint;
|
use ledger::create_tmp_ledger_with_mint;
|
||||||
use mint::Mint;
|
use mint::Mint;
|
||||||
use reqwest;
|
use reqwest;
|
||||||
use reqwest::header::CONTENT_TYPE;
|
use reqwest::header::CONTENT_TYPE;
|
||||||
@ -547,7 +547,7 @@ mod tests {
|
|||||||
let bank = Bank::new(&alice);
|
let bank = Bank::new(&alice);
|
||||||
let bob_pubkey = Keypair::new().pubkey();
|
let bob_pubkey = Keypair::new().pubkey();
|
||||||
let leader_data = leader.info.clone();
|
let leader_data = leader.info.clone();
|
||||||
let ledger_path = tmp_ledger_with_mint("rpc_send_tx", &alice);
|
let ledger_path = create_tmp_ledger_with_mint("rpc_send_tx", &alice);
|
||||||
|
|
||||||
let last_id = bank.last_id();
|
let last_id = bank.last_id();
|
||||||
let tx = Transaction::system_move(&alice.keypair(), bob_pubkey, 20, last_id, 0);
|
let tx = Transaction::system_move(&alice.keypair(), bob_pubkey, 20, last_id, 0);
|
||||||
|
@ -435,26 +435,13 @@ mod tests {
|
|||||||
use cluster_info::Node;
|
use cluster_info::Node;
|
||||||
use fullnode::Fullnode;
|
use fullnode::Fullnode;
|
||||||
use leader_scheduler::LeaderScheduler;
|
use leader_scheduler::LeaderScheduler;
|
||||||
use ledger::LedgerWriter;
|
use ledger::create_tmp_ledger_with_mint;
|
||||||
use logger;
|
use logger;
|
||||||
use mint::Mint;
|
use mint::Mint;
|
||||||
use signature::{Keypair, KeypairUtil};
|
use signature::{Keypair, KeypairUtil};
|
||||||
use std::fs::remove_dir_all;
|
use std::fs::remove_dir_all;
|
||||||
use system_program::SystemProgram;
|
use system_program::SystemProgram;
|
||||||
|
|
||||||
fn tmp_ledger(name: &str, mint: &Mint) -> String {
|
|
||||||
use std::env;
|
|
||||||
let out_dir = env::var("OUT_DIR").unwrap_or_else(|_| "target".to_string());
|
|
||||||
let keypair = Keypair::new();
|
|
||||||
|
|
||||||
let path = format!("{}/tmp/ledger-{}-{}", out_dir, name, keypair.pubkey());
|
|
||||||
|
|
||||||
let mut writer = LedgerWriter::open(&path, true).unwrap();
|
|
||||||
writer.write_entries(mint.create_entries()).unwrap();
|
|
||||||
|
|
||||||
path
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
#[ignore]
|
||||||
fn test_thin_client() {
|
fn test_thin_client() {
|
||||||
@ -466,7 +453,7 @@ mod tests {
|
|||||||
let alice = Mint::new(10_000);
|
let alice = Mint::new(10_000);
|
||||||
let bank = Bank::new(&alice);
|
let bank = Bank::new(&alice);
|
||||||
let bob_pubkey = Keypair::new().pubkey();
|
let bob_pubkey = Keypair::new().pubkey();
|
||||||
let ledger_path = tmp_ledger("thin_client", &alice);
|
let ledger_path = create_tmp_ledger_with_mint("thin_client", &alice);
|
||||||
|
|
||||||
let server = Fullnode::new_with_bank(
|
let server = Fullnode::new_with_bank(
|
||||||
leader_keypair,
|
leader_keypair,
|
||||||
@ -513,7 +500,7 @@ mod tests {
|
|||||||
let bank = Bank::new(&alice);
|
let bank = Bank::new(&alice);
|
||||||
let bob_pubkey = Keypair::new().pubkey();
|
let bob_pubkey = Keypair::new().pubkey();
|
||||||
let leader_data = leader.info.clone();
|
let leader_data = leader.info.clone();
|
||||||
let ledger_path = tmp_ledger("bad_sig", &alice);
|
let ledger_path = create_tmp_ledger_with_mint("bad_sig", &alice);
|
||||||
|
|
||||||
let server = Fullnode::new_with_bank(
|
let server = Fullnode::new_with_bank(
|
||||||
leader_keypair,
|
leader_keypair,
|
||||||
@ -573,7 +560,7 @@ mod tests {
|
|||||||
let bank = Bank::new(&alice);
|
let bank = Bank::new(&alice);
|
||||||
let bob_pubkey = Keypair::new().pubkey();
|
let bob_pubkey = Keypair::new().pubkey();
|
||||||
let leader_data = leader.info.clone();
|
let leader_data = leader.info.clone();
|
||||||
let ledger_path = tmp_ledger("client_check_signature", &alice);
|
let ledger_path = create_tmp_ledger_with_mint("client_check_signature", &alice);
|
||||||
|
|
||||||
let genesis_entries = &alice.create_entries();
|
let genesis_entries = &alice.create_entries();
|
||||||
let entry_height = genesis_entries.len() as u64;
|
let entry_height = genesis_entries.len() as u64;
|
||||||
@ -636,7 +623,7 @@ mod tests {
|
|||||||
let bank = Bank::new(&alice);
|
let bank = Bank::new(&alice);
|
||||||
let bob_keypair = Keypair::new();
|
let bob_keypair = Keypair::new();
|
||||||
let leader_data = leader.info.clone();
|
let leader_data = leader.info.clone();
|
||||||
let ledger_path = tmp_ledger("zero_balance_check", &alice);
|
let ledger_path = create_tmp_ledger_with_mint("zero_balance_check", &alice);
|
||||||
|
|
||||||
let genesis_entries = &alice.create_entries();
|
let genesis_entries = &alice.create_entries();
|
||||||
let entry_height = genesis_entries.len() as u64;
|
let entry_height = genesis_entries.len() as u64;
|
||||||
|
@ -617,26 +617,12 @@ mod tests {
|
|||||||
use drone::run_local_drone;
|
use drone::run_local_drone;
|
||||||
use fullnode::Fullnode;
|
use fullnode::Fullnode;
|
||||||
use leader_scheduler::LeaderScheduler;
|
use leader_scheduler::LeaderScheduler;
|
||||||
use ledger::LedgerWriter;
|
use ledger::create_tmp_genesis;
|
||||||
use mint::Mint;
|
|
||||||
use serde_json::Value;
|
use serde_json::Value;
|
||||||
use signature::{read_keypair, read_pkcs8, Keypair, KeypairUtil};
|
use signature::{read_keypair, read_pkcs8, Keypair, KeypairUtil};
|
||||||
use std::fs::remove_dir_all;
|
use std::fs::remove_dir_all;
|
||||||
use std::sync::mpsc::channel;
|
use std::sync::mpsc::channel;
|
||||||
|
|
||||||
fn tmp_ledger(name: &str, mint: &Mint) -> String {
|
|
||||||
use std::env;
|
|
||||||
let out_dir = env::var("OUT_DIR").unwrap_or_else(|_| "target".to_string());
|
|
||||||
let keypair = Keypair::new();
|
|
||||||
|
|
||||||
let path = format!("{}/tmp/ledger-{}-{}", out_dir, name, keypair.pubkey());
|
|
||||||
|
|
||||||
let mut writer = LedgerWriter::open(&path, true).unwrap();
|
|
||||||
writer.write_entries(mint.create_entries()).unwrap();
|
|
||||||
|
|
||||||
path
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_wallet_parse_command() {
|
fn test_wallet_parse_command() {
|
||||||
let test_commands = App::new("test")
|
let test_commands = App::new("test")
|
||||||
@ -929,15 +915,15 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
#[ignore]
|
||||||
fn test_wallet_process_command() {
|
fn test_wallet_process_command() {
|
||||||
|
let (alice, ledger_path) = create_tmp_genesis("wallet_process_command", 10_000_000);
|
||||||
|
let bank = Bank::new(&alice);
|
||||||
|
|
||||||
|
let bob_pubkey = Keypair::new().pubkey();
|
||||||
|
|
||||||
let leader_keypair = Keypair::new();
|
let leader_keypair = Keypair::new();
|
||||||
let leader = Node::new_localhost_with_pubkey(leader_keypair.pubkey());
|
let leader = Node::new_localhost_with_pubkey(leader_keypair.pubkey());
|
||||||
|
|
||||||
let alice = Mint::new(10_000_000);
|
|
||||||
let bank = Bank::new(&alice);
|
|
||||||
let bob_pubkey = Keypair::new().pubkey();
|
|
||||||
let leader_data = leader.info.clone();
|
let leader_data = leader.info.clone();
|
||||||
let leader_data1 = leader.info.clone();
|
let leader_data1 = leader.info.clone();
|
||||||
let ledger_path = tmp_ledger("wallet_process_command", &alice);
|
|
||||||
|
|
||||||
let mut config = WalletConfig::default();
|
let mut config = WalletConfig::default();
|
||||||
let rpc_port = 12345; // Needs to be distinct known number to not conflict with other tests
|
let rpc_port = 12345; // Needs to be distinct known number to not conflict with other tests
|
||||||
@ -1006,14 +992,13 @@ mod tests {
|
|||||||
}
|
}
|
||||||
#[test]
|
#[test]
|
||||||
fn test_wallet_request_airdrop() {
|
fn test_wallet_request_airdrop() {
|
||||||
let leader_keypair = Keypair::new();
|
let (alice, ledger_path) = create_tmp_genesis("wallet_request_airdrop", 10_000_000);
|
||||||
let leader = Node::new_localhost_with_pubkey(leader_keypair.pubkey());
|
|
||||||
|
|
||||||
let alice = Mint::new(10_000_000);
|
|
||||||
let bank = Bank::new(&alice);
|
let bank = Bank::new(&alice);
|
||||||
let bob_pubkey = Keypair::new().pubkey();
|
let bob_pubkey = Keypair::new().pubkey();
|
||||||
|
|
||||||
|
let leader_keypair = Keypair::new();
|
||||||
|
let leader = Node::new_localhost_with_pubkey(leader_keypair.pubkey());
|
||||||
let leader_data = leader.info.clone();
|
let leader_data = leader.info.clone();
|
||||||
let ledger_path = tmp_ledger("wallet_request_airdrop", &alice);
|
|
||||||
|
|
||||||
let rpc_port = 11111; // Needs to be distinct known number to not conflict with other tests
|
let rpc_port = 11111; // Needs to be distinct known number to not conflict with other tests
|
||||||
|
|
||||||
@ -1054,6 +1039,7 @@ mod tests {
|
|||||||
server.close().unwrap();
|
server.close().unwrap();
|
||||||
remove_dir_all(ledger_path).unwrap();
|
remove_dir_all(ledger_path).unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
fn tmp_file_path(name: &str) -> String {
|
fn tmp_file_path(name: &str) -> String {
|
||||||
use std::env;
|
use std::env;
|
||||||
let out_dir = env::var("OUT_DIR").unwrap_or_else(|_| "target".to_string());
|
let out_dir = env::var("OUT_DIR").unwrap_or_else(|_| "target".to_string());
|
||||||
@ -1080,16 +1066,16 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
#[ignore]
|
||||||
fn test_wallet_timestamp_tx() {
|
fn test_wallet_timestamp_tx() {
|
||||||
|
let (alice, ledger_path) = create_tmp_genesis("wallet_timestamp_tx", 10_000_000);
|
||||||
|
let bank = Bank::new(&alice);
|
||||||
|
|
||||||
|
let bob_pubkey = Keypair::new().pubkey();
|
||||||
|
|
||||||
let leader_keypair = Keypair::new();
|
let leader_keypair = Keypair::new();
|
||||||
let leader = Node::new_localhost_with_pubkey(leader_keypair.pubkey());
|
let leader = Node::new_localhost_with_pubkey(leader_keypair.pubkey());
|
||||||
|
|
||||||
let alice = Mint::new(10_000_000);
|
|
||||||
let bank = Bank::new(&alice);
|
|
||||||
let bob_pubkey = Keypair::new().pubkey();
|
|
||||||
let leader_data = leader.info.clone();
|
let leader_data = leader.info.clone();
|
||||||
let leader_data1 = leader.info.clone();
|
let leader_data1 = leader.info.clone();
|
||||||
let leader_data2 = leader.info.clone();
|
let leader_data2 = leader.info.clone();
|
||||||
let ledger_path = tmp_ledger("wallet_timestamp_tx", &alice);
|
|
||||||
|
|
||||||
let mut config_payer = WalletConfig::default();
|
let mut config_payer = WalletConfig::default();
|
||||||
let mut config_witness = WalletConfig::default();
|
let mut config_witness = WalletConfig::default();
|
||||||
@ -1201,16 +1187,14 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
#[ignore]
|
||||||
fn test_wallet_witness_tx() {
|
fn test_wallet_witness_tx() {
|
||||||
let leader_keypair = Keypair::new();
|
let (alice, ledger_path) = create_tmp_genesis("wallet_witness_tx", 10_000_000);
|
||||||
let leader = Node::new_localhost_with_pubkey(leader_keypair.pubkey());
|
|
||||||
|
|
||||||
let alice = Mint::new(10_000_000);
|
|
||||||
let bank = Bank::new(&alice);
|
let bank = Bank::new(&alice);
|
||||||
let bob_pubkey = Keypair::new().pubkey();
|
let bob_pubkey = Keypair::new().pubkey();
|
||||||
|
let leader_keypair = Keypair::new();
|
||||||
|
let leader = Node::new_localhost_with_pubkey(leader_keypair.pubkey());
|
||||||
let leader_data = leader.info.clone();
|
let leader_data = leader.info.clone();
|
||||||
let leader_data1 = leader.info.clone();
|
let leader_data1 = leader.info.clone();
|
||||||
let leader_data2 = leader.info.clone();
|
let leader_data2 = leader.info.clone();
|
||||||
let ledger_path = tmp_ledger("wallet_witness_tx", &alice);
|
|
||||||
|
|
||||||
let mut config_payer = WalletConfig::default();
|
let mut config_payer = WalletConfig::default();
|
||||||
let mut config_witness = WalletConfig::default();
|
let mut config_witness = WalletConfig::default();
|
||||||
@ -1320,16 +1304,14 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
#[ignore]
|
||||||
fn test_wallet_cancel_tx() {
|
fn test_wallet_cancel_tx() {
|
||||||
let leader_keypair = Keypair::new();
|
let (alice, ledger_path) = create_tmp_genesis("wallet_cancel_tx", 10_000_000);
|
||||||
let leader = Node::new_localhost_with_pubkey(leader_keypair.pubkey());
|
|
||||||
|
|
||||||
let alice = Mint::new(10_000_000);
|
|
||||||
let bank = Bank::new(&alice);
|
let bank = Bank::new(&alice);
|
||||||
let bob_pubkey = Keypair::new().pubkey();
|
let bob_pubkey = Keypair::new().pubkey();
|
||||||
|
let leader_keypair = Keypair::new();
|
||||||
|
let leader = Node::new_localhost_with_pubkey(leader_keypair.pubkey());
|
||||||
let leader_data = leader.info.clone();
|
let leader_data = leader.info.clone();
|
||||||
let leader_data1 = leader.info.clone();
|
let leader_data1 = leader.info.clone();
|
||||||
let leader_data2 = leader.info.clone();
|
let leader_data2 = leader.info.clone();
|
||||||
let ledger_path = tmp_ledger("wallet_cancel_tx", &alice);
|
|
||||||
|
|
||||||
let mut config_payer = WalletConfig::default();
|
let mut config_payer = WalletConfig::default();
|
||||||
let mut config_witness = WalletConfig::default();
|
let mut config_witness = WalletConfig::default();
|
||||||
|
@ -328,7 +328,7 @@ mod tests {
|
|||||||
use entry::Entry;
|
use entry::Entry;
|
||||||
use hash::Hash;
|
use hash::Hash;
|
||||||
use leader_scheduler::{set_new_leader, LeaderScheduler, LeaderSchedulerConfig};
|
use leader_scheduler::{set_new_leader, LeaderScheduler, LeaderSchedulerConfig};
|
||||||
use ledger::{genesis, next_entries_mut, read_ledger};
|
use ledger::{create_tmp_genesis, next_entries_mut, read_ledger};
|
||||||
use service::Service;
|
use service::Service;
|
||||||
use signature::{Keypair, KeypairUtil};
|
use signature::{Keypair, KeypairUtil};
|
||||||
use solana_program_interface::account::Account;
|
use solana_program_interface::account::Account;
|
||||||
@ -373,7 +373,7 @@ mod tests {
|
|||||||
let bank = Arc::new(Bank::default());
|
let bank = Arc::new(Bank::default());
|
||||||
|
|
||||||
// Make a ledger
|
// Make a ledger
|
||||||
let (_, leader_ledger_path) = genesis(test_name, 10_000);
|
let (_, leader_ledger_path) = create_tmp_genesis(test_name, 10_000);
|
||||||
|
|
||||||
let (entry_height, ledger_tail) = process_ledger(&leader_ledger_path, &bank);
|
let (entry_height, ledger_tail) = process_ledger(&leader_ledger_path, &bank);
|
||||||
|
|
||||||
|
@ -11,7 +11,9 @@ use solana::entry::Entry;
|
|||||||
use solana::fullnode::{Fullnode, FullnodeReturnType};
|
use solana::fullnode::{Fullnode, FullnodeReturnType};
|
||||||
use solana::hash::Hash;
|
use solana::hash::Hash;
|
||||||
use solana::leader_scheduler::{make_active_set_entries, LeaderScheduler, LeaderSchedulerConfig};
|
use solana::leader_scheduler::{make_active_set_entries, LeaderScheduler, LeaderSchedulerConfig};
|
||||||
use solana::ledger::{create_sample_ledger, read_ledger, LedgerWriter};
|
use solana::ledger::{
|
||||||
|
create_tmp_genesis, create_tmp_sample_ledger, get_tmp_ledger_path, read_ledger, LedgerWriter,
|
||||||
|
};
|
||||||
use solana::logger;
|
use solana::logger;
|
||||||
use solana::mint::Mint;
|
use solana::mint::Mint;
|
||||||
use solana::ncp::Ncp;
|
use solana::ncp::Ncp;
|
||||||
@ -79,28 +81,8 @@ fn converge(leader: &NodeInfo, num_nodes: usize) -> Vec<NodeInfo> {
|
|||||||
rv
|
rv
|
||||||
}
|
}
|
||||||
|
|
||||||
fn tmp_ledger_path(name: &str) -> String {
|
|
||||||
use std::env;
|
|
||||||
let out_dir = env::var("OUT_DIR").unwrap_or_else(|_| "target".to_string());
|
|
||||||
let keypair = Keypair::new();
|
|
||||||
|
|
||||||
format!("{}/tmp/ledger-{}-{}", out_dir, name, keypair.pubkey())
|
|
||||||
}
|
|
||||||
|
|
||||||
fn genesis(name: &str, num: i64) -> (Mint, String, Vec<Entry>) {
|
|
||||||
let mint = Mint::new(num);
|
|
||||||
|
|
||||||
let path = tmp_ledger_path(name);
|
|
||||||
let mut writer = LedgerWriter::open(&path, true).unwrap();
|
|
||||||
|
|
||||||
let entries = mint.create_entries();
|
|
||||||
writer.write_entries(entries.clone()).unwrap();
|
|
||||||
|
|
||||||
(mint, path, entries)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn tmp_copy_ledger(from: &str, name: &str) -> String {
|
fn tmp_copy_ledger(from: &str, name: &str) -> String {
|
||||||
let tostr = tmp_ledger_path(name);
|
let tostr = get_tmp_ledger_path(name);
|
||||||
|
|
||||||
{
|
{
|
||||||
let to = Path::new(&tostr);
|
let to = Path::new(&tostr);
|
||||||
@ -134,7 +116,7 @@ fn test_multi_node_ledger_window() -> result::Result<()> {
|
|||||||
let bob_pubkey = Keypair::new().pubkey();
|
let bob_pubkey = Keypair::new().pubkey();
|
||||||
let mut ledger_paths = Vec::new();
|
let mut ledger_paths = Vec::new();
|
||||||
|
|
||||||
let (alice, leader_ledger_path, _) = genesis("multi_node_ledger_window", 10_000);
|
let (alice, leader_ledger_path) = create_tmp_genesis("multi_node_ledger_window", 10_000);
|
||||||
ledger_paths.push(leader_ledger_path.clone());
|
ledger_paths.push(leader_ledger_path.clone());
|
||||||
|
|
||||||
// make a copy at zero
|
// make a copy at zero
|
||||||
@ -231,7 +213,8 @@ fn test_multi_node_validator_catchup_from_zero() -> result::Result<()> {
|
|||||||
let bob_pubkey = Keypair::new().pubkey();
|
let bob_pubkey = Keypair::new().pubkey();
|
||||||
let mut ledger_paths = Vec::new();
|
let mut ledger_paths = Vec::new();
|
||||||
|
|
||||||
let (alice, leader_ledger_path, _) = genesis("multi_node_validator_catchup_from_zero", 10_000);
|
let (alice, leader_ledger_path) =
|
||||||
|
create_tmp_genesis("multi_node_validator_catchup_from_zero", 10_000);
|
||||||
ledger_paths.push(leader_ledger_path.clone());
|
ledger_paths.push(leader_ledger_path.clone());
|
||||||
|
|
||||||
let zero_ledger_path = tmp_copy_ledger(
|
let zero_ledger_path = tmp_copy_ledger(
|
||||||
@ -371,7 +354,7 @@ fn test_multi_node_basic() {
|
|||||||
let bob_pubkey = Keypair::new().pubkey();
|
let bob_pubkey = Keypair::new().pubkey();
|
||||||
let mut ledger_paths = Vec::new();
|
let mut ledger_paths = Vec::new();
|
||||||
|
|
||||||
let (alice, leader_ledger_path, _) = genesis("multi_node_basic", 10_000);
|
let (alice, leader_ledger_path) = create_tmp_genesis("multi_node_basic", 10_000);
|
||||||
ledger_paths.push(leader_ledger_path.clone());
|
ledger_paths.push(leader_ledger_path.clone());
|
||||||
let server = Fullnode::new(
|
let server = Fullnode::new(
|
||||||
leader,
|
leader,
|
||||||
@ -446,7 +429,7 @@ fn test_boot_validator_from_file() -> result::Result<()> {
|
|||||||
let leader_pubkey = leader_keypair.pubkey();
|
let leader_pubkey = leader_keypair.pubkey();
|
||||||
let leader = Node::new_localhost_with_pubkey(leader_keypair.pubkey());
|
let leader = Node::new_localhost_with_pubkey(leader_keypair.pubkey());
|
||||||
let bob_pubkey = Keypair::new().pubkey();
|
let bob_pubkey = Keypair::new().pubkey();
|
||||||
let (alice, leader_ledger_path, _) = genesis("boot_validator_from_file", 100_000);
|
let (alice, leader_ledger_path) = create_tmp_genesis("boot_validator_from_file", 100_000);
|
||||||
let mut ledger_paths = Vec::new();
|
let mut ledger_paths = Vec::new();
|
||||||
ledger_paths.push(leader_ledger_path.clone());
|
ledger_paths.push(leader_ledger_path.clone());
|
||||||
|
|
||||||
@ -514,7 +497,7 @@ fn test_leader_restart_validator_start_from_old_ledger() -> result::Result<()> {
|
|||||||
// ledger (currently up to WINDOW_SIZE entries)
|
// ledger (currently up to WINDOW_SIZE entries)
|
||||||
logger::setup();
|
logger::setup();
|
||||||
|
|
||||||
let (alice, ledger_path, _) = genesis(
|
let (alice, ledger_path) = create_tmp_genesis(
|
||||||
"leader_restart_validator_start_from_old_ledger",
|
"leader_restart_validator_start_from_old_ledger",
|
||||||
100_000 + 500 * solana::window_service::MAX_REPAIR_BACKOFF as i64,
|
100_000 + 500 * solana::window_service::MAX_REPAIR_BACKOFF as i64,
|
||||||
);
|
);
|
||||||
@ -607,7 +590,7 @@ fn test_multi_node_dynamic_network() {
|
|||||||
let leader_pubkey = leader_keypair.pubkey().clone();
|
let leader_pubkey = leader_keypair.pubkey().clone();
|
||||||
let leader = Node::new_localhost_with_pubkey(leader_keypair.pubkey());
|
let leader = Node::new_localhost_with_pubkey(leader_keypair.pubkey());
|
||||||
let bob_pubkey = Keypair::new().pubkey();
|
let bob_pubkey = Keypair::new().pubkey();
|
||||||
let (alice, leader_ledger_path, _) = genesis("multi_node_dynamic_network", 10_000_000);
|
let (alice, leader_ledger_path) = create_tmp_genesis("multi_node_dynamic_network", 10_000_000);
|
||||||
|
|
||||||
let mut ledger_paths = Vec::new();
|
let mut ledger_paths = Vec::new();
|
||||||
ledger_paths.push(leader_ledger_path.clone());
|
ledger_paths.push(leader_ledger_path.clone());
|
||||||
@ -804,7 +787,7 @@ fn test_leader_to_validator_transition() {
|
|||||||
// Initialize the leader ledger. Make a mint and a genesis entry
|
// Initialize the leader ledger. Make a mint and a genesis entry
|
||||||
// in the leader ledger
|
// in the leader ledger
|
||||||
let (mint, leader_ledger_path, genesis_entries) =
|
let (mint, leader_ledger_path, genesis_entries) =
|
||||||
create_sample_ledger("test_leader_to_validator_transition", 10_000);
|
create_tmp_sample_ledger("test_leader_to_validator_transition", 10_000);
|
||||||
|
|
||||||
let last_id = genesis_entries
|
let last_id = genesis_entries
|
||||||
.last()
|
.last()
|
||||||
@ -945,7 +928,7 @@ fn test_leader_validator_basic() {
|
|||||||
|
|
||||||
// Make a common mint and a genesis entry for both leader + validator ledgers
|
// Make a common mint and a genesis entry for both leader + validator ledgers
|
||||||
let (mint, leader_ledger_path, genesis_entries) =
|
let (mint, leader_ledger_path, genesis_entries) =
|
||||||
create_sample_ledger("test_leader_to_validator_transition", 10_000);
|
create_tmp_sample_ledger("test_leader_to_validator_transition", 10_000);
|
||||||
|
|
||||||
let validator_ledger_path = tmp_copy_ledger(&leader_ledger_path, "test_leader_validator_basic");
|
let validator_ledger_path = tmp_copy_ledger(&leader_ledger_path, "test_leader_validator_basic");
|
||||||
|
|
||||||
@ -1100,7 +1083,7 @@ fn test_dropped_handoff_recovery() {
|
|||||||
|
|
||||||
// Make a common mint and a genesis entry for both leader + validator's ledgers
|
// Make a common mint and a genesis entry for both leader + validator's ledgers
|
||||||
let (mint, bootstrap_leader_ledger_path, genesis_entries) =
|
let (mint, bootstrap_leader_ledger_path, genesis_entries) =
|
||||||
create_sample_ledger("test_dropped_handoff_recovery", 10_000);
|
create_tmp_sample_ledger("test_dropped_handoff_recovery", 10_000);
|
||||||
|
|
||||||
let last_id = genesis_entries
|
let last_id = genesis_entries
|
||||||
.last()
|
.last()
|
||||||
@ -1245,7 +1228,7 @@ fn test_full_leader_validator_network() {
|
|||||||
|
|
||||||
// Make a common mint and a genesis entry for both leader + validator's ledgers
|
// Make a common mint and a genesis entry for both leader + validator's ledgers
|
||||||
let (mint, bootstrap_leader_ledger_path, genesis_entries) =
|
let (mint, bootstrap_leader_ledger_path, genesis_entries) =
|
||||||
create_sample_ledger("test_full_leader_validator_network", 10_000);
|
create_tmp_sample_ledger("test_full_leader_validator_network", 10_000);
|
||||||
|
|
||||||
let last_tick_id = genesis_entries
|
let last_tick_id = genesis_entries
|
||||||
.last()
|
.last()
|
||||||
|
Reference in New Issue
Block a user