HTTP методи Solana RPC
Вузли Solana приймають HTTP-запити, використовуючи специфікацію JSON-RPC 2.0.
Для JavaScript-додатків використовуйте бібліотеку @solana/web3.js як зручний інтерфейс для RPC-методів взаємодії з вузлом Solana. Для PubSub-з'єднання з вузлом Solana використовуйте Websocket API.
RPC HTTP кінцева точка
Порт за замовчуванням: 8899
Форматування запиту
Щоб зробити JSON-RPC запит, надішліть HTTP POST запит із заголовком
Content-Type: application/json
. Дані JSON-запиту повинні містити 4 поля:
jsonrpc: <string>
- встановлено як"2.0"
id: <string | number | null>
- унікальний ідентифікатор запиту, згенерований клієнтом. Зазвичай це рядок або число, хоча технічно допускається null, але не рекомендуєтьсяmethod: <string>
- рядок, що містить метод, який буде викликаноparams: <array>
- JSON-масив упорядкованих значень параметрів
Приклад використання 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"]}'
Вихідні дані відповіді будуть об'єктом JSON з такими полями:
jsonrpc: <string>
- відповідає специфікації запитуid: <number>
- відповідає ідентифікатору запитуresult: <array|number|object|string>
- запитані дані або підтвердження успіху
Запити можна надсилати пакетами, надсилаючи масив об'єктів запиту JSON-RPC як дані для одного POST.
Приклад запиту
Параметр commitment має бути включений як останній елемент у масиві 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"}]}'
Визначення
- Hash: SHA-256 хеш фрагмента даних.
- Pubkey: Публічний ключ пари ключів Ed25519.
- Transaction: Список інструкцій Solana, підписаних клієнтською keypair для авторизації цих дій.
- Signature: Підпис Ed25519 корисного навантаження транзакції, включаючи інструкції. Це можна використовувати для ідентифікації транзакцій.
Перевірка стану
Хоча це не JSON RPC API, запит GET /health
до кінцевої точки RPC HTTP надає
механізм перевірки стану для використання балансувальниками навантаження або
іншою мережевою інфраструктурою. Цей запит завжди повертає відповідь HTTP 200 OK
з тілом "ok", "behind" або "unknown":
ok
: Вузол знаходиться в межахHEALTH_CHECK_SLOT_DISTANCE
slot від останнього підтвердженого slot кластераbehind { distance }
: Вузол відстає наdistance
slot від останнього підтвердженого slot кластера, деdistance > HEALTH_CHECK_SLOT_DISTANCE
unknown
: Вузол не може визначити своє положення відносно кластера
Is this page helpful?