Skip to main content
Die getBlocks RPC-Methode ermöglicht es Ihnen, eine Liste von bestätigten Block-Slot-Nummern zwischen einem angegebenen Startslot und einem optionalen End-slot abzurufen. Dies ist nützlich, wenn Sie wissen müssen, welche Blöcke in einem bestimmten Bereich bestätigt wurden, ohne den vollständigen Inhalt jedes Blocks abzurufen.
Vermeiden Sie Batch-Verarbeitung für bessere LeistungDie Batch-Verarbeitung von Archival-Methoden erhöht die Latenz erheblich. Batches mit über 10 Anfragen sind nicht erlaubt.

Allgemeine Anwendungsfälle

  • Identifizierung von bestätigten Blöcken in einem Bereich: Schnelles Abrufen einer Liste aller Blockslots, die zwischen zwei Punkten im Ledger erfolgreich bestätigt wurden.
  • Durchlaufen von Blöcken: Verwenden Sie die zurückgegebene Liste von Slots, um bei Bedarf detaillierte Informationen für jeden Block mithilfe von getBlock abzurufen.
  • Grundlegende Blockprüfung: Überprüfung des Vorhandenseins von Blöcken innerhalb eines bestimmten Bereichs.

Anfrageparameter

Die getBlocks-Methode nimmt die folgenden Parameter an:
  1. start_slot (u64, erforderlich): Der erste zu berücksichtigende Slot für den Bereich (einschließlich).
  2. end_slot (u64, optional): Der letzte zu berücksichtigende Slot für den Bereich (einschließlich).
    • Wenn nicht angegeben, gibt die Abfrage Blöcke bis zum neuesten bestätigten Slot von start_slot zurück.
    • Der Bereich zwischen start_slot und end_slot (oder neuesten Slot, wenn end_slot weggelassen wird) darf 500.000 Slots nicht überschreiten.
  3. commitment (string, optional): Gibt das Commitment-Level für die Abfrage an. Wenn weggelassen, wird das Standard-Commitment des Knotens verwendet. Dies wird als einziges Feld in einem Konfigurationsobjekt als letzter Parameter übergeben.

Antwortstruktur

Das result-Feld der JSON-RPC-Antwort wird ein Array von u64-Integern sein. Jeder Integer im Array stellt eine bestätigte Block-Slot-Nummer innerhalb des angegebenen Bereichs dar.
  • Beispiel: [5, 6, 7, 8, 9, 10]

Beispiele

1. Abrufen von Blöcken innerhalb eines spezifischen Slot-Bereichs

Dieses Beispiel ruft die Liste der bestätigten Blockslots zwischen Slot 250000000 und 250000010 ab.

2. Abrufen von Blöcken von einem Startslot bis zum neuesten bestätigten Slot

Dieses Beispiel ruft bestätigte Blockslots ab, beginnend mit 260000000 bis zum neuesten vom Knoten bestätigten Block (unter Beachtung des 500.000-Slot-Bereichslimits ab dem Startslot).

3. Abrufen von Blöcken mit einem spezifischen Commitment-Level

Dieses Beispiel ruft Blöcke unter Verwendung des confirmed Commitment-Levels ab.

Entwicklertipps

  • Bereichslimit: Denken Sie an das 500.000-Slot-Bereichslimit. Die Anforderung eines größeren Bereichs führt zu einem Fehler.
  • Verfügbarkeit von Knotendaten: Knoten speichern möglicherweise nicht alle historischen Slots. Sehr alte start_slot-Werte können leere Arrays oder Fehler zurückgeben, abhängig von der Konfiguration und der Ledger-Aufbewahrung des Knotens.
  • Blockbestätigung: Diese Methode gibt bestätigte Blöcke zurück. Die genaue Menge an Blöcken kann je nach gewähltem commitment-Level und dem abgefragten Knoten leicht variieren, insbesondere bei sehr aktuellen Slots.
  • Ergänzung zu getBlock: getBlocks wird oft als erster Schritt verwendet, um relevante Blockslots zu identifizieren, bevor getBlock verwendet wird, um die vollständigen Details einzelner Blöcke in dieser Liste abzurufen.
  • Alternative Paginierung: Da getBlocks ein Bereichslimit hat, wenn Sie einen sehr großen Teil der Kette durchsuchen müssen, müssen Sie mehrere Aufrufe an getBlocks machen und den gewünschten Gesamtbereich in Segmente von 500.000 Slots oder weniger aufteilen.
Dieser Leitfaden bietet einen klaren Überblick darüber, wie man die getBlocks RPC-Methode verwendet, um bestätigte Blockslots im Solana-Netzwerk aufzulisten.

Verwandte Methoden

getBlock

Detaillierte Informationen für einen bestimmten Block abrufen

getBlocksWithLimit

Eine feste Anzahl von Blöcken, beginnend mit einem Slot, abrufen