> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Verwendung von getClusterNodes

> Erfahren Sie mehr über die Anwendungsfälle, Codebeispiele, Anforderungsparameter, Antwortstruktur und Tipps zu getClusterNodes.

Die [`getClusterNodes`](https://www.helius.dev/docs/api-reference/rpc/http/getclusternodes) RPC-Methode gibt eine Liste aller bekannten Knoten zurück, die derzeit im Solana-Cluster teilnehmen. Diese Informationen können für Netzwerkanalysen, das Auffinden alternativer RPC-Endpunkte oder das Verständnis der aktuellen Netzwerktopologie aus der Perspektive des abgefragten Knotens nützlich sein.

## Häufige Anwendungsfälle

* **Netzwerktopologie-Analyse:** Erhalten Sie eine Momentaufnahme der bekannten Knoten im Cluster, einschließlich ihrer öffentlichen Schlüssel und Netzwerkadressen (gossip, TPU, RPC).
* **Entdecken von RPC-Endpunkten:** Identifizieren Sie andere potenzielle RPC-Server innerhalb des Clusters (obwohl Verfügbarkeit und Ratenlimits variieren können).
* **Überwachung von Node-Versionen:** Beobachten Sie die Softwareversionen, die von verschiedenen Knoten im Cluster ausgeführt werden.

## Anforderungsparameter

Diese Methode erfordert keine Parameter.

## Antwortstruktur

Das `result`-Feld der JSON-RPC-Antwort wird ein Array von Objekten sein. Jedes Objekt repräsentiert einen Knoten und enthält die folgenden Felder:

* **`pubkey`** (string): Der öffentliche Schlüssel (Identität) des Knotens, Base58-kodiert.
* **`gossip`** (string | null): Die IP-Adresse und der Port für den Gossip-Dienst des Knotens. Kann `null` sein, wenn nicht verfügbar.
* **`tpu`** (string | null): Die IP-Adresse und der Port für die Transaction Processing Unit (TPU) des Knotens. Dies wird verwendet, um Transaktionen direkt einzureichen. Kann `null` sein.
* **`rpc`** (string | null): Die IP-Adresse und der Port für den JSON-RPC-Dienst des Knotens. Kann `null` sein, wenn der RPC-Dienst von diesem Knoten nicht aktiviert oder beworben wird.
* **`version`** (string | null): Die Softwareversion des Knotens. Kann `null` sein, wenn Versionsinformationen nicht verfügbar sind.
* **`featureSet`** (u32 | null): Der eindeutige Bezeichner des Funktionssatzes des Knotens. Kann `null` sein.
* **`shredVersion`** (u16 | null): Die Version der Datenstruktur, die von diesem Knoten verwendet wird, um Blöcke (Shreds) zu speichern und zu übertragen. Kann `null` sein.

## Beispiele

### 1. Alle bekannten Clusterknoten abrufen

Dieses Beispiel ruft die Liste aller bekannten Knoten vom abgefragten RPC-Endpunkt ab.

<CodeGroup>
  ```bash cURL theme={"system"}
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getClusterNodes"
    }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  const { Connection } = require('@solana/web3.js');

  async function getNodesInCluster() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const clusterNodes = await connection.getClusterNodes();
      console.log(`Found ${clusterNodes.length} cluster nodes:`);
      clusterNodes.forEach(node => {
        console.log(
          `  PubKey: ${node.pubkey}, Gossip: ${node.gossip || 'N/A'}, RPC: ${node.rpc || 'N/A'}, Version: ${node.version || 'N/A'}`
        );
      });
      // For full details:
      // console.log(JSON.stringify(clusterNodes, null, 2));
    } catch (error) {
      console.error('Error fetching cluster nodes:', error);
    }
  }

  getNodesInCluster();
  ```
</CodeGroup>

## Entwicklertipps

* **Perspektive des Knotens:** Die zurückgegebene Liste spiegelt die Knoten wider, die dem spezifischen RPC-Knoten bekannt sind, den Sie abfragen. Verschiedene RPC-Knoten könnten leicht unterschiedliche Ansichten des Clusters haben, insbesondere während Netzwerkänderungen.
* **RPC-Verfügbarkeit:** Nicht alle aufgelisteten Knoten haben notwendigerweise ihre RPC-Ports offen oder sind öffentlich zugänglich. Das nicht-null `rpc`-Feld zeigt einen beworbenen RPC-Endpunkt an, garantiert jedoch nicht die Zugänglichkeit oder Leistung.
* **Dynamische Liste:** Die Clustertopologie ist dynamisch. Knoten können beitreten und austreten, daher kann sich die Liste im Laufe der Zeit ändern.
* **Große Antwort:** In einem großen Netzwerk wie dem Mainnet Beta kann die Antwort ziemlich umfangreich sein und viele Knoten auflisten.

Diese Anleitung bietet die notwendigen Informationen zur Verwendung der `getClusterNodes` RPC-Methode, um die Knoten innerhalb eines Solana-Clusters zu entdecken und zu verstehen.
