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/
下一步
按照快速开始完成首次运行,或直接跳到 配置参考来调整中继。