HTTP-методы RPC Solana
Узлы Solana принимают HTTP-запросы, используя спецификацию JSON-RPC 2.0.
Для JavaScript-приложений используйте библиотеку @solana/web3.js как удобный интерфейс для методов RPC для взаимодействия с узлом Solana. Для подключения PubSub к узлу Solana используйте Websocket API.
HTTP-эндпоинт RPC
Порт по умолчанию: 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"}]}'
Определения
- Хэш: SHA-256 хэш блока данных.
- Pubkey: Публичный ключ пары ключей Ed25519.
- Транзакция: Список инструкций Solana, подписанных парой ключей клиента для авторизации этих действий.
- Подпись: Подпись Ed25519 данных полезной нагрузки транзакции, включая инструкции. Это может быть использовано для идентификации транзакций.
Проверка работоспособности
Хотя это и не JSON RPC API, запрос GET /health
к RPC HTTP Endpoint
предоставляет механизм проверки работоспособности, который можно использовать
балансировщиками нагрузки или другой сетевой инфраструктурой. Этот запрос всегда
возвращает ответ HTTP 200 OK с телом "ok", "behind" или "unknown":
ok
: Узел находится в пределахHEALTH_CHECK_SLOT_DISTANCE
слотов от последнего подтвержденного слота кластераbehind { distance }
: Узел отстает наdistance
слотов от последнего подтвержденного слота кластера, гдеdistance > HEALTH_CHECK_SLOT_DISTANCE
unknown
: Узел не может определить, где он находится относительно кластера
Is this page helpful?