inferadb/ledger
GitHub: inferadb/ledger
InferaDB Ledger 是一个基于区块链存储的分布式数据库,专为提供可加密验证的防篡改授权记录而设计。
Stars: 1 | Forks: 0
**[InferaDB](https://inferadb.com) Ledger 是一个专为授权构建的分布式数据库。** 每次权限变更都会提交到仅追加的区块链中,通过 Raft 共识进行复制,并且客户端可以通过 Merkle 证明独立验证——为您提供一份防篡改的记录,记录谁在何时拥有对什么的访问权限。Ledger 是 [InferaDB Engine](https://github.com/inferadb/engine) 和 [InferaDB Control](https://github.com/inferadb/control) 背后的存储层。
- [功能](#features)
- [快速开始](#quick-start)
- [配置](#configuration)
- [开发](#development)
- [文档](#documentation)
- [社区](#community)
- [许可证](#license)
## 功能
- **防篡改的授权历史** — 每次权限变更都会提交到按 vault 划分的区块链中。即使是数据库管理员也无法追溯修改谁在何时拥有对什么的访问权限。
- **客户端证明验证** — 客户端在每次读取时都会收到 Merkle 证明,并且可以独立验证授权决策,而无需信任服务器。
- **数据驻留** — 将授权数据固定在地理区域。节点仅加入其指定区域的 Raft 组,将数据保持在管辖边界之内。
- **租户隔离** — 按组织、按 vault 的安全边界。每个 vault 维护自己的区块链——一个租户的数据绝不会泄露到另一个租户。
- **强一致性** — Raft 共识确保权限变更在写入返回之前在集群范围内可见。授权决策不会有过期读取。
- **亚毫秒级读取** — B+ 树索引提供查找服务,无需触及 Merkle 层。加密验证不会给热路径增加任何开销。
## 快速开始
**开发或单服务器部署:**
```
inferadb-ledger --data /var/lib/ledger --single
```
**生产集群(在 3 个节点中的每一个上运行):**
```
inferadb-ledger --data /var/lib/ledger --cluster 3 --peers ledger.example.com
```
对于集群,`--peers` 告诉每个节点如何找到其他节点。传递以下选项之一:
- **DNS 域名**(例如 `ledger.example.com`)——查找 A 记录
- **文件路径**(例如 `/var/lib/ledger/peers.json`)——从 JSON 读取地址
请参阅[部署指南](docs/operations/deployment.md)以了解多节点设置、Kubernetes、添加/移除节点、备份和恢复。
## 配置
| CLI | 目的 | 默认值 |
| ----------- | ------------------------------------------------------------------------------------------------------ | ----------------- |
| `--listen` | gRPC API 的绑定地址 | `127.0.0.1:50051` |
| `--data` | 持久化 [存储](docs/internals/storage.md#directory-layout)(日志、状态、快照) | _(临时)_ |
| `--single` | 开发或单服务器部署 ([详情](docs/operations/deployment.md#single-node-cluster)) | |
| `--join` | 将此服务器添加到现有集群 ([详情](docs/operations/deployment.md#adding-a-node)) | |
| `--cluster` | 启动一个新的 N 节点集群 ([详情](docs/operations/deployment.md#multi-node-cluster-3-nodes)) | `3` |
| `--peers` | 如何[查找其他节点](docs/operations/deployment.md#discovery-options):DNS 域名或文件路径 | _(已禁用)_ |
| `--region` | 用于数据驻留的地理 [区域](docs/operations/deployment.md)(`us-east-va`、`ie-east-dublin`) | `global` |
请参阅[配置参考](docs/operations/deployment.md#configuration-reference)以了解环境变量和所有选项,包括指标、批处理和调优。
## 贡献
### 前置条件
- Rust 1.92+
- [mise](https://mise.jdx.dev/) 用于同步开发工具链
- [just](https://github.com/casey/just) 用于便捷的开发命令
### 构建和测试
```
git clone https://github.com/inferadb/ledger.git
cd ledger
# 安装开发工具
mise trust && mise install
# Build
just build
# Run tests
just test
```
## 文档
- [技术白皮书](WHITEPAPER.md) — 从这里开始了解 Ledger 的工作原理,查看基准测试结果,并评估它是否符合您的用例
- [技术设计文档](DESIGN.md) — 贡献者的权威规范;解释架构决策背后的原因
## 社区
加入我们的 [Discord](https://discord.gg/inferadb) 进行提问和讨论。
## 许可证
双重许可,采用 [MIT](LICENSE-MIT) 或 [Apache 2.0](LICENSE-APACHE)。
标签:InferaDB, Python工具, Raft 共识, Streamlit, 人工智能安全, 分布式数据库, 区块链存储, 去中心化, 可视化界面, 可验证性, 合规性, 地理围栏, 基础设施, 多租户隔离, 审计, 客户端验证, 授权, 提示词模板, 数据不可变性, 数据驻留, 日志, 权限管理, 模型越狱, 网络安全, 网络安全, 访问控制, 通知系统, 防篡改, 隐私保护, 隐私保护, 默克尔证明
