Expand description
Merkle Tree to calculate Root. Suppert Two Way: One is traditional use MerkleTree, it need send all hashed list. Two is efficient, but need to save state, like state machine. it need send new value, it will return the lastest root. Example:
use rcmerkle::{BetterMerkleTreeSHA256, Hash, MerkleTreeSHA256, SHA256};
let list = [
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n",
];
let hashed_list: Vec<SHA256> = list.iter().map(|v| SHA256::hash(v.as_bytes())).collect();
let mut better_merkle = BetterMerkleTreeSHA256::new();
for i in 0..hashed_list.len() {
let root1 = MerkleTreeSHA256::root(hashed_list[0..i + 1].to_vec());
let root2 = better_merkle.root(hashed_list[i].clone());
assert_eq!(root1, root2);
}
Structs§
- Efficient, and save state.
- helper Keccak256(SHA3)
- Traditional merkle tree.
- helper SHA256
Traits§
- trait to define different hash function