getProgramAccountsV2
getProgramAccountsV2 adalah versi getProgramAccounts yang disempurnakan dengan paginasi berbasis kursor dan pembaruan changedSinceSlot untuk mengueri kumpulan besar akun Solana.
Ikhtisar
getProgramAccountsV2 adalah versi yang disempurnakan dari metode standar getProgramAccounts, yang dirancang untuk aplikasi yang perlu mengueri kumpulan besar akun milik program Solana tertentu secara efisien. Metode ini menyediakan paginasi berbasis kursor dan kemampuan pembaruan inkremental.
- Paginasi berbasis kursor: Konfigurasikan batas dari 1 hingga 10.000 akun per permintaan
- Pembaruan inkremental: Gunakan
changedSinceSlotuntuk mengambil hanya akun yang baru saja dimodifikasi - Performa lebih baik: Mencegah waktu habis dan mengurangi penggunaan memori untuk kumpulan data besar
- Kompatibilitas mundur: Mendukung semua parameter
getProgramAccountsyang ada withContextopsional:truemenambahkanslotdanapiVersiondi bawahresult.context; hilangkan atau gunakanfalseagar keduanya tidak disertakan
Manfaat Utama
Scalable Queries
Real-time Sync
changedSinceSlot untuk pembaruan inkremental dan sinkronisasi data secara real-timePrevent Timeouts
Memory Efficient
Praktik Terbaik Paginasi
Pola Paginasi Dasar
Pembaruan Inkremental
Tips Performa
- Mulai dengan batas yang lebih kecil (1000), lalu tingkatkan berdasarkan performa jaringan Anda
- Gunakan pengodean yang sesuai:
jsonParseduntuk kemudahan,base64untuk performa - Terapkan filter untuk mengurangi ukuran kumpulan data sebelum paginasi
- Simpan
paginationKeyuntuk melanjutkan kueri jika terhenti - Pantau waktu respons dan sesuaikan batas sebagaimana diperlukan
withContext (opsional)
Nilai Boolean pada objek konfigurasi program (params[1]). Hanya bentuk result yang berubah, bukan filter, batas, atau paginasi.
Migrasi dari getProgramAccounts
Migrasi dari metode asli cukup mudah—cukup ganti nama metode dan tambahkan parameter paginasi:Metode Terkait
getProgramAccounts
getTokenAccountsByOwnerV2
Parameter Permintaan
confirmedfinalizedprocessed
true, mengembalikan result.context (metadata snapshot: slot, apiVersion) dan menempatkan
accounts serta paginationKey di bawah result.value. Jika false atau dihilangkan,
kolom tersebut muncul langsung pada result (misalnya result.accounts). Filter dan batas yang sama tetap berlaku.jsonParsedbase58base64base64+zstd
Otorisasi
Body
Versi protokol JSON-RPC.
2.0 "2.0"
Pengidentifikasi unik untuk permintaan.
"1"
Nama metode RPC yang akan dipanggil.
getProgramAccountsV2 "getProgramAccountsV2"
Parameter untuk metode paginasi yang ditingkatkan.
Kunci publik (alamat) program Solana yang akunnya akan dikueri, sebagai string yang dikodekan dengan base-58.
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
Respons
Berhasil mengambil akun program yang dipaginasi.
Versi protokol JSON-RPC.
2.0 "2.0"
Pengidentifikasi yang cocok dengan permintaan.
"1"
Akun program yang dipaginasi. Bidang yang sama muncul pada result saat withContext bernilai false atau dihilangkan, atau di bawah result.value saat withContext bernilai true.
- tanpa withContext
- dengan withContext