Metode HTTP RPC Solana

Node Solana menerima permintaan HTTP menggunakan spesifikasi JSON-RPC 2.0.

Untuk aplikasi JavaScript, gunakan library @solana/web3.js sebagai antarmuka yang nyaman untuk metode RPC dalam berinteraksi dengan node Solana. Untuk koneksi PubSub ke node Solana, gunakan API Websocket.

Endpoint HTTP RPC

Port default: 8899

Format Permintaan

Untuk membuat permintaan JSON-RPC, kirim permintaan HTTP POST dengan header Content-Type: application/json. Data permintaan JSON harus berisi 4 bidang:

  • jsonrpc: <string> - diatur ke "2.0"
  • id: <string | number | null> - pengenal unik untuk permintaan, yang dihasilkan oleh klien. Biasanya berupa string atau angka, meskipun null secara teknis diperbolehkan tetapi tidak disarankan
  • method: <string> - string yang berisi metode yang akan dipanggil
  • params: <array> - array JSON dari nilai parameter yang berurutan

Contoh menggunakan curl:

curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getBalance",
"params": [
"83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri"
]
}
'

Output respons akan berupa objek JSON dengan bidang-bidang berikut:

  • jsonrpc: <string> - sesuai dengan spesifikasi permintaan
  • id: <number> - sesuai dengan pengenal permintaan
  • result: <array|number|object|string> - data yang diminta atau konfirmasi keberhasilan

Permintaan dapat dikirim secara batch dengan mengirimkan array objek permintaan JSON-RPC sebagai data untuk satu POST.

Contoh Permintaan

Parameter commitment harus disertakan sebagai elemen terakhir dalam array params:

curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getBalance",
"params": [
"83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri",
{
"commitment": "finalized"
}
]
}
'

Definisi

  • Hash: Hash SHA-256 dari sekumpulan data.
  • Pubkey: Kunci publik dari pasangan kunci Ed25519.
  • Transaction: Daftar instruksi Solana yang ditandatangani oleh keypair klien untuk mengotorisasi tindakan tersebut.
  • Signature: Tanda tangan Ed25519 dari data payload transaksi termasuk instruksi. Ini dapat digunakan untuk mengidentifikasi transaksi.

Pemeriksaan Kesehatan

Meskipun bukan API JSON RPC, permintaan GET /health pada Endpoint HTTP RPC menyediakan mekanisme pemeriksaan kesehatan untuk digunakan oleh penyeimbang beban atau infrastruktur jaringan lainnya. Permintaan ini akan selalu mengembalikan respons HTTP 200 OK dengan body berupa "ok", "behind" atau "unknown":

  • ok: Node berada dalam jangkauan HEALTH_CHECK_SLOT_DISTANCE slot dari slot terkonfirmasi cluster terbaru
  • behind { distance }: Node tertinggal distance slot dari slot terkonfirmasi cluster terbaru di mana distance > HEALTH_CHECK_SLOT_DISTANCE
  • unknown: Node tidak dapat menentukan posisinya dalam kaitannya dengan cluster

Is this page helpful?

Daftar Isi

Edit Halaman