Struct diem_sdk::types::proof::definition::TransactionAccumulatorSummary
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§
§impl TransactionAccumulatorSummary
impl TransactionAccumulatorSummary
pub fn new( accumulator: InMemoryAccumulator<TransactionAccumulatorHasher> ) -> Result<TransactionAccumulatorSummary, Error>
pub fn version(&self) -> u64
pub fn root_hash(&self) -> HashValue
pub fn verify_consistency(&self, ledger_info: &LedgerInfo) -> Result<(), Error>
pub fn verify_consistency(&self, ledger_info: &LedgerInfo) -> Result<(), Error>
Verify that this accumulator summary is “consistent” with the given
LedgerInfo
, i.e., they both have the same version and accumulator
root hash.
pub fn try_from_genesis_proof(
genesis_proof: AccumulatorConsistencyProof,
target_version: u64
) -> Result<TransactionAccumulatorSummary, Error>
pub fn try_from_genesis_proof( genesis_proof: AccumulatorConsistencyProof, target_version: u64 ) -> Result<TransactionAccumulatorSummary, Error>
Try to build an accumulator summary using a consistency proof starting from pre-genesis.
pub fn try_extend_with_proof(
&self,
consistency_proof: &AccumulatorConsistencyProof,
target_li: &LedgerInfo
) -> Result<TransactionAccumulatorSummary, Error>
pub fn try_extend_with_proof( &self, consistency_proof: &AccumulatorConsistencyProof, target_li: &LedgerInfo ) -> Result<TransactionAccumulatorSummary, Error>
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§
§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
.§fn arbitrary_with(
_args: <TransactionAccumulatorSummary as Arbitrary>::Parameters
) -> <TransactionAccumulatorSummary as Arbitrary>::Strategy
fn arbitrary_with( _args: <TransactionAccumulatorSummary as Arbitrary>::Parameters ) -> <TransactionAccumulatorSummary as Arbitrary>::Strategy
§impl Clone for TransactionAccumulatorSummary
impl Clone for TransactionAccumulatorSummary
§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 more§impl Debug for TransactionAccumulatorSummary
impl Debug for TransactionAccumulatorSummary
§impl<'de> Deserialize<'de> for TransactionAccumulatorSummary
impl<'de> Deserialize<'de> for TransactionAccumulatorSummary
§fn deserialize<__D>(
__deserializer: __D
) -> Result<TransactionAccumulatorSummary, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>( __deserializer: __D ) -> Result<TransactionAccumulatorSummary, <__D as Deserializer<'de>>::Error>where __D: Deserializer<'de>,
§impl PartialEq<TransactionAccumulatorSummary> for TransactionAccumulatorSummary
impl PartialEq<TransactionAccumulatorSummary> for TransactionAccumulatorSummary
§fn eq(&self, other: &TransactionAccumulatorSummary) -> bool
fn eq(&self, other: &TransactionAccumulatorSummary) -> bool
self
and other
values to be equal, and is used
by ==
.§impl Serialize for TransactionAccumulatorSummary
impl Serialize for TransactionAccumulatorSummary
§fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where __S: Serializer,
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.