#[non_exhaustive]pub struct Params {Show 13 fields
pub network: Network,
pub bip16_time: u32,
pub bip34_height: u32,
pub bip65_height: u32,
pub bip66_height: u32,
pub rule_change_activation_threshold: u32,
pub miner_confirmation_window: u32,
pub pow_limit: Target,
pub max_attainable_target: Target,
pub pow_target_spacing: u64,
pub pow_target_timespan: u64,
pub allow_min_difficulty_blocks: bool,
pub no_pow_retargeting: bool,
}
Expand description
Parameters that influence chain consensus.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.network: Network
Network for which parameters are valid.
bip16_time: u32
Time when BIP16 becomes active.
bip34_height: u32
Block height at which BIP34 becomes active.
bip65_height: u32
Block height at which BIP65 becomes active.
bip66_height: u32
Block height at which BIP66 becomes active.
rule_change_activation_threshold: u32
Minimum blocks including miner confirmation of the total of 2016 blocks in a retargeting period, (nPowTargetTimespan / nPowTargetSpacing) which is also used for BIP9 deployments. Examples: 1916 for 95%, 1512 for testchains.
miner_confirmation_window: u32
Number of blocks with the same set of rules.
pow_limit: Target
Proof of work limit value. It contains the lowest possible difficulty.
max_attainable_target: Target
The maximum attainable target value for these params.
Not all target values are attainable because consensus code uses the compact format to
represent targets (see [CompactTarget
]).
Note that this value differs from Bitcoin Core’s powLimit field in that this value is attainable, but Bitcoin Core’s is not. Specifically, because targets in Bitcoin are always rounded to the nearest float expressible in “compact form”, not all targets are attainable. Still, this should not affect consensus as the only place where the non-compact form of this is used in Bitcoin Core’s consensus algorithm is in comparison and there are no compact-expressible values between Bitcoin Core’s and the limit expressed here.
pow_target_spacing: u64
Expected amount of time to mine one block.
pow_target_timespan: u64
Difficulty recalculation interval.
allow_min_difficulty_blocks: bool
Determines whether minimal difficulty may be used for blocks or not.
no_pow_retargeting: bool
Determines whether retargeting is disabled for this network or not.
Implementations§
§impl Params
impl Params
pub fn difficulty_adjustment_interval(&self) -> u64
pub fn difficulty_adjustment_interval(&self) -> u64
Calculates the number of blocks between difficulty adjustments.