メインコンテンツへスキップ
getClusterNodes RPCメソッドは、現在Solanaクラスターに参加している既知の全てのノードのリストを返します。この情報は、ネットワーク分析、代替RPCエンドポイントの発見、またはクエリノードからみたネットワークの現在のトポロジーを理解するのに役立ちます。

一般的な使用ケース

  • ネットワークトポロジー分析: クラスター内の既知のノードのスナップショットを取得し、それらの公開鍵とネットワークアドレス(ゴシップ、TPU、RPC)を含みます。
  • RPCエンドポイントの発見: クラスター内で他の潜在的なRPCサーバーを特定します(ただし、可用性やレート制限は異なる場合があります)。
  • ノードバージョンの監視: クラスター内の異なるノードで実行されているソフトウェアバージョンを観察します。

リクエストパラメータ

このメソッドはパラメータを受け取りません。

レスポンス構造

JSON-RPCレスポンスのresultフィールドはオブジェクトの配列になります。各オブジェクトはノードを表し、以下のフィールドを含みます:
  • pubkey (string): ノードの公開鍵(アイデンティティ)、base58エンコード。
  • gossip (string | null): ノードのゴシップサービスのIPアドレスとポート。利用不可の場合はnullになることがあります。
  • tpu (string | null): ノードのトランザクション処理ユニット(TPU)のIPアドレスとポート。トランザクションを直接送信するために使用されます。nullになることがあります。
  • rpc (string | null): ノードのJSON-RPCサービスのIPアドレスとポート。このノードによってRPCサービスが有効または広告されていない場合はnullになることがあります。
  • version (string | null): ノードのソフトウェアバージョン。バージョン情報が利用不可の場合はnull
  • featureSet (u32 | null): ノードのフィーチャーセットの一意の識別子。nullになることがあります。
  • shredVersion (u16 | null): このノードがブロック(シュレッド)を保存および送信する際に使用するデータ構造のバージョン。nullになることがあります。

1. 既知のクラスターノードをすべて取得する

この例では、クエリされたRPCエンドポイントが知っているすべてのノードのリストを取得します。

開発者向けのヒント

  • ノードの視点: 返されるリストは、クエリしている特定のRPCノードが知っているノードを反映しています。異なるRPCノードでは、特にネットワークの変化によって、異なるクラスターの見え方をする可能性があります。
  • RPCの可用性: リストにあるすべてのノードが必ずしもRPCポートを開いている、または公開しているわけではありません。rpcフィールドがnullでないことは広告されたRPCエンドポイントを示しますが、アクセス可能性やパフォーマンスを保証するものではありません。
  • 動的リスト: クラスタートポロジーは動的です。ノードは参加と離脱ができるため、リストは時間とともに変わることがあります。
  • 大規模なレスポンス: Mainnet Betaのような大規模なネットワークでは、レスポンスが非常に大きくなり、多くのノードをリストすることになります。
このガイドでは、Solanaクラスター内のノードを発見し理解するためのgetClusterNodes RPCメソッドを使用するための必要な情報を提供します。