zig-nostr/signet
GitHub: zig-nostr/signet
Signet 是一个基于 Zig 构建的 Nostr 原生远程签名器,通过 NIP-46 协议将私钥隔离在受控机器上,并对每个签名请求执行人工审批。
Stars: 1 | Forks: 0
# Signet
**一个原生的 [Nostr](https://nostr.com) 远程签名器。** Signet 将你的
Nostr 私钥保存在你控制的机器上,并通过
[NIP-46](https://github.com/nostr-protocol/nips/blob/master/46.md) 为你的应用进行签名 —— 密钥
永远不会离开签名器,并且每个请求都需要等待你的明确批准。
基于 [`zig-nostr/nostr`](https://github.com/zig-nostr/nostr) 构建。

首次运行密钥设置(创建新密钥,或导入现有的 `nsec`),随后批准来自已连接客户端的实时 NIP-46 签名请求。密钥由签名器守护进程生成并持有——它永远不会进入 GUI。
## 两个组件,一个产品
Signet 有意拆分为两个进程,以便将私钥与用户界面隔离开来:
- **[`daemon/`](daemon)** —— 无界面的 NIP-46 签名器(“bunker”)。它保存着
加密的密钥,连接到你的 relays,并在 GUI 模式下提供一个
**仅限本地回环(loopback-only)** 的批准 API。它可以作为 CLI 供高级用户独立运行,
或由 GUI 进行监督。
- **[`gui/`](gui)** —— 原生桌面批准器,使用
[Native SDK](https://github.com/vercel-labs/native) 构建(声明式标记加上
Zig,原生渲染——没有 WebView,没有 Electron)。它会显示每个待处理的
请求,并传回你的批准或拒绝决定。密钥永远不会进入其中。
打包在一起,只需一次下载即可将两者作为单个 macOS `.app` 启动。
## 构建
每个组件独立构建——有关详细信息,请参阅它们各自的 README:
```
# daemon (Zig 0.16)
cd daemon && zig build -Doptimize=ReleaseFast
# gui (Native SDK CLI: npm install -g @native-sdk/cli)
cd gui && native build
```
- [`daemon/README.md`](daemon/README.md) —— 运行签名器、密钥管理、
relays 和批准 API。
- [`gui/README.md`](gui/README.md) —— 批准应用以及它如何连接(或
监督)daemon。
## License
MIT © Sepehr Safari
标签:CVE, Nostr, Web3, Zig, 密码学, 手动系统调用, 数字签名, 暗色界面, 桌面客户端