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: SecondsSinceUnixEpoch
the number of seconds since UNIX Epoch
any value between 0 (1/1/1970) and 1099511627775 (20/08/4147) is valid
discrimination: Discrimination
the address discrimination (test or production)
block0_consensus: ConsensusVersion
the 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: LinearFee
the 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: ProposalExpiration
the proposal expiration settings. The default value is 100
.
slots_per_epoch: NumberOfSlotsPerEpoch
number of slots in one given epoch. The default value is 720
.
slot_duration: SlotDuration
the number of seconds between the creation of 2 slots. The default
is 5
seconds.
kes_update_speed: KesUpdateSpeed
number 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: ActiveSlotCoefficient
the active slot coefficient to determine the minimal stake in order to participate to the consensus.
default value is 0.1
block_content_max_size: BlockContentMaxSize
set the block content maximal size
epoch_stability_depth: EpochStabilityDepth
set 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 ==
.