pub struct BlockchainConfiguration {Show 20 fields
pub block0_date: SecondsSinceUnixEpoch,
pub discrimination: Discrimination,
pub block0_consensus: ConsensusVersion,
pub consensus_leader_ids: Vec<ConsensusLeaderId>,
pub linear_fees: LinearFee,
pub proposal_expiration: ProposalExpiration,
pub slots_per_epoch: NumberOfSlotsPerEpoch,
pub slot_duration: SlotDuration,
pub kes_update_speed: KesUpdateSpeed,
pub consensus_genesis_praos_active_slot_coeff: ActiveSlotCoefficient,
pub block_content_max_size: BlockContentMaxSize,
pub epoch_stability_depth: EpochStabilityDepth,
pub tx_max_expiry_epochs: Option<u8>,
pub fees_go_to: Option<FeesGoTo>,
pub treasury: Option<Value>,
pub treasury_parameters: Option<TaxType>,
pub total_reward_supply: Option<Value>,
pub reward_parameters: Option<RewardParams>,
pub reward_constraints: RewardConstraints,
pub committees: Vec<CommitteeIdDef>,
}Expand description
Initial blockchain configuration for block0
Fields§
§block0_date: SecondsSinceUnixEpochthe number of seconds since UNIX Epoch
any value between 0 (1/1/1970) and 1099511627775 (20/08/4147) is valid
discrimination: Discriminationthe address discrimination (test or production)
block0_consensus: ConsensusVersionthe type of consensus to utilise from the starting point of the
blockchain. bft or genesis
consensus_leader_ids: Vec<ConsensusLeaderId>the list of consensus leaders
depending of block0_consensus value:
bft: will be the list of BFT leaders, they will write blocks in a round robin fashion, filling every blocks deterministically.genesis: will be the list of leaders that will take over creating blocks from the stake pool. Useful for during transition from BFT to genesis.
If the consensus_version is bft. This value cannot be left empty.
linear_fees: LinearFeethe linear fee settings.
- constant is the minimal fee to pay for any kind of transaction
- coefficient will be added for every inputs and outputs
- certificate will be added if a certificate is embedded
constant + coefficient * (num_inputs + num_outputs) [+ certificate]
proposal_expiration: ProposalExpirationthe proposal expiration settings. The default value is 100.
slots_per_epoch: NumberOfSlotsPerEpochnumber of slots in one given epoch. The default value is 720.
slot_duration: SlotDurationthe number of seconds between the creation of 2 slots. The default
is 5 seconds.
kes_update_speed: KesUpdateSpeednumber of seconds between 2 required KES Key updates.
KES means, Key Evolving Signature. It is the scheme used in genesis to sign blocks and guarantee that one block signer cannot reuse a key that was valid at a given state when to create a fork.
consensus_genesis_praos_active_slot_coeff: ActiveSlotCoefficientthe active slot coefficient to determine the minimal stake in order to participate to the consensus.
default value is 0.1
block_content_max_size: BlockContentMaxSizeset the block content maximal size
epoch_stability_depth: EpochStabilityDepthset the maximal depth from which a fork will no longer be considered valid
tx_max_expiry_epochs: Option<u8>set the maximum number of epochs a transaction can reside in the mempool
fees_go_to: Option<FeesGoTo>Fees go to settings, the default being rewards.
treasury: Option<Value>Set the default value in the treasury. if omitted then the treasury starts with the value of 0
treasury_parameters: Option<TaxType>set the treasure parameters, i.e. the first value the treasury will take from the rewards pot and fees.
total_reward_supply: Option<Value>Set the value of the reward pot. if omitted then the reward pot is empty
reward_parameters: Option<RewardParams>The reward settings for the reward policy. No reward settings means no reward distributed at all.
reward_constraints: RewardConstraints§committees: Vec<CommitteeIdDef>the committee members for the voting management
Implementations§
source§impl BlockchainConfiguration
impl BlockchainConfiguration
pub fn new( discrimination: Discrimination, block0_consensus: ConsensusVersion, linear_fees: LinearFee ) -> Self
fn from_config_params( params: ConfigParams ) -> Result<Self, FromConfigParamsError>
fn into_config_params(self) -> ConfigParams
Trait Implementations§
source§impl Clone for BlockchainConfiguration
impl Clone for BlockchainConfiguration
source§fn clone(&self) -> BlockchainConfiguration
fn clone(&self) -> BlockchainConfiguration
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl Debug for BlockchainConfiguration
impl Debug for BlockchainConfiguration
source§impl<'de> Deserialize<'de> for BlockchainConfiguration
impl<'de> Deserialize<'de> for BlockchainConfiguration
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,
source§impl From<BlockchainConfiguration> for ConfigParams
impl From<BlockchainConfiguration> for ConfigParams
source§fn from(blockchain_configuration: BlockchainConfiguration) -> Self
fn from(blockchain_configuration: BlockchainConfiguration) -> Self
source§impl PartialEq<BlockchainConfiguration> for BlockchainConfiguration
impl PartialEq<BlockchainConfiguration> for BlockchainConfiguration
source§fn eq(&self, other: &BlockchainConfiguration) -> bool
fn eq(&self, other: &BlockchainConfiguration) -> bool
self and other values to be equal, and is used
by ==.