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 final
  • confirmed - 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 bidang slot 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:

ProgramStatus AkunInstruksi
Address Lookupv1.15.0v1.15.0
BPF Loadern/astable
BPF Upgradeable Loaderstablestable
Configstable
SPL Associated Token Accountn/astable
SPL Memon/astable
SPL Tokenstablestable
SPL Token 2022stablestable
Stakestablestable
Votestablestable

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 perbandingan
    • bytes: string - data yang akan dicocokkan, sebagai string yang dikodekan
    • encoding: string - pengkodean untuk filter bytes 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?

Daftar Isi

Edit Halaman