pub struct BeaconStateDelta {Show 22 fields
pub fork: ForkName,
pub base_slot: u64,
pub scalar_header: Vec<u8>,
pub balances: BalancesDiff,
pub validators: ValidatorsDiff,
pub block_roots: RootsDiff,
pub state_roots: RootsDiff,
pub randao_mixes: RandaoDiff,
pub slashings: SlashingsDiff,
pub eth1_data_votes: Eth1DataVotesDiff,
pub historical_roots: Option<HistoricalLogDiff>,
pub previous_epoch_attestations: Option<AttestationsDiff>,
pub current_epoch_attestations: Option<AttestationsDiff>,
pub previous_participation: Option<ParticipationDiff>,
pub current_participation: Option<ParticipationDiff>,
pub inactivity_scores: Option<InactivityDiff>,
pub current_sync_committee: Option<SyncCommitteeDiff>,
pub next_sync_committee: Option<SyncCommitteeDiff>,
pub historical_summaries: Option<HistoricalLogDiff>,
pub pending_deposits: Option<QueueDiff>,
pub pending_partial_withdrawals: Option<QueueDiff>,
pub pending_consolidations: Option<QueueDiff>,
}Expand description
Complete compact representation of the transition between two beacon states.
A BeaconStateDelta contains one specialized delta for each state
component handled by this crate. Applying the delta to the corresponding
base state reconstructs the target state.
The delta records the fork and base slot required to interpret fork-specific fields and circular-buffer updates.
§Fork-specific fields
Fields introduced by later consensus forks are represented as Option<T>:
- Phase 0 fields are present only on Phase 0.
- Altair fields are present on Altair and later forks.
- Capella fields are present on Capella and later forks.
- Electra fields are present on Electra and later forks.
apply validates these invariants before modifying the destination state.
§Serialization
This type derives rkyv::Archive, rkyv::Serialize, and
rkyv::Deserialize and can therefore be archived for storage or
transmission.
The delta algorithms themselves do not require the delta to be serialized.
§Lifecycle
A typical workflow is:
DiffSource
│
▼
create()
│
▼
BeaconStateDelta
│
├── serialize / store / transmit
│
▼
ArchivedBeaconStateDelta
│
▼
apply()
│
▼
DiffTarget§Correctness
The delta is intended to reconstruct the target state represented by the
DiffSource used during creation. The caller is responsible for ensuring
that the destination state corresponds to the base state from which the
delta was created.
Fields§
§fork: ForkName§base_slot: u64§scalar_header: Vec<u8>§balances: BalancesDiff§validators: ValidatorsDiff§block_roots: RootsDiff§state_roots: RootsDiff§randao_mixes: RandaoDiff§slashings: SlashingsDiff§eth1_data_votes: Eth1DataVotesDiff§historical_roots: Option<HistoricalLogDiff>§previous_epoch_attestations: Option<AttestationsDiff>Some for Phase0. None for Altair+.
current_epoch_attestations: Option<AttestationsDiff>§previous_participation: Option<ParticipationDiff>None for Phase0. Some for Altair+.
current_participation: Option<ParticipationDiff>§inactivity_scores: Option<InactivityDiff>§current_sync_committee: Option<SyncCommitteeDiff>§next_sync_committee: Option<SyncCommitteeDiff>§historical_summaries: Option<HistoricalLogDiff>None for pre-Capella. Some for Capella+.
pending_deposits: Option<QueueDiff>None for pre-Electra. Some for Electra+.
pending_partial_withdrawals: Option<QueueDiff>§pending_consolidations: Option<QueueDiff>Trait Implementations§
Source§impl Archive for BeaconStateDeltawhere
ForkName: Archive,
u64: Archive,
Vec<u8>: Archive,
BalancesDiff: Archive,
ValidatorsDiff: Archive,
RootsDiff: Archive,
RandaoDiff: Archive,
SlashingsDiff: Archive,
Eth1DataVotesDiff: Archive,
Option<HistoricalLogDiff>: Archive,
Option<AttestationsDiff>: Archive,
Option<ParticipationDiff>: Archive,
Option<InactivityDiff>: Archive,
Option<SyncCommitteeDiff>: Archive,
Option<QueueDiff>: Archive,
impl Archive for BeaconStateDeltawhere
ForkName: Archive,
u64: Archive,
Vec<u8>: Archive,
BalancesDiff: Archive,
ValidatorsDiff: Archive,
RootsDiff: Archive,
RandaoDiff: Archive,
SlashingsDiff: Archive,
Eth1DataVotesDiff: Archive,
Option<HistoricalLogDiff>: Archive,
Option<AttestationsDiff>: Archive,
Option<ParticipationDiff>: Archive,
Option<InactivityDiff>: Archive,
Option<SyncCommitteeDiff>: Archive,
Option<QueueDiff>: Archive,
Source§const COPY_OPTIMIZATION: CopyOptimization<Self>
const COPY_OPTIMIZATION: CopyOptimization<Self>
serialize. Read moreSource§type Archived = ArchivedBeaconStateDelta
type Archived = ArchivedBeaconStateDelta
Source§type Resolver = BeaconStateDeltaResolver
type Resolver = BeaconStateDeltaResolver
Source§impl Clone for BeaconStateDelta
impl Clone for BeaconStateDelta
Source§fn clone(&self) -> BeaconStateDelta
fn clone(&self) -> BeaconStateDelta
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BeaconStateDelta
impl Debug for BeaconStateDelta
Source§impl<__D: Fallible + ?Sized> Deserialize<BeaconStateDelta, __D> for Archived<BeaconStateDelta>where
ForkName: Archive,
<ForkName as Archive>::Archived: Deserialize<ForkName, __D>,
u64: Archive,
<u64 as Archive>::Archived: Deserialize<u64, __D>,
Vec<u8>: Archive,
<Vec<u8> as Archive>::Archived: Deserialize<Vec<u8>, __D>,
BalancesDiff: Archive,
<BalancesDiff as Archive>::Archived: Deserialize<BalancesDiff, __D>,
ValidatorsDiff: Archive,
<ValidatorsDiff as Archive>::Archived: Deserialize<ValidatorsDiff, __D>,
RootsDiff: Archive,
<RootsDiff as Archive>::Archived: Deserialize<RootsDiff, __D>,
RandaoDiff: Archive,
<RandaoDiff as Archive>::Archived: Deserialize<RandaoDiff, __D>,
SlashingsDiff: Archive,
<SlashingsDiff as Archive>::Archived: Deserialize<SlashingsDiff, __D>,
Eth1DataVotesDiff: Archive,
<Eth1DataVotesDiff as Archive>::Archived: Deserialize<Eth1DataVotesDiff, __D>,
Option<HistoricalLogDiff>: Archive,
<Option<HistoricalLogDiff> as Archive>::Archived: Deserialize<Option<HistoricalLogDiff>, __D>,
Option<AttestationsDiff>: Archive,
<Option<AttestationsDiff> as Archive>::Archived: Deserialize<Option<AttestationsDiff>, __D>,
Option<ParticipationDiff>: Archive,
<Option<ParticipationDiff> as Archive>::Archived: Deserialize<Option<ParticipationDiff>, __D>,
Option<InactivityDiff>: Archive,
<Option<InactivityDiff> as Archive>::Archived: Deserialize<Option<InactivityDiff>, __D>,
Option<SyncCommitteeDiff>: Archive,
<Option<SyncCommitteeDiff> as Archive>::Archived: Deserialize<Option<SyncCommitteeDiff>, __D>,
Option<QueueDiff>: Archive,
<Option<QueueDiff> as Archive>::Archived: Deserialize<Option<QueueDiff>, __D>,
impl<__D: Fallible + ?Sized> Deserialize<BeaconStateDelta, __D> for Archived<BeaconStateDelta>where
ForkName: Archive,
<ForkName as Archive>::Archived: Deserialize<ForkName, __D>,
u64: Archive,
<u64 as Archive>::Archived: Deserialize<u64, __D>,
Vec<u8>: Archive,
<Vec<u8> as Archive>::Archived: Deserialize<Vec<u8>, __D>,
BalancesDiff: Archive,
<BalancesDiff as Archive>::Archived: Deserialize<BalancesDiff, __D>,
ValidatorsDiff: Archive,
<ValidatorsDiff as Archive>::Archived: Deserialize<ValidatorsDiff, __D>,
RootsDiff: Archive,
<RootsDiff as Archive>::Archived: Deserialize<RootsDiff, __D>,
RandaoDiff: Archive,
<RandaoDiff as Archive>::Archived: Deserialize<RandaoDiff, __D>,
SlashingsDiff: Archive,
<SlashingsDiff as Archive>::Archived: Deserialize<SlashingsDiff, __D>,
Eth1DataVotesDiff: Archive,
<Eth1DataVotesDiff as Archive>::Archived: Deserialize<Eth1DataVotesDiff, __D>,
Option<HistoricalLogDiff>: Archive,
<Option<HistoricalLogDiff> as Archive>::Archived: Deserialize<Option<HistoricalLogDiff>, __D>,
Option<AttestationsDiff>: Archive,
<Option<AttestationsDiff> as Archive>::Archived: Deserialize<Option<AttestationsDiff>, __D>,
Option<ParticipationDiff>: Archive,
<Option<ParticipationDiff> as Archive>::Archived: Deserialize<Option<ParticipationDiff>, __D>,
Option<InactivityDiff>: Archive,
<Option<InactivityDiff> as Archive>::Archived: Deserialize<Option<InactivityDiff>, __D>,
Option<SyncCommitteeDiff>: Archive,
<Option<SyncCommitteeDiff> as Archive>::Archived: Deserialize<Option<SyncCommitteeDiff>, __D>,
Option<QueueDiff>: Archive,
<Option<QueueDiff> as Archive>::Archived: Deserialize<Option<QueueDiff>, __D>,
Source§fn deserialize(
&self,
deserializer: &mut __D,
) -> Result<BeaconStateDelta, <__D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut __D, ) -> Result<BeaconStateDelta, <__D as Fallible>::Error>
impl Eq for BeaconStateDelta
Source§impl PartialEq for BeaconStateDelta
impl PartialEq for BeaconStateDelta
Source§impl<__S: Fallible + ?Sized> Serialize<__S> for BeaconStateDeltawhere
ForkName: Serialize<__S>,
u64: Serialize<__S>,
Vec<u8>: Serialize<__S>,
BalancesDiff: Serialize<__S>,
ValidatorsDiff: Serialize<__S>,
RootsDiff: Serialize<__S>,
RandaoDiff: Serialize<__S>,
SlashingsDiff: Serialize<__S>,
Eth1DataVotesDiff: Serialize<__S>,
Option<HistoricalLogDiff>: Serialize<__S>,
Option<AttestationsDiff>: Serialize<__S>,
Option<ParticipationDiff>: Serialize<__S>,
Option<InactivityDiff>: Serialize<__S>,
Option<SyncCommitteeDiff>: Serialize<__S>,
Option<QueueDiff>: Serialize<__S>,
impl<__S: Fallible + ?Sized> Serialize<__S> for BeaconStateDeltawhere
ForkName: Serialize<__S>,
u64: Serialize<__S>,
Vec<u8>: Serialize<__S>,
BalancesDiff: Serialize<__S>,
ValidatorsDiff: Serialize<__S>,
RootsDiff: Serialize<__S>,
RandaoDiff: Serialize<__S>,
SlashingsDiff: Serialize<__S>,
Eth1DataVotesDiff: Serialize<__S>,
Option<HistoricalLogDiff>: Serialize<__S>,
Option<AttestationsDiff>: Serialize<__S>,
Option<ParticipationDiff>: Serialize<__S>,
Option<InactivityDiff>: Serialize<__S>,
Option<SyncCommitteeDiff>: Serialize<__S>,
Option<QueueDiff>: Serialize<__S>,
impl StructuralPartialEq for BeaconStateDelta
Auto Trait Implementations§
impl Freeze for BeaconStateDelta
impl RefUnwindSafe for BeaconStateDelta
impl Send for BeaconStateDelta
impl Sync for BeaconStateDelta
impl Unpin for BeaconStateDelta
impl UnsafeUnpin for BeaconStateDelta
impl UnwindSafe for BeaconStateDelta
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T> ArchiveUnsized for Twhere
T: Archive,
impl<T> ArchiveUnsized for Twhere
T: Archive,
Source§type Archived = <T as Archive>::Archived
type Archived = <T as Archive>::Archived
Archive, it may be
unsized. Read moreSource§fn archived_metadata(
&self,
) -> <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata
fn archived_metadata( &self, ) -> <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.