Skip to content

Note

このドキュメントは2026-02-27 02:51PLaMo Translation Modelを使用して自動翻訳されました。

FEP-0151: FediverseソフトウェアにおけるNodeInfo仕様(2025年版)

概要

NodeInfoは、サーバーレベルのメタデータを公開するための標準化された方法を提供するプロトコルである。これにより、各種ツールやクライアントはこのメタデータを活用して、Fediverse上の各サーバーの健全性を評価したり、エンドユーザーが利用するサーバーやソフトウェアを選択する際に有用な情報を提供することが可能となる。

本文書は2020年に公開されたFEP-f1d5: FediverseソフトウェアにおけるNodeInfo仕様の改訂版である。

要件

本文書中で使用される「MUST」「MUST NOT」「REQUIRED」「SHALL」「SHALL NOT」「SHOULD」「SHOULD NOT」「RECOMMENDED」「MAY」「OPTIONAL」の各用語は、RFC-2119で規定された解釈に従うものとする。

NodeInfoのベストプラクティス

サーバーはNodeInfoプロトコルバージョン2.1を実装することを推奨する。

プライバシーとセキュリティに関する考慮事項

NodeInfoドキュメントに含まれる情報の中には、サーバー管理者にとって機密性の高い内容が含まれる場合がある。

このような情報を非公開とする手段として、NodeInfoエンドポイント自体を無効化することが可能である。

利用統計の非表示化

一部のソフトウェアでは、NodeInfoを公開する一方で、具体的な利用統計は開示したくないというケースが想定される。NodeInfo 2.1スキーマではusageおよびusage.usersが必須プロパティとして定義されているものの、usage.users内の追加プロパティについては必須とはされていない。サーバーは、意図的に歪められた利用統計を公表してはならない。利用統計を非公開にしたい場合、サーバーは空のオブジェクトを公開すべきである:

{
  "usage": {
    "users": {}
  }
}

機能検出について

プロトコル交渉や機能検出のためにNodeInfoデータに依存することは推奨されない。これは、サーバー管理者が意図的にNodeInfoサービスを停止する可能性があるためである。

サーバーはsoftwareフィールドから機能を推測してはならない。また、software.nameおよびsoftware.versionの値は単なる不透明な文字列として扱うべきである。これらの情報を利用して信頼性の高い判定を行うことは非常に困難であり、多くの場合相互運用性を阻害する要因となる。ただし、既知のセキュリティ脆弱性を持つインスタンスをブロックするために、ソフトウェアバージョン情報を活用することは可能である。

NodeInfoの代わりに、プロトコル固有の機能検出メカニズムを使用することが推奨される。ActivityPubアプリケーションの場合、FEP-844e: 機能検出で説明されているように、サーバーアクターを使用してその機能を広告することが可能である。

metadataオブジェクトについて

metadataオブジェクトのプロパティは標準化されていないが、以下に示すいくつかのプロパティが広く利用されている:

  • nodeName(文字列):サーバーの名称
  • nodeDescription(文字列):サーバーの詳細な説明
  • staffAccounts(文字列配列):スタッフアカウントIDのリスト(ActivityPubにおけるアクターID)
  • federation.enabled(ブール値):当該サーバーが他のサーバーと接続可能かどうか

具体例:

{
  "metadata": {
    "nodeName": "My server",
    "nodeDescription": "My server",
    "staffAccounts": [
      "https://social.example/actors/1"
    ],
    "federation": {
      "enabled": true
    }
  }
}

実装例

参考文献

著作権について

CC0 1.0 Universal(パブリックドメイン献呈)

法律で許容される範囲内において、本Fediverse Enhancement Proposalの著者らは、当該著作物に関するすべての著作権および関連する権利を放棄している。