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) 构建。 ![Signet:首次运行密钥设置,随后批准实时签名请求](https://static.pigsec.cn/wp-content/uploads/repos/cas/a4/a4db092fba0380deceeada6ba10e180617882a9a9f4250ec76c16caa121c988e.gif) 首次运行密钥设置(创建新密钥,或导入现有的 `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, 密码学, 手动系统调用, 数字签名, 暗色界面, 桌面客户端