Struct accumulator::MerkleAccumulator [−][src]
pub struct MerkleAccumulator<R, H> { /* fields omitted */ }Expand description
In this live Merkle Accumulator algorithms.
Implementations
Given an existing Merkle Accumulator (represented by num_existing_leaves and a reader
that is able to fetch all existing frozen nodes), and a list of leaves to be appended,
returns the result root hash and new nodes to be frozen.
Get proof of inclusion of the leaf at leaf_index in this Merkle Accumulator of
num_leaves leaves in total. Siblings are read via reader (or generated dynamically
if they are non-frozen).
See diem_types::proof::AccumulatorProof for proof format.
pub fn get_consistency_proof(
reader: &R,
full_acc_leaves: LeafCount,
sub_acc_leaves: LeafCount
) -> Result<AccumulatorConsistencyProof>
pub fn get_consistency_proof(
reader: &R,
full_acc_leaves: LeafCount,
sub_acc_leaves: LeafCount
) -> Result<AccumulatorConsistencyProof>
Gets a proof that shows the full accumulator is consistent with a smaller accumulator.
See diem_types::proof::AccumulatorConsistencyProof for proof format.
pub fn get_range_proof(
reader: &R,
full_acc_leaves: LeafCount,
first_leaf_index: Option<u64>,
num_leaves: LeafCount
) -> Result<AccumulatorRangeProof<H>>
pub fn get_range_proof(
reader: &R,
full_acc_leaves: LeafCount,
first_leaf_index: Option<u64>,
num_leaves: LeafCount
) -> Result<AccumulatorRangeProof<H>>
Gets a proof that shows a range of leaves are part of the accumulator.
See diem_types::proof::AccumulatorRangeProof for proof format.
See get_range_proof. This is the version of it that returns Positions only.
From left to right, gets frozen subtree root hashes of the accumulator. For example, if the
accumulator has 5 leaves, x and e are returned.
root
/ \
/ \
/ \
x o
/ \ / \
/ \ / \
o o o placeholder
/ \ / \ / \
a b c d e placeholder