getBlockProduction liefert Informationen zur Blockproduktion in der aktuellen Epoche oder in einem angegebenen Bereich von slots. Du kannst damit Daten für alle Validatoren oder für die Identität eines bestimmten Validators abrufen. Das ist hilfreich, um die Leistung von Validatoren zu überwachen und Muster bei der Blockproduktion im Netzwerk zu verstehen.
Häufige Anwendungsfälle
- Validatorleistung überwachen: Verfolge die Anzahl der produzierten Blöcke und Leader-slots eines bestimmten Validators.
- Epochenleistung analysieren: Verschaffe dir einen Überblick über die Blockproduktion aller Validatoren in der aktuellen oder einer vergangenen Epoche.
- Verpasste slots erkennen: Prüfe, ob Validatoren ihre zugewiesenen Leader-slots verpassen.
- Netzwerkzustand prüfen: Erfasse Daten zur Gesamteffizienz der Blockproduktion.
Request-Parameter
Die MethodegetBlockProduction akzeptiert ein optionales Konfigurationsobjekt mit den folgenden Parametern:
commitment(string, optional): Gibt das commitment für die Abfrage an. Wenn du den Parameter weglässt, wird das Standard-commitment des node verwendet.range(object, optional): Definiert den abzufragenden Bereich von slots.firstSlot(u64): Der erste slot, für den Informationen zur Blockproduktion abgerufen werden sollen (einschließlich).lastSlot(u64, optional): Der letzte slot, für den Informationen zur Blockproduktion abgerufen werden sollen (einschließlich). Wenn du den Parameter weglässt, wird die Blockproduktion der aktuellen Epoche bis zum aktuellen slot zurückgegeben.
identity(string, optional): Ein base58-codierter öffentlicher Schlüssel einer Validatoridentität. Wenn du ihn angibst, enthält die response nur Informationen zur Blockproduktion dieses Validators. Wenn du ihn weglässt, werden Informationen für alle Validatoren im angegebenen Bereich oder in der aktuellen Epoche zurückgegeben.
identity oder range.firstSlot angeben. Wenn du identity nicht angibst, ist der Parameter range erforderlich.
Response-Struktur
Das Feldresult der JSON-RPC-response enthält ein Objekt mit folgenden Feldern:
context(object):slot(u64): Der slot, zu dem die Informationen abgerufen wurden.
value(object):byIdentity(object): Ein Objekt, dessen Schlüssel Identitätszeichenfolgen von Validatoren sind (base58-codierte öffentliche Schlüssel). Die Werte sind Objekte mit folgenden Feldern:leaderSlots(u64): Die Anzahl der Leader-slots, die diesem Validator im abgefragten Bereich oder in der abgefragten Epoche zugewiesen wurden.blocksProduced(u64): Die Anzahl der Blöcke, die dieser Validator im abgefragten Bereich oder in der abgefragten Epoche produziert hat.
range(object):firstSlot(u64): Der erste slot des abgefragten Bereichs.lastSlot(u64): Der letzte slot des abgefragten Bereichs.
Tipps für Entwickler
- Epochenbegrenzungen verstehen: Wenn du eine Abfrage mit
identity, aber ohnerangeausführst, stammen die zurückgegebenen Daten aus der aktuellen Epoche bis zum neuesten vom node verarbeiteten slot. Wenn du Daten für eine vollständige vergangene Epoche eines bestimmten Validators benötigst, musst dufirstSlotundlastSlotfür diese Epoche ermitteln. - Datenverfügbarkeit des node: Der verfügbare Zeitraum historischer Daten zur Blockproduktion kann zwischen RPC-nodes variieren. Sehr alte Bereiche von slots sind möglicherweise nicht auf allen nodes verfügbar.
- Leistung überwachen:
getBlockProductionist entscheidend, wenn du Dashboards oder Warnungen zur Verfügbarkeit von Validatoren und zu Erfolgsraten bei der Blockproduktion erstellst. - Mit
getLeaderSchedulekombinieren: Für eine detailliertere Analyse kannst du die Daten vongetBlockProductionmit der Ausgabe vongetLeaderScheduleabgleichen. So siehst du, welche konkreten Leader-slots produziert oder verpasst wurden. - Identität oder alle Validatoren: Eine Abfrage ohne
identitykann viele Daten zurückgeben. Das gilt besonders, wenn du keinenrangeoder einen großenrangeangibst. Berücksichtige die Größe der response und den Verarbeitungsaufwand.
Beispiele
1. Blockproduktion der aktuellen Epoche abrufen (alle Validatoren)
Dieses Beispiel ruft Daten zur Blockproduktion aller Validatoren in der aktuellen Epoche ab.2. Blockproduktion eines bestimmten Validators in der aktuellen Epoche abrufen
Dieses Beispiel ruft die Blockproduktion für die Identität eines bestimmten Validators in der aktuellen Epoche ab.3. Blockproduktion für einen bestimmten Bereich von slots und einen bestimmten Validator abrufen
Dieses Beispiel ruft Daten zur Blockproduktion eines bestimmten Validators innerhalb eines definierten Bereichs von slots ab.getBlockProduction die Blockproduktion auf Solana analysierst.
Verwandte Methoden
getLeaderSchedule
Rufe den vollständigen Leader-Zeitplan ab, um ihn mit den Produktionsdaten abzugleichen
getVoteAccounts
Rufe Informationen zu allen abstimmenden Validatoren ab