Zum Hauptinhalt springen
Mit dem getHealth endpoint prüfst du den aktuellen Zustand eines Solana RPC node. Ein gesunder node ist in der Regel betriebsbereit und ausreichend mit dem restlichen cluster synchronisiert. Konkret darf er nur eine bestimmte Anzahl von slots hinter dem neuesten bestätigten slot des cluster liegen. Dieser Abstand wird als HEALTH_CHECK_SLOT_DISTANCE bezeichnet. Dieser endpoint ist entscheidend für die Überwachung des node-Zustands. Das gilt besonders für Anwendungen oder Infrastruktur, die auf die Verfügbarkeit und Zuverlässigkeit eines RPC node angewiesen sind.

Funktionsweise

Die Methode getHealth verwendet den standardmäßigen JSON-RPC-POST-Mechanismus mit der Methode getHealth. Sie prüft, ob der RPC node gesund und mit dem Solana-cluster synchronisiert ist.

Häufige Anwendungsfälle

  • Überwachung von Nodes: Prüfe regelmäßig den Zustand von RPC nodes, um sicherzustellen, dass sie betriebsbereit und synchronisiert sind.
  • Lastverteilung: Ermittle mit Zustandsprüfungen, ob ein node in einer Umgebung mit Lastverteilung Datenverkehr erhalten soll.
  • Failover-Systeme: Wechsle zu einem Backup-node, wenn der primäre node nicht mehr gesund ist.
  • Fehlersuche bei Verbindungen: Stelle schnell fest, ob ein RPC node antwortet.

Request-Parameter

Diese Methode akzeptiert keine Parameter.

Response-Struktur

  • Für JSON-RPC getHealth POST:
    • result: "ok", wenn der node gesund ist.
    • Ist der node nicht gesund, kann ein Fehlerobjekt oder ein anderer String-Wert zurückgegeben werden, etwa "behind" oder "unknown". Die genaue Fehler-response kann jedoch instabil sein oder je nach Anbieter variieren.

Beispiele

1. Zustand eines node mit JSON-RPC prüfen (POST mit cURL)

Erwartete JSON-RPC-response (für einen gesunden node):

Tipps für Entwickler

  • Definition von „gesund“: „Gesund“ bedeutet im Allgemeinen, dass der node antwortet und nicht zu weit hinter der Spitze des cluster liegt. Der genaue slot-Abstand (HEALTH_CHECK_SLOT_DISTANCE) lässt sich auf dem node konfigurieren.
  • "behind" oder "unknown" interpretieren: Wenn du "behind {distance}" oder "unknown" erhältst, ist der node betriebsbereit, aber möglicherweise noch nicht vollständig synchronisiert oder kann seinen Zustand relativ zum cluster nicht bestimmen. Je nach Anforderungen deiner Anwendung kannst du diese Zustände unterschiedlich behandeln.
  • Unterschiede zwischen Anbietern: Das genaue Verhalten sowie die response-Codes und -Inhalte für einen nicht gesunden node können zwischen RPC-Anbietern leicht variieren.
  • Fehlerbehandlung: Implementiere beim Aufruf von getHealth immer eine geeignete Fehlerbehandlung. Netzwerk- oder node-Probleme können dazu führen, dass der request vollständig fehlschlägt.
Dieser Leitfaden enthält alle nötigen Informationen, um mit dem getHealth endpoint den Zustand eines Solana RPC node zu überwachen.