getLatestBlockhash sangat penting untuk menyiapkan dan mengirim transaksi di jaringan Solana. Metode ini mengambil blockhash terbaru yang diproses oleh node, beserta ketinggian blok terakhir tempat blockhash ini akan tetap valid. Untuk detail selengkapnya tentang cara menggunakan blockhash secara efektif dan memastikan transaksi Anda berhasil masuk, lihat panduan lengkap kami.
Setiap transaksi di Solana harus merujuk pada blockhash terbaru. Mekanisme ini membantu mencegah jenis serangan tertentu, seperti pemutaran ulang transaksi pada chain hasil fork.
Catatan Versi: Metode ini tersedia di solana-core v1.9 atau yang lebih baru. Untuk node yang menjalankan solana-core v1.8 atau yang lebih lama, gunakan metode getRecentBlockhash sebagai gantinya.
Kasus Penggunaan Umum
- Pembuatan Transaksi: Dapatkan blockhash terbaru untuk disertakan dalam transaksi baru sebelum menandatangani dan mengirimnya.
- Pengelolaan Masa Berlaku Transaksi: Gunakan
lastValidBlockHeightuntuk mengetahui berapa lama transaksi yang merujuk pada blockhash yang diambil diperkirakan akan tetap valid. - Pemeriksaan Praeksekusi: Meskipun
simulateTransactiondapat melakukannya secara implisit, aplikasi dapat mengambil blockhash untuk menyiapkan transaksi secara manual guna simulasi.
Parameter Permintaan
Metode ini dapat menerima objek konfigurasi opsional dengan parameter berikut:commitment(string, opsional): Menentukan tingkat komitmen untuk kueri. Jika dihilangkan, komitmen default node akan digunakan. Untuk transaksi,confirmedataufinalizedumumnya digunakan untuk memastikan blockhash berasal dari bagian chain yang cukup stabil.minContextSlot(integer, opsional): Slot minimum tempat permintaan dapat dievaluasi. Ini memastikan kueri dilakukan terhadap status ledger yang telah memproses setidaknya hingga slot ini.
Struktur Respons
Bidangresult dalam respons JSON-RPC akan berupa objek RpcResponse. Bidang value dalam objek ini berisi:
blockhash(string): String berenkode base-58 yang merepresentasikan blockhash terbaru.lastValidBlockHeight(u64): Ketinggian blok tempatblockhashakan kedaluwarsa. Transaksi yang merujuk padablockhashini valid hingga jaringan mencapailastValidBlockHeightini.
context dengan slot tempat informasi tersebut diambil.
Contoh
1. Mendapatkan Blockhash Terbaru dengan Komitmen Default
Contoh ini mengambil blockhash terbaru menggunakan komitmen default node.2. Mendapatkan Blockhash Terbaru dengan Komitmen ‘confirmed’
Contoh ini secara eksplisit meminta blockhash terbaru dengan komitmenconfirmed.
Kiat untuk Developer
- Validitas Blockhash: Blockhash berlaku untuk waktu terbatas, sekitar 2 menit (meskipun durasi ini dapat bervariasi). Transaksi harus dikonfirmasi oleh jaringan sebelum
lastValidBlockHeightterlewati. Selalu ambil blockhash baru jika waktu yang cukup lama telah berlalu sejak blockhash terakhir diperoleh. - Memilih Komitmen: Untuk transaksi penting, penggunaan komitmen
finalizedmemberikan jaminan terkuat bahwa blockhash berasal dari fork chain utama, tetapi blockhash tersebut mungkin sedikit lebih lama.confirmedmenawarkan keseimbangan yang baik. Pelajari lebih lanjut tentang tingkat komitmen untuk informasi mendetail. - Biaya Transaksi: Jangan lupa untuk menghitung dan menyertakan biaya transaksi yang sesuai. Blockhash itu sendiri tidak menentukan biaya.
- Logika Percobaan Ulang: Jika transaksi kedaluwarsa karena
lastValidBlockHeighttelah terlewati, Anda harus menandatanganinya kembali dengan blockhash baru yang lebih mutakhir, lalu mengirimkannya ulang.
getLatestBlockhash secara efektif, yang merupakan komponen utama untuk berinteraksi dengan jaringan Solana melalui transaksi.
Metode Terkait
simulateTransaction
Simulasikan transaksi sebelum mengirimnya
isBlockhashValid
Periksa apakah blockhash masih valid