-
Notifications
You must be signed in to change notification settings - Fork 273
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
extract poh-config crate #3855
extract poh-config crate #3855
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
[package] | ||
name = "solana-poh-config" | ||
description = "Definitions of Solana's proof of history." | ||
documentation = "https://docs.rs/solana-poh-config" | ||
version = { workspace = true } | ||
authors = { workspace = true } | ||
repository = { workspace = true } | ||
homepage = { workspace = true } | ||
license = { workspace = true } | ||
edition = { workspace = true } | ||
|
||
[package.metadata.docs.rs] | ||
targets = ["x86_64-unknown-linux-gnu"] | ||
all-features = true | ||
rustdoc-args = ["--cfg=docsrs"] | ||
|
||
[dependencies] | ||
serde = { workspace = true, optional = true } | ||
serde_derive = { workspace = true, optional = true } | ||
solana-frozen-abi = { workspace = true, optional = true, features = [ | ||
"frozen-abi", | ||
] } | ||
solana-frozen-abi-macro = { workspace = true, optional = true, features = [ | ||
"frozen-abi", | ||
] } | ||
|
||
[dev-dependencies] | ||
solana-clock = { workspace = true } | ||
static_assertions = { workspace = true } | ||
|
||
[features] | ||
frozen-abi = [ | ||
"dep:solana-frozen-abi", | ||
"dep:solana-frozen-abi-macro", | ||
] | ||
serde = ["dep:serde", "dep:serde_derive"] | ||
|
||
[lints] | ||
workspace = true |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
//! Definitions of Solana's proof of history. | ||
#![cfg_attr(docsrs, feature(doc_auto_cfg))] | ||
#![cfg_attr(feature = "frozen-abi", feature(min_specialization))] | ||
|
||
use std::time::Duration; | ||
|
||
// inlined to avoid solana-clock dep | ||
const DEFAULT_TICKS_PER_SECOND: u64 = 160; | ||
#[cfg(test)] | ||
static_assertions::const_assert_eq!( | ||
DEFAULT_TICKS_PER_SECOND, | ||
solana_clock::DEFAULT_TICKS_PER_SECOND | ||
); | ||
|
||
#[cfg_attr(feature = "frozen-abi", derive(solana_frozen_abi_macro::AbiExample))] | ||
#[cfg_attr( | ||
feature = "serde", | ||
derive(serde_derive::Deserialize, serde_derive::Serialize) | ||
)] | ||
#[derive(Clone, Debug, Eq, PartialEq)] | ||
pub struct PohConfig { | ||
/// The target tick rate of the cluster. | ||
pub target_tick_duration: Duration, | ||
|
||
/// The target total tick count to be produced; used for testing only | ||
pub target_tick_count: Option<u64>, | ||
|
||
/// How many hashes to roll before emitting the next tick entry. | ||
/// None enables "Low power mode", which makes the validator sleep | ||
/// for `target_tick_duration` instead of hashing | ||
pub hashes_per_tick: Option<u64>, | ||
} | ||
|
||
impl PohConfig { | ||
pub fn new_sleep(target_tick_duration: Duration) -> Self { | ||
Self { | ||
target_tick_duration, | ||
hashes_per_tick: None, | ||
target_tick_count: None, | ||
} | ||
} | ||
} | ||
|
||
// the !=0 check was previously done by the unchecked_div_by_const macro | ||
#[cfg(test)] | ||
static_assertions::const_assert!(DEFAULT_TICKS_PER_SECOND != 0); | ||
const DEFAULT_SLEEP_MICROS: u64 = (1000 * 1000) / DEFAULT_TICKS_PER_SECOND; | ||
|
||
impl Default for PohConfig { | ||
fn default() -> Self { | ||
Self::new_sleep(Duration::from_micros(DEFAULT_SLEEP_MICROS)) | ||
} | ||
} |
This file was deleted.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's this change about?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After moving out poh_config, we were getting an unused macro warning that this fixes