Crate mrklt

Crate mrklt 

Source
Expand description
use mrklt::{compute_root, create_proof, Merge, verify_proof};

struct MyHash;

impl Merge for MyHash {
    type Hash = [u8; 32];

    fn leaf(leaf: &[u8; 32]) -> [u8; 32] {
        hash(&[leaf])
    }

    fn merge(left: &[u8; 32], right: &[u8; 32]) -> [u8; 32] {
        hash(&[left, right])
    }
}

let leaves = [[1u8; 32], [2u8; 32], [1u8; 32], [3u8; 32]];
let root = compute_root::<MyHash>(&leaves);
let proof = create_proof::<MyHash>(1, &leaves);
assert_eq!(root, verify_proof::<MyHash>(&leaves[1], &proof));

Modules§

proof
proof_map
Lower level interface that allows creating proofs without needing to recompute hashes.

Traits§

Merge
This trait can be implemented to allow, or to disallow second preimage attacks.

Functions§

compute_root
Deterministically compute a Merkle root for an ordered list of leaves.
create_proof
Create the proof of inclusion for the indexed leaf.
verify_proof
Calculate the expected Merkle root given the a leaf and its proof.