getBlockCommitment memberikan informasi tentang status komitmen dari blok tertentu dalam buku besar Solana. Informasi ini berguna untuk memahami tingkat finalitas blok berdasarkan stake yang telah memberikan suara untuk blok tersebut.
Kasus Penggunaan Umum
- Menilai Finalitas Blok: Tentukan tingkat konsensus yang telah dicapai suatu blok dengan memeriksa suara berbobot stake pada berbagai kedalaman konfirmasi.
- Memahami Kondisi Klaster:
totalStakememberikan informasi tentang total stake aktif dalam klaster pada saat blok diproses. - Logika Konfirmasi Tingkat Lanjut: Untuk aplikasi yang memerlukan jaminan sangat spesifik mengenai finalitas blok di luar tingkat komitmen standar (
confirmed,finalized).
Parameter
slot(angka, wajib): Nomor slot (u64) dari blok yang informasi komitmennya ingin dikueri.
Respons
Kolomresult dari respons JSON-RPC akan berupa objek yang berisi:
commitment(array bilangan bulat u64 | null):- Array bilangan bulat u64, dengan setiap bilangan bulat mewakili jumlah stake klaster (dalam lamport) yang telah memberikan suara untuk blok pada kedalaman konfirmasi tertentu.
- Array ini biasanya memiliki 32 elemen (mewakili kedalaman 0 hingga
MAX_LOCKOUT_HISTORY, yaitu 31). - Indeks
idari array menunjukkan stake yang telah memberikan suara untuk blok, dengan mempertimbangkan suara pada blok itu sendiri dan turunannya hingga kedalamanitingkat. - Jika blok tidak ditemukan atau informasi komitmennya tidak tersedia (misalnya, blok terlalu lama dan telah dipangkas dari pelacakan komitmen), kolom ini akan bernilai
null.
totalStake(angka):- Total stake aktif dalam klaster (dalam lamport) pada slot saat blok ini diproses. Nilai ini digunakan untuk menghitung persentase stake yang telah berkomitmen pada blok.
Tips untuk Developer
- Menafsirkan Array
commitment:- Array
commitmentmenunjukkan stake (dalam lamport) yang telah memberikan suara untuk blok pada berbagai kedalaman konfirmasi. Nilai yang lebih tinggi pada indeks yang lebih dalam menandakan finalitas yang lebih kuat. - Array
commitmentyang bernilainullsering kali berarti bahwa simpul tidak memiliki data untuk slot tersebut, mungkin karena slot terlalu lama atau dilewati. - Anda dapat mengukur finalitas pada kedalaman
ijikacommitment[i] / totalStake >= 2/3(supermayoritas).
- Array
- Kasus Penggunaan Tingkat Lanjut:
getBlockCommitmentdigunakan untuk analisis finalitas yang mendetail. Untuk sebagian besar skenario umum, menggunakan tingkat komitmen standar (processed,confirmed, ataufinalized) dengan metode RPC lain (sepertigetTransactionataugetBlock) lebih sederhana dan memadai. - Memahami Komitmen: Untuk memanfaatkan
getBlockCommitmentsepenuhnya, Anda harus memahami tingkat komitmen Solana dengan baik. Lihat Tingkat Komitmen Solana untuk informasi selengkapnya. - Pemangkasan: Perhatikan bahwa simpul RPC mungkin memangkas informasi komitmen lama sehingga menghasilkan
nulluntuk slot yang lebih lama.
Contoh: Mengambil Informasi Komitmen Blok
Mari kita coba mengambil informasi komitmen untuk contoh nomor slot di Devnet. Penting: Nomor slot diproses dengan cepat. Nomor slot yang digunakan di bawah ini (250000000) adalah placeholder. Saat menjalankan contoh, Anda harus menggantinya dengan slot terbaru yang telah dikonfirmasi dan dipastikan tersedia di jaringan target Anda (misalnya, Devnet atau Mainnet). Anda dapat menemukan nomor slot terbaru menggunakan penjelajah blok Solana.
Catatan: Ganti YOUR_API_KEY dengan API key Helius Anda yang sebenarnya dalam contoh di bawah ini.