Centralize decentralized timing constants
This commit is contained in:
parent
ad9cd23202
commit
d357640fbf
|
@ -2,6 +2,13 @@
|
|||
use std::time::Duration;
|
||||
use std::time::{SystemTime, UNIX_EPOCH};
|
||||
|
||||
pub const NUM_TICKS_PER_SECOND: usize = 10;
|
||||
|
||||
// At 10 ticks/s, 8 ticks per slot implies that leader rotation and voting will happen
|
||||
// every 800 ms. A fast voting cadence ensures faster finality and convergence
|
||||
pub const DEFAULT_TICKS_PER_SLOT: u64 = 8;
|
||||
pub const DEFAULT_SLOTS_PER_EPOCH: u64 = 64;
|
||||
|
||||
pub fn duration_as_us(d: &Duration) -> u64 {
|
||||
(d.as_secs() * 1000 * 1000) + (u64::from(d.subsec_nanos()) / 1_000)
|
||||
}
|
||||
|
|
|
@ -7,7 +7,6 @@ use crate::accounts::{Accounts, ErrorCounters, InstructionAccounts, InstructionL
|
|||
use crate::counter::Counter;
|
||||
use crate::genesis_block::GenesisBlock;
|
||||
use crate::last_id_queue::{LastIdQueue, MAX_ENTRY_IDS};
|
||||
use crate::poh_service::NUM_TICKS_PER_SECOND;
|
||||
use crate::status_cache::StatusCache;
|
||||
use bincode::{deserialize, serialize};
|
||||
use log::Level;
|
||||
|
@ -19,12 +18,11 @@ use solana_sdk::hash::{extend_and_hash, Hash};
|
|||
use solana_sdk::native_loader;
|
||||
use solana_sdk::native_program::ProgramError;
|
||||
use solana_sdk::pubkey::Pubkey;
|
||||
use solana_sdk::signature::Keypair;
|
||||
use solana_sdk::signature::Signature;
|
||||
use solana_sdk::signature::{Keypair, Signature};
|
||||
use solana_sdk::storage_program;
|
||||
use solana_sdk::system_program;
|
||||
use solana_sdk::system_transaction::SystemTransaction;
|
||||
use solana_sdk::timing::duration_as_us;
|
||||
use solana_sdk::timing::{duration_as_us, NUM_TICKS_PER_SECOND};
|
||||
use solana_sdk::token_program;
|
||||
use solana_sdk::transaction::Transaction;
|
||||
use solana_sdk::vote_program::{self, VoteState};
|
||||
|
|
|
@ -18,8 +18,7 @@ use bincode::deserialize;
|
|||
use log::Level;
|
||||
use solana_sdk::hash::Hash;
|
||||
use solana_sdk::pubkey::Pubkey;
|
||||
use solana_sdk::timing;
|
||||
use solana_sdk::timing::duration_as_us;
|
||||
use solana_sdk::timing::{self, duration_as_us};
|
||||
use solana_sdk::transaction::Transaction;
|
||||
use std::sync::atomic::AtomicBool;
|
||||
use std::sync::mpsc::{channel, Receiver, RecvTimeoutError};
|
||||
|
@ -346,11 +345,11 @@ mod tests {
|
|||
use super::*;
|
||||
use crate::entry::EntrySlice;
|
||||
use crate::genesis_block::GenesisBlock;
|
||||
use crate::leader_scheduler::DEFAULT_TICKS_PER_SLOT;
|
||||
use crate::packet::to_packets;
|
||||
use solana_sdk::native_program::ProgramError;
|
||||
use solana_sdk::signature::{Keypair, KeypairUtil};
|
||||
use solana_sdk::system_transaction::SystemTransaction;
|
||||
use solana_sdk::timing::DEFAULT_TICKS_PER_SLOT;
|
||||
use std::thread::sleep;
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
|
||||
use crate::entry::Entry;
|
||||
use crate::genesis_block::GenesisBlock;
|
||||
use crate::leader_scheduler::DEFAULT_TICKS_PER_SLOT;
|
||||
use crate::packet::{Blob, SharedBlob, BLOB_HEADER_SIZE};
|
||||
use crate::result::{Error, Result};
|
||||
use bincode::{deserialize, serialize};
|
||||
|
@ -18,6 +17,7 @@ use serde::Serialize;
|
|||
use solana_sdk::hash::Hash;
|
||||
use solana_sdk::pubkey::Pubkey;
|
||||
use solana_sdk::signature::{Keypair, KeypairUtil};
|
||||
use solana_sdk::timing::DEFAULT_TICKS_PER_SLOT;
|
||||
use std::borrow::{Borrow, Cow};
|
||||
use std::cell::RefCell;
|
||||
use std::cmp;
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
use crate::poh_service::NUM_TICKS_PER_SECOND;
|
||||
use hashbrown::HashMap;
|
||||
use solana_sdk::hash::Hash;
|
||||
use solana_sdk::timing::timestamp;
|
||||
use solana_sdk::timing::{timestamp, NUM_TICKS_PER_SECOND};
|
||||
|
||||
/// The number of most recent `last_id` values that the bank will track the signatures
|
||||
/// of. Once the bank discards a `last_id`, it will reject any transactions that use
|
||||
|
|
|
@ -11,15 +11,12 @@ use solana_sdk::hash::{hash, Hash};
|
|||
use solana_sdk::pubkey::Pubkey;
|
||||
use solana_sdk::signature::{Keypair, KeypairUtil};
|
||||
use solana_sdk::system_transaction::SystemTransaction;
|
||||
use solana_sdk::timing::{DEFAULT_SLOTS_PER_EPOCH, DEFAULT_TICKS_PER_SLOT};
|
||||
use solana_sdk::vote_program::VoteState;
|
||||
use solana_sdk::vote_transaction::VoteTransaction;
|
||||
use std::io::Cursor;
|
||||
use std::sync::Arc;
|
||||
|
||||
// At 10 ticks/s, 8 ticks per slot implies that leader rotation and voting will happen
|
||||
// every 800 ms. A fast voting cadence ensures faster finality and convergence
|
||||
pub const DEFAULT_TICKS_PER_SLOT: u64 = 8;
|
||||
pub const DEFAULT_SLOTS_PER_EPOCH: u64 = 64;
|
||||
pub const DEFAULT_ACTIVE_WINDOW_TICK_LENGTH: u64 = DEFAULT_SLOTS_PER_EPOCH * DEFAULT_TICKS_PER_SLOT;
|
||||
|
||||
#[derive(Clone)]
|
||||
|
|
|
@ -5,14 +5,12 @@ use crate::bank::Bank;
|
|||
use crate::poh_recorder::PohRecorder;
|
||||
use crate::result::Result;
|
||||
use crate::service::Service;
|
||||
use solana_sdk::timing::NUM_TICKS_PER_SECOND;
|
||||
use std::sync::atomic::{AtomicBool, Ordering};
|
||||
use std::sync::Arc;
|
||||
use std::thread::sleep;
|
||||
use std::thread::{self, Builder, JoinHandle};
|
||||
use std::thread::{self, sleep, Builder, JoinHandle};
|
||||
use std::time::Duration;
|
||||
|
||||
pub const NUM_TICKS_PER_SECOND: usize = 10;
|
||||
|
||||
#[derive(Copy, Clone)]
|
||||
pub enum PohServiceConfig {
|
||||
/// * `Tick` - Run full PoH thread. Tick is a rough estimate of how many hashes to roll before
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
use crate::bloom::{Bloom, BloomHashIndex};
|
||||
use crate::last_id_queue::MAX_ENTRY_IDS;
|
||||
use crate::poh_service::NUM_TICKS_PER_SECOND;
|
||||
use hashbrown::HashMap;
|
||||
use solana_sdk::hash::Hash;
|
||||
use solana_sdk::signature::Signature;
|
||||
use solana_sdk::timing::NUM_TICKS_PER_SECOND;
|
||||
use std::collections::VecDeque;
|
||||
use std::ops::{Deref, DerefMut};
|
||||
|
||||
|
|
Loading…
Reference in New Issue