Metode & Dokumentasi RPC Solana
Berinteraksi langsung dengan node Solana menggunakan API JSON RPC melalui metode HTTP dan Websocket.
Mengonfigurasi State Commitment
Untuk pemeriksaan preflight dan pemrosesan transaksi, node Solana memilih status bank mana yang akan diquery berdasarkan persyaratan commitment yang ditetapkan oleh klien. Commitment menjelaskan seberapa final suatu blok pada titik waktu tertentu. Saat mengquery status ledger, disarankan untuk menggunakan level commitment yang lebih rendah untuk melaporkan kemajuan dan level yang lebih tinggi untuk memastikan status tidak akan di-rollback.
Dalam urutan menurun berdasarkan commitment (dari yang paling final hingga yang paling tidak final), klien dapat menentukan:
finalized
- node akan mengquery blok terbaru yang dikonfirmasi oleh mayoritas cluster sebagai blok yang telah mencapai lockout maksimum, artinya cluster telah mengakui blok ini sebagai finalconfirmed
- node akan mengquery blok terbaru yang telah divoting oleh mayoritas cluster.- Ini menggabungkan voting dari gossip dan replay.
- Ini tidak menghitung voting pada turunan blok, hanya voting langsung pada blok tersebut.
- Level konfirmasi ini juga menjunjung jaminan "konfirmasi optimistis" dalam rilis 1.3 dan seterusnya.
processed
- node akan mengquery blok terbarunya. Perhatikan bahwa blok tersebut masih dapat dilewati oleh cluster.
Untuk memproses banyak transaksi yang saling bergantung secara berurutan,
disarankan untuk menggunakan commitment confirmed
, yang menyeimbangkan
kecepatan dengan keamanan rollback. Untuk keamanan total, disarankan untuk
menggunakan commitment finalized
.
Komitmen Default
Jika konfigurasi komitmen tidak disediakan, node akan
default ke komitmen finalized
Hanya metode yang melakukan query terhadap status bank yang menerima parameter komitmen. Metode-metode tersebut ditunjukkan dalam Referensi API di bawah ini.
Struktur RpcResponse
Banyak metode yang menggunakan parameter komitmen mengembalikan objek JSON RpcResponse yang terdiri dari dua bagian:
context
: Struktur JSON RpcResponseContext termasuk bidangslot
di mana operasi dievaluasi.value
: Nilai yang dikembalikan oleh operasi itu sendiri.
Respons yang Diuraikan
Beberapa metode mendukung parameter encoding
, dan dapat mengembalikan data
akun atau instruksi dalam format JSON yang diuraikan jika
"encoding":"jsonParsed"
diminta dan node memiliki parser untuk program yang
memilikinya. Node Solana saat ini mendukung penguraian JSON untuk program native
dan SPL berikut:
Program | Status Akun | Instruksi |
---|---|---|
Address Lookup | v1.15.0 | v1.15.0 |
BPF Loader | n/a | stable |
BPF Upgradeable Loader | stable | stable |
Config | stable | |
SPL Associated Token Account | n/a | stable |
SPL Memo | n/a | stable |
SPL Token | stable | stable |
SPL Token 2022 | stable | stable |
Stake | stable | stable |
Vote | stable | stable |
Daftar parser akun dapat ditemukan di sini, dan parser instruksi di sini.
Kriteria filter
Beberapa metode mendukung penyediaan objek filters
untuk mengaktifkan
pra-pemfilteran data yang dikembalikan dalam objek JSON RpcResponse. Filter
berikut tersedia:
-
memcmp: object
- membandingkan serangkaian byte yang disediakan dengan data program account pada offset tertentu. Bidang:offset: usize
- offset ke dalam data program account untuk memulai perbandinganbytes: string
- data yang akan dicocokkan, sebagai string yang dikodekanencoding: string
- pengkodean untuk filterbytes
data, baik "base58" atau "base64". Data dibatasi ukurannya hingga 128 byte yang didekode atau kurang.
BARU: Bidang ini, dan dukungan base64 secara umum, hanya tersedia di solana-core v1.14.0 atau lebih baru. Harap hilangkan saat menanyakan node pada versi sebelumnya
-
dataSize: u64
- membandingkan panjang data program account dengan ukuran data yang disediakan
Is this page helpful?