Skip to main content
Die getLeaderSchedule RPC-Methode gibt die Zuordnung der Blockproduktionsleitung zu Validierern für eine bestimmte Epoche zurück. Das Verständnis des Leader-Zeitplans kann für die Netzwerkanalyse nützlich sein, um vorherzusagen, welcher Validator zu bestimmten Zeiten Blöcke produzieren wird, oder für Tools, die mit bestimmten Leitern interagieren.

Häufige Anwendungsfälle

  • Netzwerküberwachung: Beobachten Sie die Verteilung der Leader-Slots unter Validierern in einer Epoche.
  • Transaktionsweiterleitung (Fortgeschritten): Einige fortgeschrittene Anwendungen könnten versuchen, Transaktionen zum aktuellen oder kommenden Leader zu leiten, obwohl dies im Allgemeinen vom Netzwerk und den RPC-Knoten gehandhabt wird.
  • Validator-Leistungsanalyse: Korrelieren Sie den Leader-Zeitplan mit der tatsächlichen Blockproduktion, um die Betriebszeit und Leistung des Validators zu bewerten.
  • Verständnis der Epoch-Fortschreitung: Sehen Sie, welche Validierer während einer Epoche für die Blockproduktion verantwortlich sind.

Anfrageparameter

Die Methode kann bis zu zwei optionale Parameter annehmen:
  1. slot (u64, optional): Eine Slotnummer. Wenn angegeben, wird der Leader-Zeitplan für die Epoche, die diesen Slot enthält, abgerufen. Wenn null oder weggelassen, wird der Leader-Zeitplan für die aktuelle Epoche abgerufen.
  2. config (Objekt, optional): Ein Konfigurationsobjekt, das Folgendes enthalten kann:
    • commitment (String, optional): Gibt das Commitment-Level an. Wenn nicht bereitgestellt, wird das Standard-Commitment des Knotens verwendet.
    • identity (String, optional): Ein base-58-kodierter öffentlicher Schlüssel eines Validators. Wenn angegeben, enthält der zurückgegebene Zeitplan nur Slots, die diesem speziellen Validator zugewiesen sind.

Antwortstruktur

Das result Feld der JSON-RPC-Antwort wird sein:
  • null: Wenn die Epoche, die der angeforderten slot (oder aktuellen Epoche, wenn kein Slot bereitgestellt wird) entspricht, nicht gefunden wird oder ihr Leader-Zeitplan nicht verfügbar ist (z.B. für eine zukünftige, nicht berechnete Epoche).
  • Ein Objekt: Wenn ein Zeitplan gefunden wird. Dieses Objekt ist eine Karte, bei der:
    • Jeder Schlüssel der base-58-kodierte öffentliche Schlüssel (Identität) eines Validators ist.
    • Der entsprechende Wert ein Array von Zahlen ist. Jede Zahl ist ein Slot-Index relativ zum Beginn der Epoche, für den dieser Validator der Leader ist.
Beispielsweise, wenn eine Epoche bei Slot 1000 beginnt und ein Validator hat [0, 1, 5] in seinem Zeitplan, bedeutet dies, dass dieser Validator der Leader für die Slots 1000, 1001 und 1005 ist.

Beispiele

1. Abrufen des Leader-Zeitplans für die aktuelle Epoche

Dieses Beispiel ruft den vollständigen Leader-Zeitplan für die aktuelle Epoche ab.

2. Abrufen des Leader-Zeitplans für einen bestimmten Validator in einer bestimmten Epoche (nach Slot)

Dieses Beispiel ruft den Leader-Zeitplan für eine gegebene Validator-Identität für die Epoche, die den Slot 200000 enthält, ab.

Entwicklertipps

  • Epochengrenzen: Der Leader-Zeitplan ist für eine gesamte Epoche festgelegt. Sie können getEpochInfo verwenden, um die Start- und End-Slots einer Epoche zu finden.
  • Zukünftige Epochen: Das Anfordern des Zeitplans für eine weit in der Zukunft liegende Epoche könnte null zurückgeben, wenn das Netzwerk ihn noch nicht berechnet hat.
  • Relative Slot-Indizes: Denken Sie daran, dass die Slots in der Antwort relativ zum ersten Slot der angeforderten Epoche und nicht absolute Slotnummern in der Blockchain sind.
  • Große Antwort: Für einen vollständigen Epoch-Zeitplan ohne Identitätsfilter kann die Antwort groß sein, da alle Validierer und ihre zugewiesenen Slots aufgelistet werden.
Dieser Leitfaden bietet die notwendigen Informationen zur Verwendung von getLeaderSchedule, um Blockproduzenten-Zuweisungen für eine beliebige Epoche im Solana-Netzwerk abzufragen.

Verwandte Methoden

getEpochInfo

Holen Sie sich aktuelle Epochsinformationen einschließlich der Slot-Grenzen

getSlotLeaders

Holen Sie sich die Leiter für einen bestimmten Slot-Bereich