12个版本 (重大更新)
0.15.0 | 2024年4月29日 |
---|---|
0.13.0 | 2024年3月25日 |
0.12.0 | 2023年12月20日 |
0.11.0 | 2023年11月17日 |
#1165 in 加密学
每月460次下载
700KB
15K SLoC
iroh-sync
具有高效同步协议的多维键值文档。
该软件包在副本上运行。一个副本包含无限数量的条目。每个条目由一个键、其作者和副本的命名空间标识。其值是条目内容数据的32字节BLAKE3哈希、此内容数据的大小和时间戳。内容数据本身不会在副本中存储或传输。
副本中的所有条目都使用两个密钥对进行签名
- 命名空间密钥,作为写权限的令牌。公钥是命名空间ID,它也是副本的唯一标识符。
- 作者密钥,作为作者身份的证明。可以创建任意数量的作者,它们的语义意义是应用特定的。作者的公钥是[AuthorId]。
副本可以通过交换消息在对等节点之间同步。同步算法基于称为基于范围的集合校验和的技术,该技术基于Aljoscha Meyer的这篇论文这篇论文
基于范围的集合校验和是一种简单的网络中高效计算两个集合并集的方法,该方法基于递归划分集合并比较划分的指纹,以概率检测是否需要进一步工作。
该软件包提供了一个通用的存储接口,具有内存和基于文件的持久实现。后者使用redb
,一个嵌入式键值存储,并将整个存储以及所有副本持久化到单个文件。
许可证
该项目根据您的选择在以下许可证下发行
- Apache许可证,版本2.0,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确说明,否则根据Apache-2.0许可证定义,您有意提交以包含在此项目中的任何贡献,均应双重许可,无任何附加条款或条件。
依赖项
~11–48MB
~818K SLoC