Zum Hauptinhalt springen
Die RPC-Methode 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 Methode getBlockProduction akzeptiert ein optionales Konfigurationsobjekt mit den folgenden Parametern:
  1. commitment (string, optional): Gibt das commitment für die Abfrage an. Wenn du den Parameter weglässt, wird das Standard-commitment des node verwendet.
  2. 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.
  3. 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.
Hinweis: Du musst mindestens identity oder range.firstSlot angeben. Wenn du identity nicht angibst, ist der Parameter range erforderlich.

Response-Struktur

Das Feld result 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 ohne range ausfü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 du firstSlot und lastSlot fü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: getBlockProduction ist entscheidend, wenn du Dashboards oder Warnungen zur Verfügbarkeit von Validatoren und zu Erfolgsraten bei der Blockproduktion erstellst.
  • Mit getLeaderSchedule kombinieren: Für eine detailliertere Analyse kannst du die Daten von getBlockProduction mit der Ausgabe von getLeaderSchedule abgleichen. So siehst du, welche konkreten Leader-slots produziert oder verpasst wurden.
  • Identität oder alle Validatoren: Eine Abfrage ohne identity kann viele Daten zurückgeben. Das gilt besonders, wenn du keinen range oder einen großen range angibst. 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.
Dieser Leitfaden vermittelt dir ein solides Verständnis dafür, wie du mit der RPC-Methode 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