Struct ckb_chain_spec::consensus::Consensus [−][src]
pub struct Consensus {Show 28 fields
pub id: String,
pub genesis_block: BlockView,
pub genesis_hash: Byte32,
pub dao_type_hash: Option<Byte32>,
pub secp256k1_blake160_sighash_all_type_hash: Option<Byte32>,
pub secp256k1_blake160_multisig_all_type_hash: Option<Byte32>,
pub initial_primary_epoch_reward: Capacity,
pub secondary_epoch_reward: Capacity,
pub max_uncles_num: usize,
pub orphan_rate_target: RationalU256,
pub epoch_duration_target: u64,
pub tx_proposal_window: ProposalWindow,
pub proposer_reward_ratio: Ratio,
pub pow: Pow,
pub cellbase_maturity: EpochNumberWithFraction,
pub median_time_block_count: usize,
pub max_block_cycles: Cycle,
pub max_block_bytes: u64,
pub block_version: Version,
pub tx_version: Version,
pub type_id_code_hash: H256,
pub max_block_proposals_limit: u64,
pub genesis_epoch_ext: EpochExt,
pub satoshi_pubkey_hash: H160,
pub satoshi_cell_occupied_ratio: Ratio,
pub primary_epoch_reward_halving_interval: EpochNumber,
pub permanent_difficulty_in_dummy: bool,
pub hardfork_switch: HardForkSwitch,
}Expand description
Struct Consensus defines various parameters that influence chain consensus
Fields
id: StringNames the network.
genesis_block: BlockViewThe genesis block
genesis_hash: Byte32The genesis block hash
dao_type_hash: Option<Byte32>The dao type hash
secp256k1_blake160_sighash_all_type_hash: Option<Byte32>The secp256k1_blake160_sighash_all_type_hash
secp256k1_blake160_multisig_all_type_hash: Option<Byte32>The secp256k1_blake160_multisig_all_type_hash
initial_primary_epoch_reward: CapacityThe initial primary_epoch_reward
secondary_epoch_reward: CapacityThe secondary primary_epoch_reward
max_uncles_num: usizeThe maximum amount of uncles allowed for a block
orphan_rate_target: RationalU256The expected orphan_rate
epoch_duration_target: u64The expected epoch_duration
tx_proposal_window: ProposalWindowThe two-step-transaction-confirmation proposal window
proposer_reward_ratio: RatioThe two-step-transaction-confirmation proposer reward ratio
pow: PowThe pow parameters
cellbase_maturity: EpochNumberWithFractionThe Cellbase maturity
For each input, if the referenced output transaction is cellbase,
it must have at least cellbase_maturity confirmations;
else reject this transaction.
median_time_block_count: usizeThis parameter indicates the count of past blocks used in the median time calculation
max_block_cycles: CycleMaximum cycles that all the scripts in all the commit transactions can take
max_block_bytes: u64Maximum number of bytes to use for the entire block
block_version: VersionThe block version number supported
tx_version: VersionThe tx version number supported
type_id_code_hash: H256The “TYPE_ID” in hex
max_block_proposals_limit: u64The Limit to the number of proposals per block
genesis_epoch_ext: EpochExtThe genesis epoch information
satoshi_pubkey_hash: H160Satoshi’s pubkey hash in Bitcoin genesis.
satoshi_cell_occupied_ratio: RatioRatio of satoshi cell occupied of capacity, only affects genesis cellbase’s satoshi lock cells.
primary_epoch_reward_halving_interval: EpochNumberPrimary reward is cut in half every halving_interval epoch which will occur approximately every 4 years.
permanent_difficulty_in_dummy: boolKeep difficulty be permanent if the pow is dummy
hardfork_switch: HardForkSwitchA switch to select hard fork features base on the epoch number.
Implementations
The genesis block
The two-step-transaction-confirmation proposer reward ratio
The two-step-transaction-confirmation block reward delay length
Get block reward finalize number from specified block number
The genesis block hash
The dao type hash
The secp256k1_blake160_sighash_all_type_hash
The secp256k1_blake160_multisig_all_type_hash
The maximum amount of uncles allowed for a block
The minimum difficulty (genesis_block difficulty)
The minimum difficulty (genesis_block difficulty)
The initial primary_epoch_reward
Primary reward is cut in half every halving_interval epoch which will occur approximately every 4 years.
The expected epoch_duration
The genesis epoch information
The maximum epoch length
The minimum epoch length
The secondary primary_epoch_reward
The expected orphan_rate
The pow_engine
The permanent_difficulty mode
The cellbase_maturity
This parameter indicates the count of past blocks used in the median time calculation
Maximum cycles that all the scripts in all the commit transactions can take
Maximum number of bytes to use for the entire block
The Limit to the number of proposals per block
The current block version
The current transaction version
The “TYPE_ID” in hex
The two-step-transaction-confirmation proposal window
pub fn next_epoch_ext<P: EpochProvider>(
&self,
header: &HeaderView,
provider: &P
) -> Option<NextBlockEpoch>
pub fn next_epoch_ext<P: EpochProvider>(
&self,
header: &HeaderView,
provider: &P
) -> Option<NextBlockEpoch>
The dynamic-difficulty-adjustment-mechanism implementation
The network identify name, used for network identify protocol
The secp256k1_blake160_sighash_all code hash
Returns the hardfork switch.
If the CKB block chain specification is for an public chain.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Consensus
impl UnwindSafe for Consensus
Blanket Implementations
Mutably borrows from an owned value. Read more