pub struct MerkleRootBuilder<T> { /* private fields */ }Expand description
Calculates the merkle root for a given set of data. The leaf hashes of the merkle tree can
optionally be collected for use with crate::MerkleVerifier.
MerkleRootBuilder only accepts complete blocks of data except for the last block. This
avoids buffering data internally. If complete blocks of data can’t be guaranteed then
BufferedMerkleRootBuilder should be used instead.
Most users of crate::MerkleTreeBuilder are only interested in the root of the merkle tree
but crate::MerkleTreeBuilder generates and keeps the entire tree in memory. It also buffers
the hashes of inner nodes. MerkleRootBuilder is able to generate just the root using less
memory and a lot less buffering.
Implementations§
Source§impl<T: LeafHashCollector> MerkleRootBuilder<T>
impl<T: LeafHashCollector> MerkleRootBuilder<T>
Sourcepub fn new(leaf_hash_collector: T) -> Self
pub fn new(leaf_hash_collector: T) -> Self
Creates a new MerkleRootBuilder with a LeafHashCollector.
Use MerkleRootBuilder::default() if a LeafHashCollector isn’t needed.
Sourcepub fn add_block(&mut self, data: &[u8; 8192])
pub fn add_block(&mut self, data: &[u8; 8192])
Appends a full block of data to the merkle tree.
MerkleRootBuilder doesn’t buffer any data so only full blocks can be added until
Self::complete is called. Use BufferedMerkleRootBuilder if buffering is required.