Zum Hauptinhalt springen
Die RPC-Methode getVoteAccounts gibt Informationen zu allen Vote-Accounts (Validatoren) in der aktuellen Bank zurück. Sie unterscheidet zwischen current (aktiven) und delinquent Validatoren und liefert Details zu ihrem Stake, ihrer Abstimmungsaktivität und ihrer Identität.

Häufige Anwendungsfälle

  • Validator-Monitoring: Verfolge den Status, den Stake und die Leistung von Validatoren im Netzwerk.
  • Staking-Dashboards: Zeige Informationen zu verfügbaren Validatoren für Benutzer an, die ihre SOL delegieren möchten.
  • Analyse des Netzwerkzustands: Beurteile den allgemeinen Zustand und die Dezentralisierung des Netzwerks, indem du die Verteilung des Stake und die Aktivität der Validatoren untersuchst.
  • Inaktive Validatoren identifizieren: Finde Validatoren, die nicht aktiv am Konsens teilnehmen.

Request-Parameter

Diese Methode akzeptiert ein optionales Konfigurationsobjekt mit den folgenden Feldern:
  1. commitment (string, optional): Gibt das commitment-Level für die Abfrage an (z. B. "finalized", "confirmed", "processed"). Wenn du es weglässt, wird das standardmäßige commitment des node verwendet.
  2. votePubkey (string, optional): Wenn du diesen Wert angibst, werden die Ergebnisse so gefiltert, dass sie nur die angegebene Vote-Account-Adresse des Validators enthalten (Base58-codiert).
  3. keepUnstakedDelinquents (boolean, optional): Der Standardwert ist false. Wenn du den Wert auf true setzt, enthält die Liste delinquent auch Validatoren ohne aktivierten Stake. Andernfalls werden sie herausgefiltert.
  4. delinquentSlotDistance (u64, optional): Gibt an, wie viele slots ein Validator hinter der Spitze des Ledgers liegen muss, um als inaktiv zu gelten. Wenn du keinen Wert angibst, verwendet der node einen Standardwert.

Response-Struktur

Das Feld result in der JSON-RPC-response ist ein Objekt mit zwei Arrays:
  • current: Ein Array von Objekten. Jedes Objekt repräsentiert einen aktiven Vote-Account mit den folgenden Feldern:
    • votePubkey (string): Die Adresse des Vote-Accounts (Base58-codiert).
    • nodePubkey (string): Der öffentliche Identitätsschlüssel des Validator-node (Base58-codiert).
    • activatedStake (u64): Die Menge an Stake in Lamports, die an diesen Vote-Account delegiert wurde und in der aktuellen Epoche aktiv ist.
    • epochVoteAccount (boolean): true, wenn der Vote-Account während der aktuellen Epoche mindestens einmal aktiv war.
    • commission (number): Der vom Validator berechnete Provisionssatz in Prozent (0–100).
    • lastVote (u64): Die Nummer des neuesten slot, für den dieser Validator abgestimmt hat.
    • rootSlot (u64): Der letzte slot, den der node als Root betrachtet hat (ein vollständig bestätigter Block, der nicht zurückgesetzt wird).
    • epochCredits (array): Ein Array aus Arrays, wobei jedes innere Array [epoch, credits_earned_in_epoch, previous_total_credits] enthält.
  • delinquent: Ein Array von Objekten mit derselben Struktur wie current. Es repräsentiert Validatoren, die der node als inaktiv einstuft.
Beispiel für einen Response-Ausschnitt:

Codebeispiele

Tipps für Entwickler

  • Große Response: Diese Methode kann große Datenmengen zurückgeben, besonders in Netzwerken mit vielen Validatoren wie Mainnet Beta. Achte auf die Größe der response und die Verarbeitungszeit.
  • Definition von „inaktiv“: Ob ein Validator als „inaktiv“ gilt, kann von delinquentSlotDistance und der Perspektive des node abhängen. Ein Validator kann auf einem node als inaktiv erscheinen, auf einem anderen jedoch nicht, wenn deren Sicht auf die Spitze des Ledgers unterschiedlich ist.
  • Stake-Aktivierung: activatedStake zeigt den Stake an, der in der aktuellen Epoche aktiv ist. Das Aktivieren und Deaktivieren von Stake dauert eine gewisse Zeit.
  • Epochen-Credits: epochCredits enthält den Verlauf der Leistung eines Validators beim Sammeln von Credits durch Abstimmungen.
Dieser Leitfaden behandelt die RPC-Methode getVoteAccounts. Damit kannst du Informationen zu Validatoren im Solana-Netzwerk abfragen und verstehen.