getLeaderSchedule gibt zurück, welche Validatoren in einer bestimmten Epoche für die Blockproduktion verantwortlich sind. Der Leader-Zeitplan ist nützlich, um das Netzwerk zu analysieren, vorherzusagen, welcher Validator zu bestimmten Zeiten Blöcke produziert, oder Tools zu entwickeln, die mit bestimmten Leadern interagieren.
Häufige Anwendungsfälle
- Netzwerküberwachung: Beobachte, wie die Leader-slot in einer Epoche auf die Validatoren verteilt sind.
- Transaktionsrouting (fortgeschritten): Einige fortgeschrittene Anwendungen versuchen möglicherweise, Transaktionen an den aktuellen oder nächsten Leader weiterzuleiten. In der Regel übernehmen dies jedoch das Netzwerk und die RPC-nodes.
- Analyse der Validatorleistung: Vergleiche den Leader-Zeitplan mit der tatsächlichen Blockproduktion, um Verfügbarkeit und Leistung der Validatoren zu bewerten.
- Epochenverlauf nachvollziehen: Prüfe, welche Validatoren während einer Epoche für die Blockproduktion verantwortlich sind.
Parameter für den request
Die Methode akzeptiert bis zu zwei optionale Parameter:slot(u64, optional): Eine slot-Nummer. Wenn du sie angibst, wird der Leader-Zeitplan für die Epoche abgerufen, die diesen slot enthält. Wenn dunullangibst oder den Parameter weglässt, wird der Leader-Zeitplan für die aktuelle Epoche abgerufen.config(object, optional): Ein Konfigurationsobjekt, das Folgendes enthalten kann:commitment(string, optional): Gibt das Level für commitment an. Wenn du es nicht angibst, wird das vom node vorgegebene commitment verwendet.identity(string, optional): Der Base58-codierte öffentliche Schlüssel eines Validators. Wenn du ihn angibst, enthält der zurückgegebene Zeitplan nur slot, die diesem Validator zugewiesen sind.
Struktur der response
Das Feldresult der JSON-RPC-response enthält Folgendes:
null: Wenn die zum angefordertenslotgehörende Epoche nicht gefunden wurde oder ihr Leader-Zeitplan nicht verfügbar ist. Wenn du keinen slot angibst, gilt dies für die aktuelle Epoche. Das kann beispielsweise bei einer zukünftigen, noch nicht berechneten Epoche der Fall sein.- Ein Objekt: Wenn ein Zeitplan gefunden wurde. Dieses Objekt ist eine Zuordnung, bei der:
- jeder Schlüssel der Base58-codierte öffentliche Schlüssel (die Identität) eines Validators ist.
- der zugehörige Wert ein Array aus Zahlen ist. Jede Zahl ist ein slot-Index relativ zum Beginn der Epoche, für den dieser Validator der Leader ist.
1000 beginnt und der Zeitplan eines Validators [0, 1, 5] enthält, ist dieser Validator der Leader für die slot 1000, 1001 und 1005.
Beispiele
1. Leader-Zeitplan für die aktuelle Epoche abrufen
Dieses Beispiel ruft den vollständigen Leader-Zeitplan für die aktuelle Epoche ab.2. Leader-Zeitplan für einen bestimmten Validator in einer bestimmten Epoche abrufen (über einen slot)
Dieses Beispiel ruft den Leader-Zeitplan für eine bestimmte Validatoridentität in der Epoche ab, die den slot200000 enthält.
Tipps für Entwickler
- Epochengrenzen: Der Leader-Zeitplan gilt unverändert für eine gesamte Epoche. Mit
getEpochInfokannst du den ersten und letzten slot einer Epoche ermitteln. - Zukünftige Epochen: Wenn du den Zeitplan für eine weit in der Zukunft liegende Epoche anforderst, kann
nullzurückgegeben werden, falls das Netzwerk ihn noch nicht berechnet hat. - Relative slot-Indizes: Beachte, dass die slot-Nummern in der response relativ zum ersten slot der angeforderten Epoche sind. Es handelt sich nicht um absolute slot-Nummern auf der Blockchain.
- Große response: Die response für den vollständigen Zeitplan einer Epoche kann ohne Identitätsfilter groß sein, da sie alle Validatoren und die ihnen zugewiesenen slot auflistet.
getLeaderSchedule die Zuordnung der Blockproduzenten für eine beliebige Epoche im Solana-Netzwerk abzufragen.
Verwandte Methoden
getEpochInfo
Informationen zur aktuellen Epoche einschließlich der slot-Grenzen abrufen
getSlotLeaders
Leader für einen bestimmten Bereich von slot abrufen