pub struct AccumulatorConsistencyProof { /* private fields */ }
Expand description

A proof that can be used to show that two Merkle accumulators are consistent – the big one can be obtained by appending certain leaves to the small one. For example, at some point in time a client knows that the root hash of the ledger at version 10 is old_root (it could be a waypoint). If a server wants to prove that the new ledger at version N is derived from the old ledger the client knows, it can show the subtrees that represent all the new leaves. If the client can verify that it can indeed obtain the new root hash by appending these new leaves, it can be convinced that the two accumulators are consistent.

See [crate::proof::accumulator::Accumulator::append_subtrees] for more details.

Implementations§

§

impl AccumulatorConsistencyProof

pub fn new(subtrees: Vec<HashValue, Global>) -> AccumulatorConsistencyProof

Constructs a new AccumulatorConsistencyProof using given subtrees.

pub fn is_empty(&self) -> bool

pub fn subtrees(&self) -> &[HashValue]

Returns the subtrees.

pub fn into_subtrees(self) -> Vec<HashValue, Global>

Trait Implementations§

§

impl Arbitrary for AccumulatorConsistencyProof

§

type Parameters = ()

The type of parameters that arbitrary_with accepts for configuration of the generated Strategy. Parameters must implement Default.
§

type Strategy = BoxedStrategy<AccumulatorConsistencyProof>

The type of Strategy used to generate values of type Self.
§

fn arbitrary_with( _args: <AccumulatorConsistencyProof as Arbitrary>::Parameters ) -> <AccumulatorConsistencyProof as Arbitrary>::Strategy

Generates a Strategy for producing arbitrary values of type the implementing type (Self). The strategy is passed the arguments given in args. Read more
§

fn arbitrary() -> Self::Strategy

Generates a Strategy for producing arbitrary values of type the implementing type (Self). Read more
§

impl Clone for AccumulatorConsistencyProof

§

fn clone(&self) -> AccumulatorConsistencyProof

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for AccumulatorConsistencyProof

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<'de> Deserialize<'de> for AccumulatorConsistencyProof

§

fn deserialize<__D>( __deserializer: __D ) -> Result<AccumulatorConsistencyProof, <__D as Deserializer<'de>>::Error>where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
§

impl PartialEq<AccumulatorConsistencyProof> for AccumulatorConsistencyProof

§

fn eq(&self, other: &AccumulatorConsistencyProof) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl Serialize for AccumulatorConsistencyProof

§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
§

impl TryFrom<&AccumulatorConsistencyProof> for AccumulatorConsistencyProofView

§

type Error = Error

The type returned in the event of a conversion error.
§

fn try_from( proof: &AccumulatorConsistencyProof ) -> Result<AccumulatorConsistencyProofView, <AccumulatorConsistencyProofView as TryFrom<&AccumulatorConsistencyProof>>::Error>

Performs the conversion.
§

impl TryFrom<&AccumulatorConsistencyProofView> for AccumulatorConsistencyProof

§

type Error = Error

The type returned in the event of a conversion error.
§

fn try_from( view: &AccumulatorConsistencyProofView ) -> Result<AccumulatorConsistencyProof, <AccumulatorConsistencyProof as TryFrom<&AccumulatorConsistencyProofView>>::Error>

Performs the conversion.
§

impl Eq for AccumulatorConsistencyProof

§

impl StructuralEq for AccumulatorConsistencyProof

§

impl StructuralPartialEq for AccumulatorConsistencyProof

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
§

impl<T> TestOnlyHash for Twhere T: Serialize + ?Sized,

§

fn test_only_hash(&self) -> HashValue

Generates a hash used only for tests.
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere T: for<'de> Deserialize<'de>,