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/