getRecentPrioritizationFees memberikan informasi tentang biaya prioritas yang dibayarkan dalam blok terbaru di jaringan Solana. Dengan memeriksa biaya ini, developer dapat membuat keputusan yang lebih tepat tentang biaya tambahan (biaya prioritas) yang perlu ditambahkan ke transaksi mereka untuk meningkatkan kemungkinan transaksi diproses dengan segera, terutama selama periode aktivitas jaringan yang tinggi.
Node biasanya menyimpan data biaya prioritas dalam cache hingga 150 blok terbaru.
Kasus Penggunaan Umum
- Estimasi Biaya Dinamis: Tentukan biaya prioritas yang kompetitif untuk suatu transaksi dengan mengamati biaya yang baru-baru ini berhasil digunakan.
- Analisis Kemacetan: Pahami kondisi kemacetan jaringan saat ini dengan melihat tingkat biaya prioritas yang dibayarkan.
- Integrasi Dompet: Memungkinkan dompet menyarankan biaya prioritas yang sesuai kepada pengguna berdasarkan kondisi jaringan terbaru.
- Bot Arbitrase: Untuk operasi yang sensitif terhadap waktu seperti arbitrase, menetapkan biaya prioritas yang optimal sangat penting agar eksekusi berlangsung tepat waktu.
Parameter Permintaan
lockedWritableAccounts(arraydaristring, opsional):- Array kunci publik akun yang dienkode dengan base-58 dan akan dikunci untuk penulisan oleh transaksi Anda.
- Maksimal 128 alamat dapat diberikan.
- Jika diberikan, metode ini mengembalikan biaya prioritas yang dibayarkan oleh transaksi yang mengunci semua akun yang ditentukan sebagai dapat ditulis.
- Jika dihilangkan atau array kosong diteruskan, metode ini mengembalikan gambaran yang lebih umum tentang biaya prioritas yang diamati di seluruh blok terbaru, tanpa mengacu pada kumpulan akun tertentu.
Struktur Respons
Kolomresult dalam respons JSON-RPC adalah array objek biaya prioritas. Setiap objek memerinci biaya dari slot terbaru tertentu dan memiliki struktur berikut:
slot(u64): Nomor slot tempat transaksi yang berkontribusi terhadap data biaya ini diproses.prioritizationFee(u64): Biaya prioritas minimum (dalam mikro-Lamport per Unit Komputasi) yang dibayarkan oleh setidaknya satu transaksi dalam slot ini (dan yang cocok dengan filterlockedWritableAccounts, jika ada). Nilai0sering kali berarti tidak ada transaksi dalam slot tersebut (yang cocok dengan kriteria) yang membayar biaya prioritas tambahan di luar biaya dasar, atau node tidak mengamati transaksi semacam itu untuk akun yang diberikan.
Contoh
1. Mendapatkan Biaya Prioritas Global Terbaru
Contoh ini mengambil daftar umum biaya prioritas terbaru tanpa menentukan akun yang dikunci.2. Mendapatkan Biaya Prioritas Terbaru untuk Akun Tertentu yang Dapat Ditulis
Contoh ini mengambil biaya prioritas yang relevan untuk transaksi yang perlu mengunci dua akun tertentu untuk penulisan.Tips untuk Developer
- Satuan Biaya: Biaya prioritas dinyatakan dalam mikro-Lamport (0,000001 Lamport) per Unit Komputasi (CU).
- Jendela Cache: Node RPC biasanya menyimpan biaya ini dalam cache untuk sekitar 150 blok. Artinya, Anda melihat rentang historis yang relatif singkat (sekitar 30 detik).
- Biaya Nol:
prioritizationFeedengan nilai0tidak selalu berarti tidak ada biaya yang dibayarkan. Sebaliknya, untuk slot dan akun yang diberikan, transaksi yang dijadikan sampel tidak menyertakan biaya prioritas atau berada di bawah ambang batas yang dianggap signifikan oleh node. - Penggunaan Strategis: Jangan hanya memilih biaya terbaru yang paling tinggi. Analisis distribusinya (misalnya, median atau persentil ke-75 dari biaya bukan nol) untuk membuat pilihan yang hemat biaya. Membayar terlalu mahal tidak menjamin penyertaan yang lebih cepat setelah titik tertentu jika blok sudah penuh dengan transaksi berprioritas tinggi.
- Unit Komputasi: Total biaya prioritas untuk transaksi Anda adalah
prioritizationFee_per_CU * your_transaction_compute_units. Anda juga perlu menetapkan batas unit komputasi untuk transaksi Anda (ComputeBudgetProgram.setComputeUnitLimit) dan harganya (ComputeBudgetProgram.setComputeUnitPrice).
getRecentPrioritizationFees secara efektif dapat meningkatkan keandalan konfirmasi transaksi secara signifikan dalam kondisi jaringan yang dinamis.