比較
nostrfy vs strfry
どちらも単一バイナリの Nostr リレーで、イベントを LMDB に保存し、同じプロトコルを話します。しかしトレードオフが異なります: strfry は成熟した C++ リレーで、書き込みポリシープラグインシステムを持ちます。一方 nostrfy は Rust 製のエンジンで、運営者に必要な機能 — グループ、メディア、REST、管理 — を 1 つのバイナリと 1 つの設定ファイルにまとめています。
一目でわかる
| nostrfy | strfry | |
|---|---|---|
| 言語 | Rust | C++ |
| ライセンス | MIT or Apache-2.0 | GPL-3.0 |
| ストレージ | LMDB(外部データベース不要) | LMDB(外部データベース不要) |
| 設定 | 単一の nostrfy.toml、ホットリロード(SIGHUP) | strfry.conf、ホットリロード |
| 公表している NIP | 34 個(36 個実装、任意を含む) | 11 個のコア NIP |
| NIP-29 グループ + LiveKit | 内蔵 | — |
| Blossom メディアサーバー | 内蔵(ローカルディスクまたは S3/R2) | — |
| REST API | 内蔵 /api/v1 | — |
| 管理 API | NIP-86 JSON-RPC、管理者の委任 | — |
| Negentropy(NIP-77) | 対応 | 対応 — strfry が生み出しました |
| 書き込みポリシー / プラグイン | 内蔵の許可/拒否リスト + NIP-86 | 書き込みポリシープラグインインターフェース |
| 移行ツール | nostrfy migrate-strfry | strfry 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 可能、安全に繰り返せます。