getBlocks memungkinkan Anda mengambil daftar nomor slot blok yang telah dikonfirmasi antara slot awal tertentu dan slot akhir opsional. Metode ini berguna ketika Anda perlu mengetahui blok mana yang telah dikonfirmasi dalam rentang tertentu tanpa mengambil seluruh isi setiap blok.
Kasus Penggunaan Umum
- Mengidentifikasi Blok yang Dikonfirmasi dalam Suatu Rentang: Dapatkan dengan cepat daftar semua slot blok yang berhasil dikonfirmasi antara dua titik dalam buku besar.
- Mengiterasi Blok: Gunakan daftar slot yang dikembalikan untuk kemudian mengambil informasi terperinci bagi setiap blok menggunakan
getBlockjika diperlukan. - Audit Blok Dasar: Verifikasi keberadaan blok dalam rentang tertentu.
Parameter Permintaan
MetodegetBlocks menerima parameter berikut:
start_slot(u64, wajib): Slot pertama yang dipertimbangkan dalam rentang (inklusif).end_slot(u64, opsional): Slot terakhir yang dipertimbangkan dalam rentang (inklusif).- Jika tidak diberikan, kueri akan mengembalikan blok dari
start_slothingga slot terbaru yang telah dikonfirmasi. - Rentang antara
start_slotdanend_slot(atau slot terbaru jikaend_slotdihilangkan) tidak boleh melebihi 500.000 slot.
- Jika tidak diberikan, kueri akan mengembalikan blok dari
commitment(string, opsional): Menentukan tingkat komitmen untuk kueri. Jika dihilangkan, komitmen default node akan digunakan. Nilai ini diteruskan sebagai satu-satunya bidang dalam objek konfigurasi sebagai parameter terakhir.
Struktur Respons
Bidangresult dalam respons JSON-RPC akan berupa array bilangan bulat u64. Setiap bilangan bulat dalam array mewakili nomor slot blok yang dikonfirmasi dalam rentang yang ditentukan.
- Contoh:
[5, 6, 7, 8, 9, 10]
Contoh
1. Mendapatkan Blok dalam Rentang Slot Tertentu
Contoh ini mengambil daftar slot blok yang dikonfirmasi antara slot250000000 dan 250000010.
2. Mendapatkan Blok dari Slot Awal hingga Slot Terbaru yang Dikonfirmasi
Contoh ini mengambil slot blok yang dikonfirmasi mulai dari260000000 hingga blok terbaru yang dikonfirmasi oleh node (dengan mematuhi batas rentang 500.000 slot dari slot awal).
3. Mendapatkan Blok dengan Tingkat Komitmen Tertentu
Contoh ini mengambil blok menggunakan tingkat komitmenfinalized.
Tips untuk Pengembang
- Batas Rentang: Ingat batas rentang 500.000 slot. Meminta rentang yang lebih besar akan menghasilkan kesalahan.
- Ketersediaan Data Node: Node mungkin tidak menyimpan informasi untuk semua slot historis. Nilai
start_slotyang sangat lama dapat mengembalikan array kosong atau kesalahan, tergantung pada konfigurasi node dan retensi buku besarnya. - Komitmen Blok: Dalam Alpenglow,
confirmeddanfinalizedmengembalikan blok yang sama dan telah dikomit secara permanen; pilihfinalizeduntuk kode baru. Node yang berbeda masih dapat memberikan hasil berbeda untuk sementara karena keterlambatan propagasi. - Pelengkap
getBlock:getBlockssering digunakan sebagai langkah pertama untuk mengidentifikasi slot blok yang relevan sebelum menggunakangetBlockguna mengambil detail lengkap setiap blok dalam daftar tersebut. - Alternatif Paginasi: Karena
getBlocksmemiliki batas rentang, jika Anda perlu memindai bagian rantai yang sangat besar, Anda perlu melakukan beberapa panggilan kegetBlocksdengan membagi rentang total yang diinginkan menjadi segmen berukuran 500.000 slot atau kurang.
getBlocks untuk mencantumkan slot blok yang telah dikomit secara permanen di jaringan Solana.
Metode Terkait
getBlock
Dapatkan informasi terperinci untuk blok tertentu
getBlocksWithLimit
Dapatkan blok dalam jumlah tetap mulai dari suatu slot