[−][src]Crate mrklt
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. |