Skip to main content
Metode RPC 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 lastValidBlockHeight untuk mengetahui berapa lama transaksi yang merujuk pada blockhash yang diambil diperkirakan akan tetap valid.
  • Pemeriksaan Praeksekusi: Meskipun simulateTransaction dapat 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, confirmed atau finalized umumnya 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

Bidang result 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 tempat blockhash akan kedaluwarsa. Transaksi yang merujuk pada blockhash ini valid hingga jaringan mencapai lastValidBlockHeight ini.
Respons juga menyertakan objek 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 komitmen confirmed.

Kiat untuk Developer

  • Validitas Blockhash: Blockhash berlaku untuk waktu terbatas, sekitar 2 menit (meskipun durasi ini dapat bervariasi). Transaksi harus dikonfirmasi oleh jaringan sebelum lastValidBlockHeight terlewati. Selalu ambil blockhash baru jika waktu yang cukup lama telah berlalu sejak blockhash terakhir diperoleh.
  • Memilih Komitmen: Untuk transaksi penting, penggunaan komitmen finalized memberikan jaminan terkuat bahwa blockhash berasal dari fork chain utama, tetapi blockhash tersebut mungkin sedikit lebih lama. confirmed menawarkan 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 lastValidBlockHeight telah terlewati, Anda harus menandatanganinya kembali dengan blockhash baru yang lebih mutakhir, lalu mengirimkannya ulang.
Panduan ini menyediakan langkah-langkah untuk menggunakan 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