create_tmp_sample_ledger() now returns entry_height and last_id

This commit is contained in:
Michael Vines
2019-01-29 20:57:38 -08:00
parent 883fc39c80
commit 8cc1cde0fe
6 changed files with 155 additions and 222 deletions

View File

@ -965,7 +965,7 @@ fn test_leader_to_validator_transition() {
// Initialize the leader ledger. Make a mint and a genesis entry
// in the leader ledger
let num_ending_ticks = 1;
let (_genesis_block, mint_keypair, leader_ledger_path, genesis_entries) =
let (_genesis_block, mint_keypair, leader_ledger_path, genesis_entry_height, last_id) =
create_tmp_sample_ledger(
"test_leader_to_validator_transition",
10_000,
@ -974,11 +974,6 @@ fn test_leader_to_validator_transition() {
500,
);
let last_id = genesis_entries
.last()
.expect("expected at least one genesis entry")
.id;
// Write the bootstrap entries to the ledger that will cause leader rotation
// after the bootstrap height
let (bootstrap_entries, _) =
@ -988,7 +983,7 @@ fn test_leader_to_validator_transition() {
db_ledger
.write_entries(
DEFAULT_SLOT_HEIGHT,
genesis_entries.len() as u64,
genesis_entry_height,
&bootstrap_entries,
)
.unwrap();
@ -1110,7 +1105,7 @@ fn test_leader_validator_basic() {
// Make a common mint and a genesis entry for both leader + validator ledgers
let num_ending_ticks = 1;
let (_genesis_block, mint_keypair, leader_ledger_path, genesis_entries) =
let (_genesis_block, mint_keypair, leader_ledger_path, genesis_entry_height, last_id) =
create_tmp_sample_ledger(
"test_leader_validator_basic",
10_000,
@ -1121,11 +1116,6 @@ fn test_leader_validator_basic() {
let validator_ledger_path = tmp_copy_ledger(&leader_ledger_path, "test_leader_validator_basic");
let last_id = genesis_entries
.last()
.expect("expected at least one genesis entry")
.id;
// Initialize both leader + validator ledger
let mut ledger_paths = Vec::new();
ledger_paths.push(leader_ledger_path.clone());
@ -1133,14 +1123,14 @@ fn test_leader_validator_basic() {
// Write the bootstrap entries to the ledger that will cause leader rotation
// after the bootstrap height
let (active_set_entries, _vote_account_keypair) =
let (active_set_entries, _) =
make_active_set_entries(&validator_keypair, &mint_keypair, &last_id, &last_id, 0);
{
let db_ledger = DbLedger::open(&leader_ledger_path).unwrap();
db_ledger
.write_entries(
DEFAULT_SLOT_HEIGHT,
genesis_entries.len() as u64,
genesis_entry_height,
&active_set_entries,
)
.unwrap();
@ -1298,7 +1288,7 @@ fn test_dropped_handoff_recovery() {
// Make a common mint and a genesis entry for both leader + validator's ledgers
let num_ending_ticks = 1;
let (_genesis_block, mint_keypair, genesis_ledger_path, genesis_entries) =
let (_genesis_block, mint_keypair, genesis_ledger_path, genesis_entry_height, last_id) =
create_tmp_sample_ledger(
"test_dropped_handoff_recovery",
10_000,
@ -1307,11 +1297,6 @@ fn test_dropped_handoff_recovery() {
500,
);
let last_id = genesis_entries
.last()
.expect("expected at least one genesis entry")
.id;
// Create the validator keypair that will be the next leader in line
let next_leader_keypair = Arc::new(Keypair::new());
@ -1323,7 +1308,7 @@ fn test_dropped_handoff_recovery() {
// Make the entries to give the next_leader validator some stake so that they will be in
// leader election active set
let (active_set_entries, _vote_account_keypair) =
let (active_set_entries, _) =
make_active_set_entries(&next_leader_keypair, &mint_keypair, &last_id, &last_id, 0);
// Write the entries
@ -1332,7 +1317,7 @@ fn test_dropped_handoff_recovery() {
db_ledger
.write_entries(
DEFAULT_SLOT_HEIGHT,
genesis_entries.len() as u64,
genesis_entry_height,
&active_set_entries,
)
.unwrap();
@ -1343,9 +1328,7 @@ fn test_dropped_handoff_recovery() {
ledger_paths.push(next_leader_ledger_path.clone());
// Create the common leader scheduling configuration
let initial_tick_height = genesis_entries
.iter()
.fold(0, |tick_count, entry| tick_count + entry.is_tick() as u64);
let initial_tick_height = genesis_entry_height;
let num_slots_per_epoch = (N + 1) as u64;
let leader_rotation_interval = 5;
let seed_rotation_interval = num_slots_per_epoch * leader_rotation_interval;
@ -1466,7 +1449,7 @@ fn test_full_leader_validator_network() {
// Make a common mint and a genesis entry for both leader + validator's ledgers
let num_ending_ticks = 1;
let (_genesis_block, mint_keypair, bootstrap_leader_ledger_path, genesis_entries) =
let (_genesis_block, mint_keypair, bootstrap_leader_ledger_path, genesis_entry_height, last_id) =
create_tmp_sample_ledger(
"test_full_leader_validator_network",
10_000,
@ -1475,15 +1458,8 @@ fn test_full_leader_validator_network() {
500,
);
let last_tick_id = genesis_entries
.last()
.expect("expected at least one genesis entry")
.id;
let mut last_entry_id = genesis_entries
.last()
.expect("expected at least one genesis entry")
.id;
let last_tick_id = last_id;
let mut last_entry_id = last_id;
// Create a common ledger with entries in the beginnging that will add all the validators
// to the active set for leader election. TODO: Leader rotation does not support dynamic
@ -1493,12 +1469,11 @@ fn test_full_leader_validator_network() {
let mut ledger_paths = Vec::new();
ledger_paths.push(bootstrap_leader_ledger_path.clone());
let mut vote_account_keypairs = VecDeque::new();
let mut index = genesis_entries.len() as u64;
let mut index = genesis_entry_height;
for node_keypair in node_keypairs.iter() {
// Make entries to give each node some stake so that they will be in the
// leader election active set
let (bootstrap_entries, vote_account_keypair) = make_active_set_entries(
let (bootstrap_entries, _) = make_active_set_entries(
node_keypair,
&mint_keypair,
&last_entry_id,
@ -1506,8 +1481,6 @@ fn test_full_leader_validator_network() {
0,
);
vote_account_keypairs.push_back(vote_account_keypair);
// Write the entries
last_entry_id = bootstrap_entries
.last()
@ -1543,7 +1516,6 @@ fn test_full_leader_validator_network() {
// 2) Modifying the leader ledger which validators are going to be copying
// during startup
let leader_keypair = node_keypairs.pop_front().unwrap();
let _leader_vote_keypair = vote_account_keypairs.pop_front().unwrap();
let mut schedules: Vec<Arc<RwLock<LeaderScheduler>>> = vec![];
let mut t_nodes = vec![];
@ -1708,21 +1680,21 @@ fn test_broadcast_last_tick() {
let bootstrap_leader_info = bootstrap_leader_node.info.clone();
// Create leader ledger
let (_genesis_block, _mint_keypair, bootstrap_leader_ledger_path, genesis_entries) =
create_tmp_sample_ledger(
"test_broadcast_last_tick",
10_000,
1,
bootstrap_leader_info.id,
500,
);
let (
_genesis_block,
_mint_keypair,
bootstrap_leader_ledger_path,
genesis_entry_height,
_last_id,
) = create_tmp_sample_ledger(
"test_broadcast_last_tick",
10_000,
1,
bootstrap_leader_info.id,
500,
);
let num_ending_ticks = genesis_entries
.iter()
.fold(0, |tick_count, entry| tick_count + entry.is_tick() as u64);
let genesis_ledger_len = genesis_entries.len() as u64 - num_ending_ticks;
debug!("num_ending_ticks: {}", num_ending_ticks);
let genesis_ledger_len = genesis_entry_height;
debug!("genesis_ledger_len: {}", genesis_ledger_len);
let blob_receiver_exit = Arc::new(AtomicBool::new(false));