pub struct BankIncrementalSnapshotPersistence {
pub full_slot: Slot,
pub full_hash: SerdeAccountsHash,
pub full_capitalization: u64,
pub incremental_hash: SerdeIncrementalAccountsHash,
pub incremental_capitalization: u64,
}
Expand description
Incremental snapshots only calculate their accounts hash based on the account changes WITHIN the incremental slot range. So, we need to keep track of the full snapshot expected accounts hash results. We also need to keep track of the hash and capitalization specific to the incremental snapshot slot range. The capitalization we calculate for the incremental slot will NOT be consistent with the bank’s capitalization. It is not feasible to calculate a capitalization delta that is correct given just incremental slots account data and the full snapshot’s capitalization.
Fields§
§full_slot: Slot
slot of full snapshot
full_hash: SerdeAccountsHash
accounts hash from the full snapshot
full_capitalization: u64
capitalization from the full snapshot
incremental_hash: SerdeIncrementalAccountsHash
hash of the accounts in the incremental snapshot slot range, including zero-lamport accounts
incremental_capitalization: u64
capitalization of the accounts in the incremental snapshot slot range
Trait Implementations§
source§impl Clone for BankIncrementalSnapshotPersistence
impl Clone for BankIncrementalSnapshotPersistence
source§fn clone(&self) -> BankIncrementalSnapshotPersistence
fn clone(&self) -> BankIncrementalSnapshotPersistence
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Default for BankIncrementalSnapshotPersistence
impl Default for BankIncrementalSnapshotPersistence
source§fn default() -> BankIncrementalSnapshotPersistence
fn default() -> BankIncrementalSnapshotPersistence
source§impl<'de> Deserialize<'de> for BankIncrementalSnapshotPersistence
impl<'de> Deserialize<'de> for BankIncrementalSnapshotPersistence
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl PartialEq for BankIncrementalSnapshotPersistence
impl PartialEq for BankIncrementalSnapshotPersistence
source§fn eq(&self, other: &BankIncrementalSnapshotPersistence) -> bool
fn eq(&self, other: &BankIncrementalSnapshotPersistence) -> bool
self
and other
values to be equal, and is used by ==
.impl Eq for BankIncrementalSnapshotPersistence
impl StructuralPartialEq for BankIncrementalSnapshotPersistence
Auto Trait Implementations§
impl Freeze for BankIncrementalSnapshotPersistence
impl RefUnwindSafe for BankIncrementalSnapshotPersistence
impl Send for BankIncrementalSnapshotPersistence
impl Sync for BankIncrementalSnapshotPersistence
impl Unpin for BankIncrementalSnapshotPersistence
impl UnwindSafe for BankIncrementalSnapshotPersistence
Blanket Implementations§
source§impl<T> AbiEnumVisitor for T
impl<T> AbiEnumVisitor for T
default fn visit_for_abi( &self, _digester: &mut AbiDigester, ) -> Result<AbiDigester, DigestError>
source§impl<T> AbiEnumVisitor for T
impl<T> AbiEnumVisitor for T
default fn visit_for_abi( &self, digester: &mut AbiDigester, ) -> Result<AbiDigester, DigestError>
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more