Struct diem_types::proof::definition::TransactionAccumulatorSummary
source · pub struct TransactionAccumulatorSummary(_);
Expand description
An in-memory accumulator for storing a summary of the core transaction info accumulator. It is a summary in the sense that it only stores maximally frozen subtree nodes rather than storing all leaves and internal nodes.
Light clients and light nodes use this type to store their currently verified
view of the transaction accumulator. When verifying state proofs, these clients
attempt to extend their accumulator summary with an AccumulatorConsistencyProof
to verifiably ratchet their trusted view of the accumulator to a newer state.
Implementations§
source§impl TransactionAccumulatorSummary
impl TransactionAccumulatorSummary
pub fn new( accumulator: InMemoryAccumulator<TransactionAccumulatorHasher> ) -> Result<Self>
pub fn version(&self) -> Version
pub fn root_hash(&self) -> HashValue
sourcepub fn verify_consistency(&self, ledger_info: &LedgerInfo) -> Result<()>
pub fn verify_consistency(&self, ledger_info: &LedgerInfo) -> Result<()>
Verify that this accumulator summary is “consistent” with the given
LedgerInfo
, i.e., they both have the same version and accumulator
root hash.
sourcepub fn try_from_genesis_proof(
genesis_proof: AccumulatorConsistencyProof,
target_version: Version
) -> Result<Self>
pub fn try_from_genesis_proof( genesis_proof: AccumulatorConsistencyProof, target_version: Version ) -> Result<Self>
Try to build an accumulator summary using a consistency proof starting from pre-genesis.
sourcepub fn try_extend_with_proof(
&self,
consistency_proof: &AccumulatorConsistencyProof,
target_li: &LedgerInfo
) -> Result<Self>
pub fn try_extend_with_proof( &self, consistency_proof: &AccumulatorConsistencyProof, target_li: &LedgerInfo ) -> Result<Self>
Try to extend an existing accumulator summary with a consistency proof
starting from our current version. Then validate that the resulting
accumulator summary is consistent with the given target LedgerInfo
.
Trait Implementations§
source§impl Arbitrary for TransactionAccumulatorSummary
impl Arbitrary for TransactionAccumulatorSummary
§type Parameters = ()
type Parameters = ()
arbitrary_with
accepts for configuration
of the generated Strategy
. Parameters must implement Default
.§type Strategy = BoxedStrategy<TransactionAccumulatorSummary>
type Strategy = BoxedStrategy<TransactionAccumulatorSummary>
Strategy
used to generate values of type Self
.source§fn arbitrary_with(_args: Self::Parameters) -> Self::Strategy
fn arbitrary_with(_args: Self::Parameters) -> Self::Strategy
source§impl Clone for TransactionAccumulatorSummary
impl Clone for TransactionAccumulatorSummary
source§fn clone(&self) -> TransactionAccumulatorSummary
fn clone(&self) -> TransactionAccumulatorSummary
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<'de> Deserialize<'de> for TransactionAccumulatorSummary
impl<'de> Deserialize<'de> for TransactionAccumulatorSummary
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<TransactionAccumulatorSummary> for TransactionAccumulatorSummary
impl PartialEq<TransactionAccumulatorSummary> for TransactionAccumulatorSummary
source§fn eq(&self, other: &TransactionAccumulatorSummary) -> bool
fn eq(&self, other: &TransactionAccumulatorSummary) -> bool
self
and other
values to be equal, and is used
by ==
.impl Eq for TransactionAccumulatorSummary
impl StructuralEq for TransactionAccumulatorSummary
impl StructuralPartialEq for TransactionAccumulatorSummary
Auto Trait Implementations§
impl RefUnwindSafe for TransactionAccumulatorSummary
impl Send for TransactionAccumulatorSummary
impl Sync for TransactionAccumulatorSummary
impl Unpin for TransactionAccumulatorSummary
impl UnwindSafe for TransactionAccumulatorSummary
Blanket Implementations§
source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.