nostrfy 简介
nostrfy 是什么、开箱即用的功能,以及这款用 Rust 编写的一体化 Nostr 中继引擎背后的设计理念。
nostrfy 是 Nostr 协议的中继服务器。 它存储客户端发送的事件(帖子、反应、个人资料……),并响应订阅请求将其投递。
核心特性
- 简单稳定 — 用 Rust 编写;一个二进制文件完成一切。
- 快速存储与搜索 — LMDB 数据库,带全文搜索索引(NIP-50)。
- 广泛的 NIP 支持 — 实现 36 个 NIP,外加 Blossom 文件服务器: 删除、工作量证明、委托、群组、搜索和管理 API。
- 易于运维 — 守护进程模式、日志轮转、配置热重载 (SIGHUP)、实时统计、REST API 和 Prometheus 指标。
- 易于迁移 — 一条命令导入现有的 strfry 数据库,支持 dry-run、设置合并和安全重复运行 (迁移指南)。
开箱即用的功能
单个 nostrfy 二进制文件在一个端口上提供:
- WebSocket 中继和 NIP-11 信息文档。
- 只读 REST API,位于
/api/v1/...— 独立的读取线程意味着 REST 流量永远不会阻塞 WebSocket 订阅者。 - Blossom 文件服务器(媒体托管),运行在独立主机名上。
- NIP-86 管理 RPC、健康检查和 Prometheus
/metrics。
资源占用
nostrfy 已验证可在 0.25 vCPU / 512 MB VPS 上运行。LMDB 内存映射是 1 TiB 的稀疏虚拟预留 — 物理磁盘只随真实数据增长 — 进程内存保持平稳: 数据库 252 MB 的中继仅占用 7.9 MB 私有 RSS。
快速体验
三条命令完成安装、初始化和启动:
sh
curl -fsSL https://raw.githubusercontent.com/iqbqioza/nostrfy/main/install.sh | sh
nostrfy --config nostrfy.toml init
nostrfy --config nostrfy.toml start然后验证中继已启动:
sh
curl http://127.0.0.1:8080/health并获取它的 NIP-11 文档:
sh
curl -H "Accept: application/nostr+json" http://127.0.0.1:8080/