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

# Wie man getLatestBlockhash verwendet

> Lernen Sie die Anwendungsfälle, Codebeispiele, Anfrageparameter, Antwortstruktur und Tipps zu getLatestBlockhash.

Die [`getLatestBlockhash`](https://www.helius.dev/docs/api-reference/rpc/http/getlatestblockhash) RPC-Methode ist essenziell für die Vorbereitung und das Versenden von Transaktionen im Solana-Netzwerk. Sie ruft den neuesten Blockhash ab, der vom Knoten verarbeitet wurde, zusammen mit der letzten Blockhöhe, bei der dieser Blockhash gültig bleibt. Weitere Details zur effektiven Nutzung von Blockhashes und zur Sicherstellung, dass Ihre [Transaktionen landen](https://www.helius.dev/blog/how-to-land-transactions-on-solana), finden Sie in unserem umfassenden Leitfaden.

Jede Transaktion auf Solana muss sich auf einen aktuellen Blockhash beziehen. Dieser Mechanismus hilft, bestimmte Arten von Angriffen zu verhindern, wie das Wiederholen von Transaktionen auf einer verzweigten Kette.

**Versionshinweis:** Diese Methode ist in `solana-core` v1.9 oder neuer verfügbar. Bei Knoten, die `solana-core` v1.8 oder älter ausführen, verwenden Sie stattdessen die `getRecentBlockhash`-Methode.

## Häufige Anwendungsfälle

* **Transaktionserstellung:** Abrufen eines aktuellen Blockhashes zur Einbeziehung in eine neue Transaktion vor dem Signieren und Versenden.
* **Verwaltung der Transaktionslebensdauer:** Verwenden Sie `lastValidBlockHeight`, um zu verstehen, wie lange eine Transaktion, die den abgerufenen Blockhash referenziert, voraussichtlich gültig bleibt.
* **Preflight-Checks:** Während `simulateTransaction` dies implizit tun kann, könnten Anwendungen einen Blockhash abrufen, um manuell eine Transaktion zur Simulation vorzubereiten.

## Anfrageparameter

Diese Methode kann optional ein Konfigurationsobjekt mit den folgenden Parametern übernehmen:

* **`commitment`** (string, optional): Gibt das [Commitment Level](https://www.helius.dev/blog/solana-commitment-levels) für die Anfrage an. Wenn es weggelassen wird, wird das Standard-Commitment des Knotens verwendet. Für Transaktionen ist es üblich, `confirmed` oder `finalized` zu verwenden, um sicherzustellen, dass der Blockhash aus einem vernünftig stabilen Teil der Kette stammt.
* **`minContextSlot`** (integer, optional): Der Mindestslot, bei dem die Anfrage ausgewertet werden kann. Dies stellt sicher, dass die Abfrage gegen einen Ledger-Zustand erfolgt, der bis mindestens zu diesem Slot verarbeitet wurde.

## Antwortstruktur

Das `result`-Feld der JSON-RPC-Antwort wird ein `RpcResponse`-Objekt sein. Das Feld `value` innerhalb dieses Objekts enthält:

* **`blockhash`** (string): Eine base-58 kodierte Zeichenkette, die den neuesten Blockhash darstellt.
* **`lastValidBlockHeight`** (u64): Die Blockhöhe, bei der der `blockhash` abläuft. Eine Transaktion, die diesen `blockhash` zitiert, ist gültig, bis das Netzwerk diese `lastValidBlockHeight` erreicht.

Die Antwort enthält auch ein `context`-Objekt mit dem `slot`, bei dem die Informationen abgerufen wurden.

## Beispiele

### 1. Abrufen des neuesten Blockhashes mit Standard-Commitment

Dieses Beispiel ruft den neuesten Blockhash mit dem Standard-Commitment des Knotens ab.

<CodeGroup>
  ```bash cURL theme={"system"}
  # Replace <api-key> with your Helius API key
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getLatestBlockhash"
    }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  // Replace <api-key> with your Helius API key
  const { Connection } = require('@solana/web3.js');

  async function fetchLatestBlockhash() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash();
      console.log('Latest Blockhash Info:');
      console.log(`  Blockhash: ${blockhash}`);
      console.log(`  Last Valid Block Height: ${lastValidBlockHeight}`);
      // This blockhash can now be used in a transaction
    } catch (error) {
      console.error('Error fetching latest blockhash:', error);
    }
  }

  fetchLatestBlockhash();
  ```
</CodeGroup>

### 2. Abrufen des neuesten Blockhashes mit 'bestätigtem' Commitment

Dieses Beispiel fordert explizit den neuesten Blockhash mit `confirmed`-Commitment an.

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

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  // Replace <api-key> with your Helius API key
  const { Connection } = require('@solana/web3.js');

  async function fetchConfirmedBlockhash() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');
      console.log('Confirmed Blockhash Info:');
      console.log(`  Blockhash: ${blockhash}`);
      console.log(`  Last Valid Block Height: ${lastValidBlockHeight}`);
    } catch (error) {
      console.error('Error fetching confirmed blockhash:', error);
    }
  }

  fetchConfirmedBlockhash();
  ```
</CodeGroup>

## Entwicklertipps

* **Blockhash-Gültigkeit:** Ein Blockhash ist nur für eine begrenzte Zeit gültig, etwa 2 Minuten (obwohl dies variieren kann). Transaktionen müssen vom Netzwerk bestätigt werden, bevor ihr `lastValidBlockHeight` erreicht wird. Holen Sie immer einen neuen Blockhash, wenn seit dem letzten Abruf erhebliche Zeit vergangen ist.
* **Wahl des Commitments:** Für kritische Transaktionen bietet das Verwenden von `finalized`-Commitment die stärkste Garantie, dass der Blockhash von der Hauptkette stammt, kann aber etwas älter sein. `confirmed` bietet einen guten Kompromiss. Weitere Informationen finden Sie unter [Commitment Levels](https://www.helius.dev/blog/solana-commitment-levels).
* **Transaktionsgebühren:** Denken Sie auch daran, geeignete Transaktionsgebühren zu berechnen und einzuschließen. Der Blockhash selbst bestimmt nicht die Gebühr.
* **Retry-Logik:** Wenn eine Transaktion abläuft, weil ihr `lastValidBlockHeight` erreicht wurde, müssen Sie sie mit einem neuen, aktuelleren Blockhash neu signieren und erneut einreichen.

Dieser Leitfaden bietet die Schritte, um `getLatestBlockhash` effektiv zu nutzen, ein Eckpfeiler für die Interaktion mit dem Solana-Netzwerk durch Transaktionen.

## Verwandte Methoden

<CardGroup cols={2}>
  <Card title="simulateTransaction" href="/docs/de/api-reference/rpc/http/simulatetransaction">
    Simulieren Sie eine Transaktion vor dem Versand
  </Card>

  <Card title="isBlockhashValid" href="/docs/de/api-reference/rpc/http/isblockhashvalid">
    Überprüfen Sie, ob ein Blockhash noch gültig ist
  </Card>
</CardGroup>
