1 个不稳定版本

0.1.0 2024 年 8 月 12 日

#1912数据结构

Download history 102/week @ 2024-08-10

102 每月下载量

MIT/Apache

18KB
209 代码行

rs-merkletree

Rust 库,用于生成 Merkle 树。

github twitter

关于 Merkle 树

在密码学和计算机科学中,哈希树或 Merkle 树是一种树,其中每个“叶”节点都标记有数据块的加密哈希,而每个不是叶节点(称为分支、内部节点或inode)都标记有其子节点标签的加密哈希。哈希树允许高效且安全地验证大型数据结构的内容。

哈希树可用于验证存储、处理和传输在计算机之间和内部的任何类型的数据。它们可以帮助确保从对等网络中的其他对等点接收到的数据块未损坏且未更改,甚至可以检查其他对等点是否撒谎并发送伪造的数据块。

哈希树用于

  • 基于哈希的密码学
  • 星际文件系统(IPFS)
  • BitTorrent
  • Btrfs 和 ZFS 文件系统
  • Dat 协议
  • Apache Wave 协议
  • Zeronet
  • 比特币和以太坊对等网络

用法

将以下内容添加到您的 cargo.toml 以开始使用 rs-merkletree

  [dependencies]
  rs-merkletree = "0.1.0"

示例

创建 Merkle 树并打印根哈希

use rs_merkletree::MerkleTree;
let data: Vec<&str> = vec!["Hello", "World", "From", "Rust"];
let mut tree = MerkleTree::new(None);
let rootNode = tree.build_tree(data);
let root_hash = rootNode.root_node().unwrap().hash();
assert_eq!(
    String::from_utf8(root_hash),
    Ok(String::from(
        "725367a8cee028cf3360c19d20c175733191562b01e60d093e81d8570e865f81"
    ))
);

有关更多示例,请参阅官方 文档tests 文件夹

许可证

根据您的选择,受 Apache 许可证 2.0 或 MIT 许可证的许可。除非您明确声明,否则您有意提交以包含在此软件包中并由您定义的任何贡献,根据 Apache-2.0 许可证,应如上所述双重许可,而无需任何额外的条款或条件。

依赖关系

~4MB
~51K SLoC