Update BeaconState rename ShardCommittee

Both structs are now consistent with the spec.

Addresses #100
This commit is contained in:
Paul Hauner 2018-12-12 18:25:21 +11:00
parent 7808835f1c
commit 89bea5b5e8
No known key found for this signature in database
GPG Key ID: 303E4494BB28068C
3 changed files with 22 additions and 11 deletions

View File

@ -2,33 +2,44 @@ use super::candidate_pow_receipt_root_record::CandidatePoWReceiptRootRecord;
use super::crosslink_record::CrosslinkRecord; use super::crosslink_record::CrosslinkRecord;
use super::fork_data::ForkData; use super::fork_data::ForkData;
use super::pending_attestation_record::PendingAttestationRecord; use super::pending_attestation_record::PendingAttestationRecord;
use super::shard_and_committee::ShardAndCommittee; use super::shard_committee::ShardCommittee;
use super::shard_reassignment_record::ShardReassignmentRecord; use super::shard_reassignment_record::ShardReassignmentRecord;
use super::validator_record::ValidatorRecord; use super::validator_record::ValidatorRecord;
use super::Hash256; use super::Hash256;
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq)]
pub struct BeaconState { pub struct BeaconState {
// Misc
pub slot: u64,
pub genesis_time: u64,
pub fork_data: ForkData,
// Validator registry
pub validator_registry: Vec<ValidatorRecord>, pub validator_registry: Vec<ValidatorRecord>,
pub validator_registry_latest_change_slot: u64, pub validator_registry_latest_change_slot: u64,
pub validator_registry_exit_count: u64, pub validator_registry_exit_count: u64,
pub validator_registry_delta_chain_tip: Hash256, pub validator_registry_delta_chain_tip: Hash256,
// Randomness and committees
pub randao_mix: Hash256, pub randao_mix: Hash256,
pub next_seed: Hash256, pub next_seed: Hash256,
pub shard_and_committee_for_slots: Vec<Vec<ShardAndCommittee>>, pub shard_committees_at_slots: Vec<Vec<ShardCommittee>>,
pub persistent_committees: Vec<Vec<u32>>, pub persistent_committees: Vec<Vec<u32>>,
pub persistent_committee_reassignments: Vec<ShardReassignmentRecord>, pub persistent_committee_reassignments: Vec<ShardReassignmentRecord>,
// Finality
pub previous_justified_slot: u64, pub previous_justified_slot: u64,
pub justified_slot: u64, pub justified_slot: u64,
pub justified_slot_bitfield: u64, pub justification_bitfield: u64,
pub finalized_slot: u64, pub finalized_slot: u64,
// Recent state
pub latest_crosslinks: Vec<CrosslinkRecord>, pub latest_crosslinks: Vec<CrosslinkRecord>,
pub latest_state_recalculation_slot: u64, pub latest_block_roots: Vec<Hash256>,
pub latest_block_hashes: Vec<Hash256>,
pub latest_penalized_exit_balances: Vec<u64>, pub latest_penalized_exit_balances: Vec<u64>,
pub latest_attestations: Vec<PendingAttestationRecord>, pub latest_attestations: Vec<PendingAttestationRecord>,
// PoW receipt root
pub processed_pow_receipt_root: Hash256, pub processed_pow_receipt_root: Hash256,
pub candidate_pow_receipt_roots: Vec<CandidatePoWReceiptRootRecord>, pub candidate_pow_receipt_roots: Vec<CandidatePoWReceiptRootRecord>,
pub genesis_time: u64,
pub fork_data: ForkData,
} }

View File

@ -14,7 +14,7 @@ pub mod crosslink_record;
pub mod crystallized_state; pub mod crystallized_state;
pub mod fork_data; pub mod fork_data;
pub mod pending_attestation_record; pub mod pending_attestation_record;
pub mod shard_and_committee; pub mod shard_committee;
pub mod shard_reassignment_record; pub mod shard_reassignment_record;
pub mod special_record; pub mod special_record;
pub mod validator_record; pub mod validator_record;
@ -33,7 +33,7 @@ pub use crosslink_record::CrosslinkRecord;
pub use crystallized_state::CrystallizedState; pub use crystallized_state::CrystallizedState;
pub use fork_data::ForkData; pub use fork_data::ForkData;
pub use pending_attestation_record::PendingAttestationRecord; pub use pending_attestation_record::PendingAttestationRecord;
pub use shard_and_committee::ShardAndCommittee; pub use shard_committee::ShardCommittee;
pub use special_record::{SpecialRecord, SpecialRecordKind}; pub use special_record::{SpecialRecord, SpecialRecordKind};
pub use validator_record::{ValidatorRecord, ValidatorStatus}; pub use validator_record::{ValidatorRecord, ValidatorStatus};
pub use validator_registration::ValidatorRegistration; pub use validator_registration::ValidatorRegistration;

View File

@ -1,10 +1,10 @@
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq)]
pub struct ShardAndCommittee { pub struct ShardCommittee {
pub shard: u16, pub shard: u16,
pub committee: Vec<usize>, pub committee: Vec<usize>,
} }
impl ShardAndCommittee { impl ShardCommittee {
/// Returns a new instance where the `shard_id` is zero and the /// Returns a new instance where the `shard_id` is zero and the
/// committee is an empty vector. /// committee is an empty vector.
pub fn zero() -> Self { pub fn zero() -> Self {