4个版本
使用旧的Rust 2015
0.2.0 | 2017年5月9日 |
---|---|
0.1.2 | 2017年1月19日 |
0.1.1 | 2017年1月19日 |
0.1.0 | 2017年1月19日 |
#9 in #incoming
6KB
126 行
merkle-generator
Rust版本的mafintosh/merkle-tree-stream。基于传入数据生成梅克尔树。
merkle-generator = "0.1.2"
使用方法
extern crate merkle_generator;
// define how to hash incoming data
fn parent(a: &Node, b: &Node) -> Vec<u8> {
let ref mut hash = a.hash.clone();
hash.extend(b.hash.iter().cloned());
digest::digest(&digest::SHA256, data.as_slice())
.as_ref()
.to_vec()
}
// define how to hash two merkle tree node hashes into a new parent hash
fn leaf(leaf: &Node, roots: &Vec<Node>) -> Vec<u8> {
let data = leaf.data.clone().unwrap();
digest::digest(&digest::SHA256, data.as_slice()).as_ref().to_vec()
}
let mut gen = Generator::new(leaf, parent);
let nodes = gen.next(b"Hello World".to_vec());
println!("{:?}", nodes);
树结构
有关节点/父索引计算的更多信息,请参阅mafintosh/flat-tree-rs。
许可证
MIT许可证
依赖项
~5–13MB
~235K SLoC