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, 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
simulateTransactiondies 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 für die Anfrage an. Wenn es weggelassen wird, wird das Standard-Commitment des Knotens verwendet. Für Transaktionen ist es üblich,confirmedoderfinalizedzu 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
Dasresult-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 derblockhashabläuft. Eine Transaktion, die diesenblockhashzitiert, ist gültig, bis das Netzwerk dieselastValidBlockHeighterreicht.
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.2. Abrufen des neuesten Blockhashes mit ‘bestätigtem’ Commitment
Dieses Beispiel fordert explizit den neuesten Blockhash mitconfirmed-Commitment an.
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
lastValidBlockHeighterreicht 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.confirmedbietet einen guten Kompromiss. Weitere Informationen finden Sie unter 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
lastValidBlockHeighterreicht wurde, müssen Sie sie mit einem neuen, aktuelleren Blockhash neu signieren und erneut einreichen.
getLatestBlockhash effektiv zu nutzen, ein Eckpfeiler für die Interaktion mit dem Solana-Netzwerk durch Transaktionen.
Verwandte Methoden
simulateTransaction
Simulieren Sie eine Transaktion vor dem Versand
isBlockhashValid
Überprüfen Sie, ob ein Blockhash noch gültig ist