getBlock memungkinkan Anda mengambil informasi mendetail tentang blok yang telah dikonfirmasi dalam ledger Solana. Ini penting untuk penjelajah blok, analisis riwayat transaksi, dan memahami status rantai pada waktu tertentu.
Kasus Penggunaan Umum
- Memeriksa Isi Blok: Lihat semua transaksi yang disertakan dalam blok tertentu.
- Mengambil Hash Blok: Dapatkan blockhash untuk slot tertentu, blockhash induknya, dan slot induknya.
- Memeriksa Tinggi dan Waktu Blok: Cari tahu tinggi blok (nomor urutnya) dan perkiraan waktu pembuatannya.
- Menganalisis Detail Transaksi: Dengan parameter yang sesuai, Anda dapat memperoleh data transaksi lengkap, termasuk metadata seperti biaya, status, saldo sebelum/sesudah, dan instruksi internal.
- Mengambil Imbalan: Sertakan informasi imbalan untuk blok secara opsional.
Parameter
-
slot(angka, wajib): Nomor slot dari blok yang akan dikueri (u64). -
config(objek, opsional): Objek konfigurasi dengan bidang berikut:commitment(string, opsional): Menentukan tingkat komitmen yang akan digunakan.processedtidak didukung untuk metode ini. Nilai default-nya adalahfinalized.encoding(string, opsional): Pengodean untuk data transaksi. Nilai default-nya adalahjsonjikatransactionDetailsadalahfullatauaccounts; jika tidak, nilai default-nya adalahbase64.json: Mengembalikan data transaksi dan akun dalam format JSON (tidak digunakan lagi dan digantikan olehjsonParsed).jsonParsed: Mengembalikan data transaksi dan akun sebagai JSON yang telah diurai. Format ini direkomendasikan karena mencakup semua kunci akun transaksi (termasuk yang berasal dari Address Lookup Tables).base58(lambat)base64base64+zstd
transactionDetails(string, opsional): Menentukan tingkat detail transaksi yang akan dikembalikan. Nilai default-nya adalahfull.full: Mengembalikan detail transaksi lengkap, termasuk metadata transaksi.accounts: Mengembalikan daftar akun yang dirinci dalam setiap transaksi, tetapi bukan data atau metadata transaksi lengkap.signatures: Hanya mengembalikan tanda tangan transaksi.none: Tidak mengembalikan detail transaksi.
rewards(boolean, opsional): Menentukan apakah array imbalan disertakan dalam respons. Nilai default-nya adalahfalse.maxSupportedTransactionVersion(angka, opsional): Versi transaksi maksimum yang akan dikembalikan. Jika blok berisi transaksi dengan versi yang lebih tinggi, permintaan akan gagal dengan kesalahan JSON-RPC-32015. Jika dihilangkan, hanya transaksi lama yang dikembalikan, dan blok dengan transaksi berversi apa pun akan menyebabkan kesalahan. Atur ke1untuk menyertakan transaksi lama, v0 (Address Lookup Tables), dan v1. Lihat Dukungan transaksi v1.
Respons
Jika blok yang ditentukan telah dikonfirmasi dan ditemukan, bidangresult akan berupa objek yang berisi informasi tentang blok tersebut. Jika blok tidak ditemukan atau belum dikonfirmasi, result akan bernilai null.
Bidang utama dalam objek blok meliputi:
blockhash(string): Blockhash yang dikodekan dengan base-58 untuk blok ini.previousBlockhash(string): Blockhash yang dikodekan dengan base-58 dari blok sebelumnya. Jika blok induk tidak tersedia (karena pembersihan ledger), nilainya mungkin berupa ID program sistem.parentSlot(angka): Nomor slot dari blok induk.transactions(array): Array objek transaksi yang disertakan dalam blok. Struktur objek ini bergantung pada parameterencodingdantransactionDetails.- Setiap objek transaksi biasanya berisi
meta(metadata seperti biaya, status, log, serta saldo sebelum/sesudah) dantransaction(data transaksi sebenarnya, termasuk pesan dan tanda tangan).
- Setiap objek transaksi biasanya berisi
rewards(array, opsional): Array objek imbalan, tersedia jikarewards: trueditentukan. Setiap objek merincipubkey,lamports,postBalance,rewardType, dan kemungkinancommission.blockTime(angka | null): Perkiraan waktu pembuatan blok sebagai stempel waktu Unix (detik sejak epoch), ataunulljika tidak tersedia.blockHeight(angka | null): Tinggi blok ini (jumlah blok sebelumnya dalam rantai yang berasal dari slot 0), ataunulljika tidak tersedia.
Contoh: Mengambil Informasi Blok
Mari coba mengambil informasi 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 diketahui 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.
Tips untuk Developer
- Slot vs. Tinggi Blok: Ingat bahwa
getBlockmenerima nomorslotsebagai input, bukan tinggi blok. Meskipun slot bersifat berurutan, beberapa slot mungkin dilewati oleh leader. BidangblockHeightdalam respons menunjukkan jumlah blok sebenarnya sebelum blok ini. maxSupportedTransactionVersionSangat Penting: Untuk memeriksa blok dengan transaksi berversi (yang kini menjadi standar dan menggunakan Address Lookup Tables), Anda harus menetapkanmaxSupportedTransactionVersion: 1(atau versi yang lebih tinggi jika muncul standar baru). Jika lupa melakukannya, sebagian besar blok modern akan menghasilkan kesalahan.- Memilih
transactionDetails:fulldiperlukan untuk sebagian besar analisis mendetail, tetapi mengembalikan data paling banyak.signaturesberguna jika Anda hanya perlu mencantumkan transaksi dalam sebuah blok.accountsdapat menjadi pilihan menengah jika Anda perlu melihat akun mana yang terlibat tanpa mengambil semua data instruksi.nonejarang digunakan, tetapi dapat digunakan jika Anda hanya memerlukan metadata tingkat blok sepertiblockhashataurewards.
jsonParsedDirekomendasikan untuk Pengodean: Saat meminta detail transaksi,jsonParsedmemberikan output yang paling ramah bagi developer dan me-resolve akun dari Address Lookup Tables dengan benar, sedangkanjson(tidak digunakan lagi) tidak melakukannya.- Blok Tidak Tersedia: Hasil
nullberarti blok pada slot tersebut tidak ditemukan. Ini dapat terjadi karena slot dilewati, blok belum dikonfirmasi hingga tingkat yang ditentukan olehcommitmentAnda, atau node RPC telah menghapus blok historis tersebut dari ledger-nya (umum terjadi pada slot lama). - Informasi Imbalan: Menetapkan
rewards: truediperlukan untuk melihat distribusi imbalan blok kepada validator (dan mungkin staker, tergantung jenis imbalannya). Hal ini menambah ukuran respons. - Memahami Struktur Blok: Untuk memahami secara lebih mendalam bagaimana blok masuk ke dalam arsitektur Solana, lihat Memahami Slot, Blok, dan Epoch di Solana.