Skip to main content
Metode RPC 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.
Hindari Batching untuk Performa yang Lebih BaikMelakukan batching pada metode arsip meningkatkan latensi secara signifikan. Batch berisi lebih dari 10 permintaan tidak diizinkan.

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

  1. slot (angka, wajib): Nomor slot dari blok yang akan dikueri (u64).
  2. config (objek, opsional): Objek konfigurasi dengan bidang berikut:
    • commitment (string, opsional): Menentukan tingkat komitmen yang akan digunakan. processed tidak didukung untuk metode ini. Nilai default-nya adalah finalized.
    • encoding (string, opsional): Pengodean untuk data transaksi. Nilai default-nya adalah json jika transactionDetails adalah full atau accounts; jika tidak, nilai default-nya adalah base64.
      • json: Mengembalikan data transaksi dan akun dalam format JSON (tidak digunakan lagi dan digantikan oleh jsonParsed).
      • 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)
      • base64
      • base64+zstd
    • transactionDetails (string, opsional): Menentukan tingkat detail transaksi yang akan dikembalikan. Nilai default-nya adalah full.
      • 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 adalah false.
    • 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 ke 1 untuk menyertakan transaksi lama, v0 (Address Lookup Tables), dan v1. Lihat Dukungan transaksi v1.

Respons

Jika blok yang ditentukan telah dikonfirmasi dan ditemukan, bidang result 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 parameter encoding dan transactionDetails.
    • Setiap objek transaksi biasanya berisi meta (metadata seperti biaya, status, log, serta saldo sebelum/sesudah) dan transaction (data transaksi sebenarnya, termasuk pesan dan tanda tangan).
  • rewards (array, opsional): Array objek imbalan, tersedia jika rewards: true ditentukan. Setiap objek merinci pubkey, lamports, postBalance, rewardType, dan kemungkinan commission.
  • blockTime (angka | null): Perkiraan waktu pembuatan blok sebagai stempel waktu Unix (detik sejak epoch), atau null jika tidak tersedia.
  • blockHeight (angka | null): Tinggi blok ini (jumlah blok sebelumnya dalam rantai yang berasal dari slot 0), atau null jika tidak tersedia.
Lihat dokumentasi RPC resmi Solana untuk mengetahui struktur lengkap dan terperinci dari objek transaksi dan meta di dalam respons.

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 getBlock menerima nomor slot sebagai input, bukan tinggi blok. Meskipun slot bersifat berurutan, beberapa slot mungkin dilewati oleh leader. Bidang blockHeight dalam respons menunjukkan jumlah blok sebenarnya sebelum blok ini.
  • maxSupportedTransactionVersion Sangat Penting: Untuk memeriksa blok dengan transaksi berversi (yang kini menjadi standar dan menggunakan Address Lookup Tables), Anda harus menetapkan maxSupportedTransactionVersion: 1 (atau versi yang lebih tinggi jika muncul standar baru). Jika lupa melakukannya, sebagian besar blok modern akan menghasilkan kesalahan.
  • Memilih transactionDetails:
    • full diperlukan untuk sebagian besar analisis mendetail, tetapi mengembalikan data paling banyak.
    • signatures berguna jika Anda hanya perlu mencantumkan transaksi dalam sebuah blok.
    • accounts dapat menjadi pilihan menengah jika Anda perlu melihat akun mana yang terlibat tanpa mengambil semua data instruksi.
    • none jarang digunakan, tetapi dapat digunakan jika Anda hanya memerlukan metadata tingkat blok seperti blockhash atau rewards.
  • jsonParsed Direkomendasikan untuk Pengodean: Saat meminta detail transaksi, jsonParsed memberikan output yang paling ramah bagi developer dan me-resolve akun dari Address Lookup Tables dengan benar, sedangkan json (tidak digunakan lagi) tidak melakukannya.
  • Blok Tidak Tersedia: Hasil null berarti blok pada slot tersebut tidak ditemukan. Ini dapat terjadi karena slot dilewati, blok belum dikonfirmasi hingga tingkat yang ditentukan oleh commitment Anda, atau node RPC telah menghapus blok historis tersebut dari ledger-nya (umum terjadi pada slot lama).
  • Informasi Imbalan: Menetapkan rewards: true diperlukan 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.