9 个版本 (破坏性更新)
新 0.23.0 | 2024年8月20日 |
---|---|
0.22.0 | 2024年8月5日 |
0.21.0 | 2024年7月22日 |
0.20.0 | 2024年7月9日 |
0.16.2 | 2024年5月13日 |
#301 在 数据库接口
每月2,517 次下载
在 3 个crate中使用(通过iroh)
1MB
22K SLoC
iroh-docs
具有高效同步协议的多维键值文档。
该crate在副本上操作。副本包含无限数量的条目。每个条目由一个键、其作者和副本的命名空间标识。其值是条目内容数据的32字节BLAKE3哈希、此内容数据的大小和一个时间戳。内容数据本身不存储或通过副本传输。
副本中的所有条目都使用两个密钥对进行签名
- 作为写入能力的凭证的命名空间密钥。公钥是NamespaceId,它也作为副本的唯一标识符。
- 作为作者身份证明的作者密钥。可以创建任意数量的作者,其语义意义是特定于应用程序的。作者的公钥是[AuthorId]。
副本可以通过交换消息在对等节点之间同步。同步算法基于Aljoscha Meyer的这篇论文中提到的基于范围的集合校验技术。
基于范围的集合校验是一种简单的方法,通过递归分区集合并比较分区指纹来高效地计算网络中两个集合的并集,以概率检测是否需要进一步的分区。
该crate提供了一个通用的存储接口,具有内存和基于文件的持久化实现。后者使用redb
嵌入式键值存储,并将整个存储库以及所有副本持久化到单个文件。
许可证
本项目受以下任一许可证的许可:
- Apache License,版本2.0,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- 麻省理工学院许可协议(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确说明,否则根据 Apache-2.0 许可证定义的任何有意提交以包含在本项目中的贡献,都应如上双重许可,不附加任何额外条款或条件。
依赖关系
~17–55MB
~1M SLoC