Crate rcmerkle

Source
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§

BetterMerkleTree
Efficient, and save state.
Keccak256
helper Keccak256(SHA3)
MerkleTree
Traditional merkle tree.
SHA256
helper SHA256

Traits§

Hash
trait to define different hash function

Type Aliases§

BetterMerkleTreeKeccak256
BetterMerkleTreeSHA256
MerkleTreeKeccak256
MerkleTreeSHA256