summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorSanto Cariotti <santo@dcariotti.me>2025-07-07 15:14:12 +0000
committerSanto Cariotti <santo@dcariotti.me>2025-07-07 15:14:12 +0000
commit5fb45710f57f95eec527958400f8ec0a049c5fe4 (patch)
tree5a698f60ceec8954fcc5b2e19cbc7b9beea06a43 /examples
parent2ef7371f7a4eefe7478cad43cb4922efaa12876a (diff)
Make tree for folders
Diffstat (limited to 'examples')
-rw-r--r--examples/merkletree_blake3.rs14
-rw-r--r--examples/proofer_blake3.rs24
2 files changed, 9 insertions, 29 deletions
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<Node> = 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<Node> = 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[..])
);
}