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

source

pub fn new( discrimination: Discrimination, block0_consensus: ConsensusVersion, linear_fees: LinearFee ) -> Self

source

fn from_config_params( params: ConfigParams ) -> Result<Self, FromConfigParamsError>

source

fn into_config_params(self) -> ConfigParams

Trait Implementations§

source§

impl Clone for BlockchainConfiguration

source§

fn clone(&self) -> BlockchainConfiguration

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BlockchainConfiguration

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for BlockchainConfiguration

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl From<BlockchainConfiguration> for ConfigParams

source§

fn from(blockchain_configuration: BlockchainConfiguration) -> Self

Converts to this type from the input type.
source§

impl PartialEq<BlockchainConfiguration> for BlockchainConfiguration

source§

fn eq(&self, other: &BlockchainConfiguration) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for BlockchainConfiguration

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TryFrom<ConfigParams> for BlockchainConfiguration

§

type Error = FromConfigParamsError

The type returned in the event of a conversion error.
source§

fn try_from(params: ConfigParams) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl Eq for BlockchainConfiguration

source§

impl StructuralEq for BlockchainConfiguration

source§

impl StructuralPartialEq for BlockchainConfiguration

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere T: for<'de> Deserialize<'de>,