mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-15 19:02:42 +00:00
More tree fields, fix bugs
This commit is contained in:
@@ -23,4 +23,11 @@ lazy_static! {
|
||||
"beacon_participation_prev_epoch_active_gwei_total",
|
||||
"Total effective balance (gwei) of validators active in the previous epoch"
|
||||
);
|
||||
/*
|
||||
* Processing metrics
|
||||
*/
|
||||
pub static ref PROCESS_EPOCH_TIME: Result<Histogram> = try_create_histogram(
|
||||
"beacon_state_processing_process_epoch",
|
||||
"Time required for process_epoch",
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#![deny(clippy::wildcard_imports)]
|
||||
|
||||
use crate::metrics;
|
||||
pub use epoch_processing_summary::EpochProcessingSummary;
|
||||
use errors::EpochProcessingError as Error;
|
||||
pub use registry_updates::process_registry_updates;
|
||||
@@ -28,6 +29,8 @@ pub fn process_epoch<T: EthSpec>(
|
||||
state: &mut BeaconState<T>,
|
||||
spec: &ChainSpec,
|
||||
) -> Result<EpochProcessingSummary<T>, Error> {
|
||||
let _timer = metrics::start_timer(&metrics::PROCESS_EPOCH_TIME);
|
||||
|
||||
// Verify that the `BeaconState` instantiation matches the fork at `state.slot()`.
|
||||
state
|
||||
.fork_name(spec)
|
||||
|
||||
@@ -1,19 +1,16 @@
|
||||
use crate::EpochProcessingError;
|
||||
use core::result::Result;
|
||||
use core::result::Result::Ok;
|
||||
use types::beacon_state::BeaconState;
|
||||
use types::eth_spec::EthSpec;
|
||||
use types::participation_flags::ParticipationFlags;
|
||||
use types::VariableList;
|
||||
use types::VList;
|
||||
|
||||
pub fn process_participation_flag_updates<T: EthSpec>(
|
||||
state: &mut BeaconState<T>,
|
||||
) -> Result<(), EpochProcessingError> {
|
||||
*state.previous_epoch_participation_mut()? =
|
||||
std::mem::take(state.current_epoch_participation_mut()?);
|
||||
*state.current_epoch_participation_mut()? = VariableList::new(vec![
|
||||
ParticipationFlags::default(
|
||||
);
|
||||
*state.current_epoch_participation_mut()? = VList::new(vec![
|
||||
ParticipationFlags::default();
|
||||
state.validators().len()
|
||||
])?;
|
||||
Ok(())
|
||||
|
||||
@@ -16,7 +16,7 @@ pub fn process_historical_roots_update<T: EthSpec>(
|
||||
.safe_rem(T::SlotsPerHistoricalRoot::to_u64().safe_div(T::slots_per_epoch())?)?
|
||||
== 0
|
||||
{
|
||||
let historical_batch = state.historical_batch();
|
||||
let historical_batch = state.historical_batch()?;
|
||||
state
|
||||
.historical_roots_mut()
|
||||
.push(historical_batch.tree_hash_root())?;
|
||||
|
||||
@@ -3,7 +3,7 @@ use std::mem;
|
||||
use std::sync::Arc;
|
||||
use types::{
|
||||
BeaconState, BeaconStateAltair, BeaconStateError as Error, ChainSpec, EthSpec, Fork,
|
||||
ParticipationFlags, PendingAttestation, RelativeEpoch, SyncCommittee, VList, VariableList,
|
||||
ParticipationFlags, PendingAttestation, RelativeEpoch, SyncCommittee, VList,
|
||||
};
|
||||
|
||||
/// Translate the participation information from the epoch prior to the fork into Altair's format.
|
||||
@@ -50,7 +50,7 @@ pub fn upgrade_to_altair<E: EthSpec>(
|
||||
let pre = pre_state.as_base_mut()?;
|
||||
|
||||
let default_epoch_participation =
|
||||
VariableList::new(vec![ParticipationFlags::default(); pre.validators.len()])?;
|
||||
VList::new(vec![ParticipationFlags::default(); pre.validators.len()])?;
|
||||
let inactivity_scores = VList::new(vec![0; pre.validators.len()])?;
|
||||
|
||||
let temp_sync_committee = Arc::new(SyncCommittee::temporary()?);
|
||||
|
||||
Reference in New Issue
Block a user