[][src]Trait rcmerkle::Hash

pub trait Hash: Default + Clone + Eq + PartialEq + Debug {
    fn hash(data: &[u8]) -> Self;
fn to_string(hash: &Self) -> String; }

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);
}

trait to define different hash function

Required methods

fn hash(data: &[u8]) -> Self

fn to_string(hash: &Self) -> String

Loading content...

Implementors

impl Hash for Keccak256[src]

impl Hash for SHA256[src]

Loading content...