16 个版本
0.1.0 | 2023 年 1 月 23 日 |
---|---|
0.0.15 | 2023 年 1 月 23 日 |
#1323 在 加密学 中
42KB
721 行
merkle-lite
为 Rust Crypto 哈希函数提供简单、快速且可组合的二叉 Merkle 树和证明。
示例
从有序的哈希数组中组合 MerkleTree
非常简单,可以使用 MerkleProof
验证包含证明
use merkle_lite::MerkleTree;
use rand_core::RngCore;
// Composes MerkleTree from the 50,000 random hashes.
let tree: MerkleTree<sha3::Sha3_256> = std::iter::repeat([0u8; 32])
.map(|mut leaf| {
rand_core::OsRng.fill_bytes(&mut leaf);
leaf
})
.take(50_000)
.collect();
// Verifies the proof of inclusion for the arbitrary leaves.
let tree_leaves = tree.get_leaves();
let leaf_indices = [12, 0, 1, 1201, 13_903, 980];
let leaf_hashes: Vec<_> = leaf_indices
.iter()
.map(|index| (*index, tree_leaves[*index]))
.collect();
assert_eq!(
tree.proof(&leaf_indices)
.expect("proof")
.verify(&leaf_hashes)
.expect("verify")
.as_ref(),
tree.root().expect("root"),
);
许可证
许可协议为以下之一
- Apache License, Version 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可协议 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交的任何贡献,都应按照上述方式双许可,无需任何附加条款或条件。
依赖项
~330KB