From 5fb45710f57f95eec527958400f8ec0a049c5fe4 Mon Sep 17 00:00:00 2001 From: Santo Cariotti Date: Mon, 7 Jul 2025 17:14:12 +0200 Subject: Make tree for folders --- examples/merkletree_blake3.rs | 14 ++------------ examples/proofer_blake3.rs | 24 +++++++----------------- 2 files changed, 9 insertions(+), 29 deletions(-) (limited to 'examples') diff --git a/examples/merkletree_blake3.rs b/examples/merkletree_blake3.rs index 7f30a76..77ff2a0 100644 --- a/examples/merkletree_blake3.rs +++ b/examples/merkletree_blake3.rs @@ -10,19 +10,9 @@ fn main() { } // Read file contents into a vector of bytes - let mut file_contents = Vec::new(); - for filename in &filenames { - match std::fs::read(filename) { - Ok(contents) => file_contents.push(contents), - Err(e) => { - eprintln!("Failed to read file '{}': {}", filename, e); - std::process::exit(1); - } - } - } - let hasher = Blake3Hasher::new(); - let tree = MerkleTree::new(hasher.clone(), file_contents.clone()); + + let tree = MerkleTree::from_paths(hasher, filenames); println!("{}", tree.root().hash()); } diff --git a/examples/proofer_blake3.rs b/examples/proofer_blake3.rs index ca38d6f..8db3999 100644 --- a/examples/proofer_blake3.rs +++ b/examples/proofer_blake3.rs @@ -1,5 +1,6 @@ use mt_rs::{ - hasher::{Blake3Hasher, Hasher}, + fs, + hasher::Blake3Hasher, node::Node, proof::{DefaultProofer, Proofer}, }; @@ -21,27 +22,16 @@ fn main() { std::process::exit(1); } - let mut nodes: Vec = Vec::new(); - for filename in &filenames { - match std::fs::read(filename) { - Ok(contents) => nodes.push(Node::new_leaf(Blake3Hasher::new().hash(&contents))), - Err(e) => { - eprintln!("Failed to read file '{}': {}", filename, e); - std::process::exit(1); - } - } - } - let hasher = Blake3Hasher::new(); + + let nodes: Vec = fs::hash_dir(hasher.clone(), filenames.clone()); + let first_node = nodes[0].clone(); + let proofer = DefaultProofer::new(hasher, nodes); let proof = proofer.generate(0).expect("Couldn't generate proof"); println!( "{}", - proofer.verify( - &proof, - std::fs::read(&filenames[0]).unwrap(), - &root_hash[..] - ) + proofer.verify_hash(&proof, first_node.hash().to_string(), &root_hash[..]) ); } -- cgit v1.2.3-71-g8e6c