> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# How to Use getBlocks

> Erfahren Sie mehr über getBlocks Anwendungsfälle, Codebeispiele, Anfrageparameter, Antwortstruktur und Tipps.

Die [`getBlocks`](https://www.helius.dev/docs/api-reference/rpc/http/getblocks) RPC-Methode ermöglicht es Ihnen, eine Liste von bestätigten Block-Slot-Nummern zwischen einem angegebenen Startslot und einem optionalen End-[slot](https://www.helius.dev/blog/solana-slots-blocks-and-epochs) 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.

<Warning>
  **Vermeiden Sie Batch-Verarbeitung für bessere Leistung**

  Die Batch-Verarbeitung von Archival-Methoden erhöht die Latenz erheblich. Batches mit über 10 Anfragen sind nicht erlaubt.
</Warning>

## 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.

<CodeGroup>
  ```bash cURL theme={"system"}
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getBlocks",
      "params": [
        250000000,
        250000010
      ]
    }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  const { Connection } = require('@solana/web3.js');

  async function getBlocksInRange(startSlot, endSlot) {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const blocks = await connection.getBlocks(startSlot, endSlot);
      console.log(`Confirmed blocks between slot ${startSlot} and ${endSlot}:`, blocks);
    } catch (error) {
      console.error('Error fetching blocks:', error);
    }
  }

  // Example usage:
  const startSlot = 250000000;
  const endSlot = 250000010;
  getBlocksInRange(startSlot, endSlot);
  ```
</CodeGroup>

### 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).

<CodeGroup>
  ```bash cURL theme={"system"}
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getBlocks",
      "params": [
        260000000 
      ]
    }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  const { Connection } = require('@solana/web3.js');

  async function getBlocksFromStart(startSlot) {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      // The endSlot parameter is omitted to fetch up to the latest confirmed block
      const blocks = await connection.getBlocks(startSlot);
      console.log(`Confirmed blocks from slot ${startSlot} to latest:`, blocks);
      if (blocks.length > 0) {
        console.log(`Latest block in range: ${blocks[blocks.length - 1]}`);
      }
    } catch (error) {
      console.error('Error fetching blocks:', error);
    }
  }

  // Example usage (ensure this doesn't exceed the 500,000 slot limit from latest block):
  const recentStartSlot = 260000000; 
  getBlocksFromStart(recentStartSlot);
  ```
</CodeGroup>

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

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

<CodeGroup>
  ```bash cURL theme={"system"}
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getBlocks",
      "params": [
        270000000,
        270000005,
        { "commitment": "confirmed" }
      ]
    }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  const { Connection } = require('@solana/web3.js'); 

  async function getBlocksWithCommitment(startSlot, endSlot) {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const blocks = await connection.getBlocks(startSlot, endSlot, { commitment: 'confirmed' });
      console.log(`Confirmed blocks (with 'confirmed' commitment) between slot ${startSlot} and ${endSlot}:`, blocks);
    } catch (error) {
      console.error('Error fetching blocks with commitment:', error);
    }
  }

  // Example usage:
  const commitStartSlot = 270000000;
  const commitEndSlot = 270000005;
  getBlocksWithCommitment(commitStartSlot, commitEndSlot);
  ```
</CodeGroup>

## 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

<CardGroup cols={2}>
  <Card title="getBlock" href="/docs/de/api-reference/rpc/http/getblock">
    Detaillierte Informationen für einen bestimmten Block abrufen
  </Card>

  <Card title="getBlocksWithLimit" href="/docs/de/api-reference/rpc/http/getblockswithlimit">
    Eine feste Anzahl von Blöcken, beginnend mit einem Slot, abrufen
  </Card>
</CardGroup>
