nostrfy の紹介
nostrfy とは何か、標準で使える機能、そして Rust で書かれたオールインワン Nostr リレーエンジンの設計理念。
nostrfy は Nostr プロトコルのリレーサーバーです。クライアントが送信したイベント(投稿、リアクション、プロフィール……)を保存し、購読リクエストに応じて配信します。
主な特徴
- シンプルで安定 — Rust 製。1 つのバイナリですべてをこなします。
- 高速なストレージと検索 — LMDB データベースと全文検索インデックス(NIP-50)。
- 広範な NIP サポート — 36 個の NIP に加えて Blossom ファイルサーバーを実装:削除、プルーフ・オブ・ワーク、委任、グループ、検索、管理 API。
- 運用が簡単 — デーモンモード、ログローテーション、設定のホットリロード(SIGHUP)、ライブ統計、REST API、Prometheus メトリクス。
- 移行が簡単 — 1 コマンドで既存の strfry データベースを取り込めます。dry-run、設定のマージ、安全な再実行に対応(移行ガイド)。
標準で使える機能
単一の nostrfy バイナリが 1 つのポートで提供します:
- 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。
すぐに試す
3 つのコマンドでインストール、初期化、起動が完了します:
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/