NIP-65: Relay List Metadata
NIP-65は、ユーザーが読み取りと書き込みに使用するrelayを通知するkind 10002 eventを定義しています。このメタデータは、他のユーザーやクライアントが分散relayネットワーク全体であなたのコンテンツを見つけるのに役立ち、負荷を分散させ検閲耐性を向上させる「outboxモデル」を可能にします。
構造
relayリストは、ユーザーが通知したい各relayのrタグを含む置換可能なevent(kind 10002)です。eventは同じpubkeyからの以前のrelayリストを置き換えます。
{
"id": "a1b2c3d4e5f6...",
"pubkey": "abcd1234...",
"created_at": 1736726400,
"kind": 10002,
"tags": [
["r", "wss://relay.damus.io", "read"],
["r", "wss://nos.lol"],
["r", "wss://relay.nostr.band", "write"]
],
"content": "",
"sig": "sig1234..."
}
各rタグには、relay WebSocket URLと、ユーザーがそのrelayとどのようにやり取りするかを示すオプションのマーカーが含まれています。readマーカーは、ユーザーがこのrelayからeventを消費することを意味するため、他の人がユーザーに連絡するにはそこに公開する必要があります。writeマーカーは、ユーザーがこのrelayに公開することを意味するため、他の人がユーザーのコンテンツを見るにはそこでサブスクライブする必要があります。マーカーを省略すると、読み取りと書き込みの両方を示します。
contentフィールドはrelayリストeventでは空です。
Outboxモデル
NIP-65は、「outboxモデル」と呼ばれる分散コンテンツ配信パターンを可能にします。全員が同じ中央relayに公開して読み取るのではなく、ユーザーは自分の好みのrelayに公開し、クライアントは各ユーザーのコンテンツをどこで見つけるかを動的に発見します。
AliceがBobの投稿を見つけたい場合、彼女のクライアントはまずBobのkind 10002 eventを持っている任意のrelayから取得します。次に、Bobがwriteでマークしたrelay(彼が公開する場所)を抽出します。彼女のクライアントはBobのevent用にそれらのrelayでサブスクライブします。AliceがBobにダイレクトメッセージを送信したい場合、彼女のクライアントは代わりに彼のread relayを探し、そこにメッセージを公開します。
outboxモデルに従うクライアントは、フォローしているユーザーのNIP-65 eventにリストされているrelayへの接続を維持します。新しいアカウントを発見すると、動的に新しいrelayに接続します。複数のフォローユーザーのリストに表示されるrelayは、接続することでユーザーのソーシャルグラフのより多くを提供するため、優先されます。
このアーキテクチャは、単一のrelayが全員のコンテンツを保存または提供する必要がないため、検閲耐性を向上させます。1つのrelayがオフラインになったりユーザーをブロックしたりしても、そのコンテンツは他のリストされているrelayで引き続き利用可能です。
Relayヒントとの関係
NIP-65は、他のNIP全体で見られるrelayヒントを補完します。["p", "pubkey", "wss://hint.relay"]で誰かをタグ付けすると、ヒントはクライアントにその特定の参照をどこで探すべきかを伝えます。NIP-65は、優先relayの権威ある、ユーザー制御のリストを提供し、ヒントは個々のeventに埋め込まれたショートカットを提供して、より迅速な発見を可能にします。
ベストプラクティス
relayリストを最新の状態に保ってください。機能していないrelayを指す古いエントリがあると、見つけにくくなります。1つのrelayがオフラインになっても他のrelayを通じてコンテンツにアクセスできるように、冗長性のために少なくとも2〜3つのrelayを含めてください。
リストに多すぎるrelayを載せないでください。10〜15個のrelayをリストすると、あなたのコンテンツを取得したいすべてのクライアントがそれらすべてに接続する必要があり、体験が遅くなりネットワーク全体の負荷が増加します。3〜5個の厳選されたrelayに絞ったリストは、全員の負担となる網羅的なリストよりも効果的です。
汎用relayと使用する専門relayを組み合わせてください。例えば、wss://relay.damus.ioのような人気のある汎用relay、地域に特化したrelay、参加している特定のコミュニティのrelayをリストするかもしれません。
主要ソース:
言及されている記事:
関連項目: