比較

nostrfy vs strfry

兩者都是單一二進位檔的 Nostr 中繼,將事件儲存在 LMDB 中並使用相同協定。它們做出不同的取捨: strfry 是成熟的 C++ 中繼,擁有寫入原則外掛系統;而 nostrfy 是以 Rust 撰寫的引擎,將營運者所需的功能 — 群組、媒體、REST、管理 — 打包在一個二進位檔與一個設定檔中。

一覽

nostrfystrfry
語言RustC++
授權MIT OR Apache-2.0GPL-3.0
儲存LMDB(無需外部資料庫)LMDB(無需外部資料庫)
設定單一 nostrfy.toml,熱重載(SIGHUP)strfry.conf,熱重載
公佈的 NIP34 個(實作 36 個,含選用)11 個核心 NIP
NIP-29 群組 + LiveKit內建—
Blossom 媒體伺服器內建(本機磁碟或 S3/R2)—
REST API內建於 /api/v1—
管理 APINIP-86 JSON-RPC,可委派管理員—
Negentropy(NIP-77)支援支援 — strfry 是它的發源地
寫入原則 / 外掛內建允許/拒絕清單 + NIP-86寫入原則外掛介面
遷移工具nostrfy migrate-strfrystrfry import / export / sync

授權

strfry 採用 GPL-3.0 授權,要求衍伸作品以相同條款發布。 nostrfy 採用 MIT 或 Apache-2.0 雙授權,因此可以嵌入閉源產品並自由重新授權。 如果你的中繼是商業或其他授權堆疊的一部分,這往往就是決定性差異。

設定與維運

  • nostrfy 由單一帶完整註解的 nostrfy.toml 設定:身分、限制、儲存、存取控制、Blossom 與 RPC 集中在一處。大部分設定在 SIGHUP 時熱重載。
  • 每個選項都會在中繼啟動前由 nostrfy check 驗證 — 錯誤的類型、不可能的極限與鎖定組合都會連同修正建議一起回報。
  • 常駐程式內建日誌輪替、即時統計、健康端點與 Prometheus 指標;CLI 管理存取清單、升級與遷移。

內建功能

nostrfy 無需外掛附屬服務,而是內建了公共中繼通常需要的服務:

NIP-29 群組 + LiveKit

中繼強制的群組、管理事件與中繼簽章的群組中繼資料,外加透過 LiveKit 的影音房間。

Blossom 媒體伺服器

內容定址的上傳執行於獨立主機名稱,支援本機磁碟或 S3 相容儲存桶(AWS S3、Cloudflare R2)。

REST API

唯讀 /api/v1 執行在自己的讀取執行緒上 — 可依 npub、nevent 或 naddr 查詢事件,支援計數、統計與搜尋。

NIP-86 管理

JSON-RPC 管理 API,支援 Bearer 或 NIP-98 認證、委派方法授權與邀請碼。

strfry 的優勢

strfry 仍是極佳的選擇:它開創了 negentropy 協定,支援零停機重啟與選用的 WebSocket 壓縮, 其寫入原則外掛介面讓你能在每次發布時執行任意邏輯。如果你需要外掛沙箱,而不需要這份清單上的其他功能, strfry 非常合適。如果你更希望在開箱即用的方案裡擁有群組、媒體、REST 與管理 — 或者需要寬鬆授權 — nostrfy 是更短的路。

從 strfry 遷移

你不必從頭開始。nostrfy migrate-strfry 讀取 strfry 自己的匯出格式,驗證每一個事件,並匯入整個資料庫 — 包括 NIP-09 刪除、NIP-29 管理副作用與 首次出現時間戳。它是離線的、支援 dry-run,且可安全重複。