Zum Hauptinhalt springen
Mit der RPC-Methode getBlocks kannst du eine Liste der bestätigten slot-Nummern von Blöcken zwischen einem angegebenen slot für den Start und einem optionalen slot für das Ende abrufen. Das ist nützlich, wenn du wissen musst, welche Blöcke in einem bestimmten Bereich bestätigt wurden, ohne den vollständigen Inhalt jedes Blocks abzurufen.
Bündele requests nicht, um eine bessere Leistung zu erzielenDas Bündeln von Archivmethoden erhöht die Latenz erheblich. Bündel mit mehr als 10 requests sind nicht erlaubt.

Häufige Anwendungsfälle

  • Bestätigte Blöcke in einem Bereich ermitteln: Rufe schnell eine Liste aller slot ab, deren Blöcke zwischen zwei Punkten im Ledger erfolgreich bestätigt wurden.
  • Blöcke durchlaufen: Verwende die zurückgegebene Liste der slot, um bei Bedarf anschließend mit getBlock detaillierte Informationen zu jedem Block abzurufen.
  • Grundlegende Prüfung von Blöcken: Prüfe, ob Blöcke in einem bestimmten Bereich vorhanden sind.

Parameter für den request

Die Methode getBlocks erwartet die folgenden Parameter:
  1. start_slot (u64, erforderlich): Der erste slot, der für den Bereich berücksichtigt wird (einschließlich).
  2. end_slot (u64, optional): Der letzte slot, der für den Bereich berücksichtigt wird (einschließlich).
    • Wenn du ihn nicht angibst, gibt die Abfrage ab start_slot Blöcke bis zum neuesten bestätigten slot zurück.
    • Der Bereich zwischen start_slot und end_slot beziehungsweise dem neuesten slot, wenn du end_slot weglässt, darf 500.000 slot nicht überschreiten.
  3. commitment (String, optional): Legt das commitment für die Abfrage fest. Wenn du diesen Parameter weglässt, wird das standardmäßige commitment des node verwendet. Dieser Wert wird als einziges Feld eines Konfigurationsobjekts im letzten Parameter übergeben.

Struktur der response

Das Feld result der JSON-RPC-response enthält ein Array mit Ganzzahlen vom Typ u64. Jede Ganzzahl im Array steht für die Nummer eines slot mit einem bestätigten Block innerhalb des angegebenen Bereichs.
  • Beispiel: [5, 6, 7, 8, 9, 10]

Beispiele

1. Blöcke innerhalb eines bestimmten Bereichs von slot abrufen

Dieses Beispiel ruft die Liste der slot mit bestätigten Blöcken zwischen 250000000 und 250000010 ab.

2. Blöcke von einem slot für den Start bis zum neuesten bestätigten slot abrufen

Dieses Beispiel ruft bestätigte slot von Blöcken ab 260000000 bis zum neuesten vom node bestätigten Block ab. Dabei gilt ab dem slot für den Start die Bereichsgrenze von 500.000 slot.

3. Blöcke mit einem bestimmten commitment abrufen

Dieses Beispiel ruft Blöcke mit dem commitment confirmed ab.

Tipps für Entwickler

  • Bereichsgrenze: Beachte die Grenze von 500.000 slot. Wenn du einen größeren Bereich anforderst, tritt ein Fehler auf.
  • Datenverfügbarkeit des node: Ein node speichert möglicherweise nicht die Informationen zu allen historischen slot. Je nach Konfiguration und Aufbewahrung des Ledgers können sehr alte Werte für start_slot leere Arrays oder Fehler zurückgeben.
  • Bestätigung von Blöcken: Diese Methode gibt bestätigte Blöcke zurück. Welche Blöcke genau enthalten sind, kann je nach gewähltem commitment und abgefragtem node leicht variieren. Das gilt besonders für sehr aktuelle slot.
  • Ergänzung zu getBlock: getBlocks wird häufig zuerst verwendet, um relevante slot von Blöcken zu ermitteln. Anschließend kannst du mit getBlock die vollständigen Details der einzelnen Blöcke in dieser Liste abrufen.
  • Alternative zur Seitennummerierung: Da getBlocks eine Bereichsgrenze hat, musst du getBlocks mehrmals aufrufen, wenn du einen sehr großen Teil der Blockchain durchsuchen möchtest. Teile den gewünschten Gesamtbereich dafür in Abschnitte mit höchstens 500.000 slot auf.
Diese Anleitung zeigt dir, wie du mit der RPC-Methode getBlocks bestätigte slot von Blöcken im Solana-Netzwerk auflistest.

Verwandte Methoden

getBlock

Rufe detaillierte Informationen zu einem bestimmten Block ab

getBlocksWithLimit

Rufe ab einem slot eine feste Anzahl von Blöcken ab