poroburu/openkms
GitHub: poroburu/openkms
基于 YubiHSM2 的轻量级 Cosmos/Solana 交易签名服务,为自动化交易代理提供私钥永不离设备的硬件级安全签名能力。
Stars: 2 | Forks: 0
# openKMS
由 YubiHSM2 支持的 **Cosmos** 和 **Solana** 交易签名器。
`0.1.0-rc.1` 版本是一个稳定的原型快照:体积小巧、默认拒绝访问,
专为家庭实验室的 Raspberry Pi 设计,用于为交易代理进行签名,且绝不
泄露原始密钥材料。
## 亮点
- **仅 HSM 签名。** 私钥在 YubiHSM2 中生成或导入,
且永远不会以明文形式离开设备。
- **确定性仪式。** 一个 BIP-39 助记词即可派生出仪式、
配置器、签名器和封装密钥材料。
- **单密钥策略。** 速率限制、支出上限、程序/消息/收件人
允许列表以及管理员终止开关共同保护签名过程。
- **运维检查。** CI 涵盖格式检查、clippy、测试、文档偏差、
rustdoc、OpenAPI 偏差以及网站构建健康状况。
## 文档
文档网站位于 [`website/`](website/) 中,并通过
GitHub Pages 工作流发布。请从那里开始阅读详细指南:
- [概述](website/src/content/docs/overview.md)
- [快速开始](website/src/content/docs/guides/quick-start.md)
- [安全模型](website/src/content/docs/concepts/security-model.md)
- [配置](website/src/content/docs/guides/configuration.md)
- [策略编写](website/src/content/docs/guides/policy-authoring.md)
- [HTTP API](website/src/content/docs/reference/http-api.md)
- [架构](website/src/content/docs/reference/architecture.md)
运维手册保留在稳定的仓库路径中:
- [`docs/remote-e2e.md`](docs/remote-e2e.md)
- [`docs/broadcast-e2e.md`](docs/broadcast-e2e.md)
- [`deploy/README.md`](deploy/README.md)
规范的示例配置是 [`examples/config.toml`](examples/config.toml)。
生成的 HTTP API 规范是 [`openapi/openkms.v1.json`](openapi/openkms.v1.json)。
一份与 AgentSkills 兼容的、供 OpenClaw 及其他代理使用的 OpenKMS 操作指南
已提交至 [`.agents/skills/openkms/SKILL.md`](.agents/skills/openkms/SKILL.md)。
## 快速开始
将其复制为一个 mock-HSM 脚本,然后在连接到真实硬件使用之前,
调整标签、对象 ID 和路径。
```
set -euo pipefail
cargo build --profile mock-release
./target/mock-release/openkms --mock new-mnemonic > /secure/usb/mnemonic.txt
./target/mock-release/openkms setup --mnemonic-file /secure/usb/mnemonic.txt
./target/mock-release/openkms keys provision \
--label cosmos-hub-0 \
--chain cosmos \
--object-id 0x0100 \
--path "m/44'/118'/0'/0/0" \
--mnemonic-file /secure/usb/mnemonic.txt
./target/mock-release/openkms backup --out /secure/usb/openkms-backup.json
./target/mock-release/openkms run
```
## 自动化流水线
- [`.github/workflows/ci.yml`](.github/workflows/ci.yml) 运行快速的仓库
检查:格式检查、clippy、默认测试、文档偏差、rustdoc、OpenAPI 偏差、
网站构建以及 mock 远程 Shell 回归测试。
- [`.github/workflows/remote-e2e.yml`](.github/workflows/remote-e2e.yml) 是一个
针对已部署签名器的手动预发布冒烟测试。其运维手册位于
[`docs/remote-e2e.md`](docs/remote-e2e.md)。
- [`.github/workflows/broadcast-e2e.yml`](.github/workflows/broadcast-e2e.yml)
是一个手动的实时测试网广播关卡。其运维手册位于
[`docs/broadcast-e2e.md`](docs/broadcast-e2e.md)。
E2E 包装脚本通过 [`scripts/e2e_defaults.sh`](scripts/e2e_defaults.sh) 共享 Solana/Cosmos 的默认配置。
请在每个脚本的 `--help` 中保留操作员标志。
## 开发
```
cargo fmt --check
cargo clippy --all-targets -- -D warnings
cargo test --all-targets
RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --all-features
```
从 `website/` 构建文档网站:
```
npm install
npm run build
```
## 许可证
基于 Apache-2.0 许可。有关包元数据,请参见 [`Cargo.toml`](Cargo.toml)。
标签:API网关, BIP-39, Cosmos, EVM, Homelab, HSM, KMS, OpenAPI, OpenClaw, Rust, Solana, Streamlit, StruQ, YubiHSM2, 交易签名, 公钥基础设施, 加密货币, 加密货币交易, 助记词, 区块链, 可视化界面, 安全模型, 家庭实验室, 拒绝默认策略, 暗色界面, 硬件安全模块, 系统运维, 网络安全, 网络流量审计, 自动化交易, 访问控制, 通知系统, 隐私保护