Fix file org. inconsistency in types
This commit is contained in:
parent
b2173c1a16
commit
c4bedc03a8
@ -1,7 +1,96 @@
|
|||||||
use crate::{Address, ChainSpec, Epoch, Hash256, Signature, Slot};
|
use crate::{Address, Epoch, Hash256, Slot};
|
||||||
|
use bls::Signature;
|
||||||
|
|
||||||
const GWEI: u64 = 1_000_000_000;
|
const GWEI: u64 = 1_000_000_000;
|
||||||
|
|
||||||
|
/// Holds all the "constants" for a BeaconChain.
|
||||||
|
///
|
||||||
|
/// Spec v0.2.0
|
||||||
|
#[derive(PartialEq, Debug, Clone)]
|
||||||
|
pub struct ChainSpec {
|
||||||
|
/*
|
||||||
|
* Misc
|
||||||
|
*/
|
||||||
|
pub shard_count: u64,
|
||||||
|
pub target_committee_size: u64,
|
||||||
|
pub max_balance_churn_quotient: u64,
|
||||||
|
pub beacon_chain_shard_number: u64,
|
||||||
|
pub max_indices_per_slashable_vote: u64,
|
||||||
|
pub max_withdrawals_per_epoch: u64,
|
||||||
|
pub shuffle_round_count: u8,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Deposit contract
|
||||||
|
*/
|
||||||
|
pub deposit_contract_address: Address,
|
||||||
|
pub deposit_contract_tree_depth: u64,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Gwei values
|
||||||
|
*/
|
||||||
|
pub min_deposit_amount: u64,
|
||||||
|
pub max_deposit_amount: u64,
|
||||||
|
pub fork_choice_balance_increment: u64,
|
||||||
|
pub ejection_balance: u64,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initial Values
|
||||||
|
*/
|
||||||
|
pub genesis_fork_version: u64,
|
||||||
|
pub genesis_slot: Slot,
|
||||||
|
pub genesis_epoch: Epoch,
|
||||||
|
pub genesis_start_shard: u64,
|
||||||
|
pub far_future_epoch: Epoch,
|
||||||
|
pub zero_hash: Hash256,
|
||||||
|
pub empty_signature: Signature,
|
||||||
|
pub bls_withdrawal_prefix_byte: u8,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Time parameters
|
||||||
|
*/
|
||||||
|
pub slot_duration: u64,
|
||||||
|
pub min_attestation_inclusion_delay: u64,
|
||||||
|
pub epoch_length: u64,
|
||||||
|
pub seed_lookahead: Epoch,
|
||||||
|
pub entry_exit_delay: u64,
|
||||||
|
pub eth1_data_voting_period: u64,
|
||||||
|
pub min_validator_withdrawal_epochs: Epoch,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* State list lengths
|
||||||
|
*/
|
||||||
|
pub latest_block_roots_length: usize,
|
||||||
|
pub latest_randao_mixes_length: usize,
|
||||||
|
pub latest_index_roots_length: usize,
|
||||||
|
pub latest_penalized_exit_length: usize,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Reward and penalty quotients
|
||||||
|
*/
|
||||||
|
pub base_reward_quotient: u64,
|
||||||
|
pub whistleblower_reward_quotient: u64,
|
||||||
|
pub includer_reward_quotient: u64,
|
||||||
|
pub inactivity_penalty_quotient: u64,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Max operations per block
|
||||||
|
*/
|
||||||
|
pub max_proposer_slashings: u64,
|
||||||
|
pub max_attester_slashings: u64,
|
||||||
|
pub max_attestations: u64,
|
||||||
|
pub max_deposits: u64,
|
||||||
|
pub max_exits: u64,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Signature domains
|
||||||
|
*/
|
||||||
|
pub domain_deposit: u64,
|
||||||
|
pub domain_attestation: u64,
|
||||||
|
pub domain_proposal: u64,
|
||||||
|
pub domain_exit: u64,
|
||||||
|
pub domain_randao: u64,
|
||||||
|
}
|
||||||
|
|
||||||
impl ChainSpec {
|
impl ChainSpec {
|
||||||
/// Returns a `ChainSpec` compatible with the specification from Ethereum Foundation.
|
/// Returns a `ChainSpec` compatible with the specification from Ethereum Foundation.
|
||||||
///
|
///
|
||||||
@ -100,6 +189,26 @@ impl ChainSpec {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl ChainSpec {
|
||||||
|
/// Returns a `ChainSpec` compatible with the specification suitable for 8 validators.
|
||||||
|
///
|
||||||
|
/// Spec v0.2.0
|
||||||
|
pub fn few_validators() -> Self {
|
||||||
|
let genesis_slot = Slot::new(2_u64.pow(19));
|
||||||
|
let epoch_length = 8;
|
||||||
|
let genesis_epoch = genesis_slot.epoch(epoch_length);
|
||||||
|
|
||||||
|
Self {
|
||||||
|
shard_count: 1,
|
||||||
|
target_committee_size: 1,
|
||||||
|
genesis_slot,
|
||||||
|
genesis_epoch,
|
||||||
|
epoch_length,
|
||||||
|
..ChainSpec::foundation()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
@ -8,6 +8,7 @@ pub mod beacon_block;
|
|||||||
pub mod beacon_block_body;
|
pub mod beacon_block_body;
|
||||||
pub mod beacon_state;
|
pub mod beacon_state;
|
||||||
pub mod casper_slashing;
|
pub mod casper_slashing;
|
||||||
|
pub mod chain_spec;
|
||||||
pub mod crosslink;
|
pub mod crosslink;
|
||||||
pub mod deposit;
|
pub mod deposit;
|
||||||
pub mod deposit_data;
|
pub mod deposit_data;
|
||||||
@ -28,7 +29,6 @@ pub mod slashable_vote_data;
|
|||||||
pub mod slot_epoch_macros;
|
pub mod slot_epoch_macros;
|
||||||
pub mod slot_epoch;
|
pub mod slot_epoch;
|
||||||
pub mod slot_height;
|
pub mod slot_height;
|
||||||
pub mod spec;
|
|
||||||
pub mod validator;
|
pub mod validator;
|
||||||
pub mod validator_registry;
|
pub mod validator_registry;
|
||||||
pub mod validator_registry_delta_block;
|
pub mod validator_registry_delta_block;
|
||||||
@ -44,6 +44,7 @@ pub use crate::beacon_block::BeaconBlock;
|
|||||||
pub use crate::beacon_block_body::BeaconBlockBody;
|
pub use crate::beacon_block_body::BeaconBlockBody;
|
||||||
pub use crate::beacon_state::BeaconState;
|
pub use crate::beacon_state::BeaconState;
|
||||||
pub use crate::casper_slashing::CasperSlashing;
|
pub use crate::casper_slashing::CasperSlashing;
|
||||||
|
pub use crate::chain_spec::ChainSpec;
|
||||||
pub use crate::crosslink::Crosslink;
|
pub use crate::crosslink::Crosslink;
|
||||||
pub use crate::deposit::Deposit;
|
pub use crate::deposit::Deposit;
|
||||||
pub use crate::deposit_data::DepositData;
|
pub use crate::deposit_data::DepositData;
|
||||||
@ -60,7 +61,6 @@ pub use crate::slashable_attestation::SlashableAttestation;
|
|||||||
pub use crate::slashable_vote_data::SlashableVoteData;
|
pub use crate::slashable_vote_data::SlashableVoteData;
|
||||||
pub use crate::slot_epoch::{Epoch, Slot};
|
pub use crate::slot_epoch::{Epoch, Slot};
|
||||||
pub use crate::slot_height::SlotHeight;
|
pub use crate::slot_height::SlotHeight;
|
||||||
pub use crate::spec::ChainSpec;
|
|
||||||
pub use crate::validator::{StatusFlags as ValidatorStatusFlags, Validator};
|
pub use crate::validator::{StatusFlags as ValidatorStatusFlags, Validator};
|
||||||
pub use crate::validator_registry_delta_block::ValidatorRegistryDeltaBlock;
|
pub use crate::validator_registry_delta_block::ValidatorRegistryDeltaBlock;
|
||||||
|
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
use crate::{ChainSpec, Slot};
|
|
||||||
|
|
||||||
impl ChainSpec {
|
|
||||||
/// Returns a `ChainSpec` compatible with the specification suitable for 8 validators.
|
|
||||||
///
|
|
||||||
/// Spec v0.2.0
|
|
||||||
pub fn few_validators() -> Self {
|
|
||||||
let genesis_slot = Slot::new(2_u64.pow(19));
|
|
||||||
let epoch_length = 8;
|
|
||||||
let genesis_epoch = genesis_slot.epoch(epoch_length);
|
|
||||||
|
|
||||||
Self {
|
|
||||||
shard_count: 1,
|
|
||||||
target_committee_size: 1,
|
|
||||||
genesis_slot,
|
|
||||||
genesis_epoch,
|
|
||||||
epoch_length,
|
|
||||||
..ChainSpec::foundation()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,93 +0,0 @@
|
|||||||
mod few_validators;
|
|
||||||
mod foundation;
|
|
||||||
|
|
||||||
use crate::{Address, Epoch, Hash256, Slot};
|
|
||||||
use bls::Signature;
|
|
||||||
|
|
||||||
/// Holds all the "constants" for a BeaconChain.
|
|
||||||
///
|
|
||||||
/// Spec v0.2.0
|
|
||||||
#[derive(PartialEq, Debug, Clone)]
|
|
||||||
pub struct ChainSpec {
|
|
||||||
/*
|
|
||||||
* Misc
|
|
||||||
*/
|
|
||||||
pub shard_count: u64,
|
|
||||||
pub target_committee_size: u64,
|
|
||||||
pub max_balance_churn_quotient: u64,
|
|
||||||
pub beacon_chain_shard_number: u64,
|
|
||||||
pub max_indices_per_slashable_vote: u64,
|
|
||||||
pub max_withdrawals_per_epoch: u64,
|
|
||||||
pub shuffle_round_count: u8,
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Deposit contract
|
|
||||||
*/
|
|
||||||
pub deposit_contract_address: Address,
|
|
||||||
pub deposit_contract_tree_depth: u64,
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Gwei values
|
|
||||||
*/
|
|
||||||
pub min_deposit_amount: u64,
|
|
||||||
pub max_deposit_amount: u64,
|
|
||||||
pub fork_choice_balance_increment: u64,
|
|
||||||
pub ejection_balance: u64,
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Initial Values
|
|
||||||
*/
|
|
||||||
pub genesis_fork_version: u64,
|
|
||||||
pub genesis_slot: Slot,
|
|
||||||
pub genesis_epoch: Epoch,
|
|
||||||
pub genesis_start_shard: u64,
|
|
||||||
pub far_future_epoch: Epoch,
|
|
||||||
pub zero_hash: Hash256,
|
|
||||||
pub empty_signature: Signature,
|
|
||||||
pub bls_withdrawal_prefix_byte: u8,
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Time parameters
|
|
||||||
*/
|
|
||||||
pub slot_duration: u64,
|
|
||||||
pub min_attestation_inclusion_delay: u64,
|
|
||||||
pub epoch_length: u64,
|
|
||||||
pub seed_lookahead: Epoch,
|
|
||||||
pub entry_exit_delay: u64,
|
|
||||||
pub eth1_data_voting_period: u64,
|
|
||||||
pub min_validator_withdrawal_epochs: Epoch,
|
|
||||||
|
|
||||||
/*
|
|
||||||
* State list lengths
|
|
||||||
*/
|
|
||||||
pub latest_block_roots_length: usize,
|
|
||||||
pub latest_randao_mixes_length: usize,
|
|
||||||
pub latest_index_roots_length: usize,
|
|
||||||
pub latest_penalized_exit_length: usize,
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Reward and penalty quotients
|
|
||||||
*/
|
|
||||||
pub base_reward_quotient: u64,
|
|
||||||
pub whistleblower_reward_quotient: u64,
|
|
||||||
pub includer_reward_quotient: u64,
|
|
||||||
pub inactivity_penalty_quotient: u64,
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Max operations per block
|
|
||||||
*/
|
|
||||||
pub max_proposer_slashings: u64,
|
|
||||||
pub max_attester_slashings: u64,
|
|
||||||
pub max_attestations: u64,
|
|
||||||
pub max_deposits: u64,
|
|
||||||
pub max_exits: u64,
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Signature domains
|
|
||||||
*/
|
|
||||||
pub domain_deposit: u64,
|
|
||||||
pub domain_attestation: u64,
|
|
||||||
pub domain_proposal: u64,
|
|
||||||
pub domain_exit: u64,
|
|
||||||
pub domain_randao: u64,
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user