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 disarankanmethod: <string>
- string yang berisi metode yang akan dipanggilparams: <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 permintaanid: <number>
- sesuai dengan pengenal permintaanresult: <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 jangkauanHEALTH_CHECK_SLOT_DISTANCE
slot dari slot terkonfirmasi cluster terbarubehind { distance }
: Node tertinggaldistance
slot dari slot terkonfirmasi cluster terbaru di manadistance > HEALTH_CHECK_SLOT_DISTANCE
unknown
: Node tidak dapat menentukan posisinya dalam kaitannya dengan cluster
Is this page helpful?