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?

Зміст

Редагувати сторінку