Purge MAX_RECENT_TICK_HASHES
This commit is contained in:
parent
398b78dd97
commit
a9a7fc56eb
|
@ -15,7 +15,7 @@ use solana_sdk::hash::hash;
|
|||
use solana_sdk::pubkey::Pubkey;
|
||||
use solana_sdk::signature::{KeypairUtil, Signature};
|
||||
use solana_sdk::system_transaction::SystemTransaction;
|
||||
use solana_sdk::timing::MAX_RECENT_TICK_HASHES;
|
||||
use solana_sdk::timing::{DEFAULT_TICKS_PER_SLOT, MAX_RECENT_BLOCKHASHES};
|
||||
use std::iter;
|
||||
use std::sync::atomic::AtomicBool;
|
||||
use std::sync::mpsc::{channel, Receiver};
|
||||
|
@ -122,7 +122,7 @@ fn bench_banking_stage_multi_accounts(bencher: &mut Bencher) {
|
|||
BankingStage::new(&bank, &poh_recorder, verified_receiver, std::u64::MAX);
|
||||
|
||||
let mut id = genesis_block.hash();
|
||||
for _ in 0..MAX_RECENT_TICK_HASHES {
|
||||
for _ in 0..(MAX_RECENT_BLOCKHASHES * DEFAULT_TICKS_PER_SLOT as usize) {
|
||||
id = hash(&id.as_ref());
|
||||
bank.register_tick(&id);
|
||||
}
|
||||
|
@ -226,7 +226,7 @@ fn bench_banking_stage_multi_programs(bencher: &mut Bencher) {
|
|||
BankingStage::new(&bank, &poh_recorder, verified_receiver, std::u64::MAX);
|
||||
|
||||
let mut id = genesis_block.hash();
|
||||
for _ in 0..MAX_RECENT_TICK_HASHES {
|
||||
for _ in 0..(MAX_RECENT_BLOCKHASHES * DEFAULT_TICKS_PER_SLOT as usize) {
|
||||
id = hash(&id.as_ref());
|
||||
bank.register_tick(&id);
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@ use crate::sigverify_stage::VerifiedPackets;
|
|||
use bincode::deserialize;
|
||||
use solana_metrics::counter::Counter;
|
||||
use solana_runtime::bank::{self, Bank, BankError};
|
||||
use solana_sdk::timing::{self, duration_as_us, MAX_RECENT_TICK_HASHES};
|
||||
use solana_sdk::timing::{self, duration_as_us, MAX_RECENT_BLOCKHASHES};
|
||||
use solana_sdk::transaction::Transaction;
|
||||
use std::sync::atomic::{AtomicBool, Ordering};
|
||||
use std::sync::mpsc::{channel, Receiver, RecvTimeoutError};
|
||||
|
@ -170,7 +170,7 @@ impl BankingStage {
|
|||
// TODO: Banking stage threads should be prioritized to complete faster then this queue
|
||||
// expires.
|
||||
let (loaded_accounts, results) =
|
||||
bank.load_and_execute_transactions(txs, lock_results, MAX_RECENT_TICK_HASHES / 2);
|
||||
bank.load_and_execute_transactions(txs, lock_results, MAX_RECENT_BLOCKHASHES / 2);
|
||||
let load_execute_time = now.elapsed();
|
||||
|
||||
let record_time = {
|
||||
|
|
|
@ -7,7 +7,7 @@ use solana_metrics::counter::Counter;
|
|||
use solana_runtime::bank::{Bank, BankError, Result};
|
||||
use solana_sdk::genesis_block::GenesisBlock;
|
||||
use solana_sdk::timing::duration_as_ms;
|
||||
use solana_sdk::timing::MAX_RECENT_TICK_HASHES;
|
||||
use solana_sdk::timing::MAX_RECENT_BLOCKHASHES;
|
||||
use std::sync::Arc;
|
||||
use std::time::Instant;
|
||||
|
||||
|
@ -35,7 +35,7 @@ fn par_execute_entries(bank: &Bank, entries: &[(&Entry, Vec<Result<()>>)]) -> Re
|
|||
let results = bank.load_execute_and_commit_transactions(
|
||||
&e.transactions,
|
||||
lock_results.to_vec(),
|
||||
MAX_RECENT_TICK_HASHES,
|
||||
MAX_RECENT_BLOCKHASHES,
|
||||
);
|
||||
bank.unlock_accounts(&e.transactions, &results);
|
||||
first_err(&results)
|
||||
|
|
|
@ -7,7 +7,7 @@ use solana_sdk::genesis_block::GenesisBlock;
|
|||
use solana_sdk::hash::hash;
|
||||
use solana_sdk::signature::{Keypair, KeypairUtil};
|
||||
use solana_sdk::system_transaction::SystemTransaction;
|
||||
use solana_sdk::timing::MAX_RECENT_TICK_HASHES;
|
||||
use solana_sdk::timing::{DEFAULT_TICKS_PER_SLOT, MAX_RECENT_BLOCKHASHES};
|
||||
use test::Bencher;
|
||||
|
||||
#[bench]
|
||||
|
@ -43,7 +43,7 @@ fn bench_process_transaction(bencher: &mut Bencher) {
|
|||
|
||||
let mut id = bank.last_blockhash();
|
||||
|
||||
for _ in 0..(MAX_RECENT_TICK_HASHES - 1) {
|
||||
for _ in 0..(MAX_RECENT_BLOCKHASHES * DEFAULT_TICKS_PER_SLOT as usize) {
|
||||
bank.register_tick(&id);
|
||||
id = hash(&id.as_ref())
|
||||
}
|
||||
|
|
|
@ -105,12 +105,11 @@ mod tests {
|
|||
use super::*;
|
||||
use bincode::serialize;
|
||||
use solana_sdk::hash::hash;
|
||||
use solana_sdk::timing::MAX_RECENT_TICK_HASHES;
|
||||
|
||||
#[test]
|
||||
fn test_register_hash() {
|
||||
let last_hash = Hash::default();
|
||||
let mut entry_queue = HashQueue::new(MAX_RECENT_TICK_HASHES);
|
||||
let mut entry_queue = HashQueue::new(100);
|
||||
assert!(!entry_queue.check_entry(last_hash));
|
||||
entry_queue.register_hash(&last_hash);
|
||||
assert!(entry_queue.check_entry(last_hash));
|
||||
|
@ -119,8 +118,8 @@ mod tests {
|
|||
#[test]
|
||||
fn test_reject_old_last_hash() {
|
||||
let last_hash = Hash::default();
|
||||
let mut entry_queue = HashQueue::new(MAX_RECENT_TICK_HASHES);
|
||||
for i in 0..MAX_RECENT_TICK_HASHES {
|
||||
let mut entry_queue = HashQueue::new(100);
|
||||
for i in 0..100 {
|
||||
let last_hash = hash(&serialize(&i).unwrap()); // Unique hash
|
||||
entry_queue.register_hash(&last_hash);
|
||||
}
|
||||
|
|
|
@ -17,9 +17,8 @@ pub const DEFAULT_SLOTS_PER_EPOCH: u64 = 64;
|
|||
/// not be processed by the network.
|
||||
pub const MAX_HASH_AGE_IN_SECONDS: usize = 120;
|
||||
|
||||
pub const MAX_RECENT_TICK_HASHES: usize = NUM_TICKS_PER_SECOND as usize * MAX_HASH_AGE_IN_SECONDS;
|
||||
pub const MAX_RECENT_BLOCKHASHES: usize =
|
||||
MAX_RECENT_TICK_HASHES / (DEFAULT_TICKS_PER_SLOT as usize);
|
||||
(NUM_TICKS_PER_SECOND * MAX_HASH_AGE_IN_SECONDS as u64 / DEFAULT_TICKS_PER_SLOT) as usize;
|
||||
|
||||
pub fn duration_as_us(d: &Duration) -> u64 {
|
||||
(d.as_secs() * 1000 * 1000) + (u64::from(d.subsec_nanos()) / 1_000)
|
||||
|
|
Loading…
Reference in New Issue