比較

nostrfy vs strfry

どちらも単一バイナリの Nostr リレーで、イベントを LMDB に保存し、同じプロトコルを話します。しかしトレードオフが異なります: strfry は成熟した C++ リレーで、書き込みポリシープラグインシステムを持ちます。一方 nostrfy は Rust 製のエンジンで、運営者に必要な機能 — グループ、メディア、REST、管理 — を 1 つのバイナリと 1 つの設定ファイルにまとめています。

一目でわかる

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 可能、安全に繰り返せます。