Перейти к основному содержанию

Обзор

Узлы OrbitFlare RPC принимают HTTP-запросы в соответствии со спецификацией JSON-RPC 2.0. Этот API позволяет вам взаимодействовать с блокчейном Solana для запроса данных и отправки транзакций.

Формат запроса

Чтобы выполнить JSON-RPC запрос, отправьте HTTP POST-запрос со следующими параметрами:
  • Endpoint: https://fra.rpc.orbitflare.com?api_key=YOUR_LICENSE_KEY
  • Заголовок: Content-Type: application/json
  • Тело: JSON-объект со следующими полями:
ПолеТипОписание
jsonrpcstringДолжно быть “2.0”
idstring/numberУникальный идентификатор запроса
methodstringИмя RPC-метода
paramsarrayМассив параметров метода

Пример запроса

curl https://fra.rpc.orbitflare.com?api_key=YOUR_LICENSE_KEY -X POST -H "Content-Type: application/json" -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getBalance",
  "params": [
    "83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri"
  ]
}'

Формат ответа

Ответы представляют собой JSON-объекты, содержащие:
ПолеТипОписание
jsonrpcstringВсегда “2.0”
idstring/numberСоответствует идентификатору запроса
resultvariesДанные результата метода
errorobjectДетали ошибки (если применимо)

Commitment

Многие методы принимают параметр commitment, указывающий степень подтверждения данных:
  • processed: Последний блок (самый быстрый, не подтверждён)
  • confirmed: Подтверждён супербольшинством (баланс между скоростью и финальностью)
  • finalized: Финализирован супербольшинством (самый медленный, полностью подтверждён)
Пример с commitment:
curl https://fra.rpc.orbitflare.com?api_key=YOUR_LICENSE_KEY -X POST -H "Content-Type: application/json" -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getBalance",
  "params": [
    "83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri",
    {"commitment": "finalized"}
  ]
}'

Пакетные запросы

Вы можете отправить несколько запросов в одном HTTP-вызове, передав массив объектов запросов:
curl https://fra.rpc.orbitflare.com?api_key=YOUR_LICENSE_KEY -X POST -H "Content-Type: application/json" -d '[
  {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getBalance",
    "params": ["83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri"]
  },
  {
    "jsonrpc": "2.0",
    "id": 2,
    "method": "getBlockHeight",
    "params": []
  }
]'

Распространённые типы

ТипОписание
PubkeyСтрока публичного ключа, закодированная в base-58
HashСтрока SHA-256 хеша, закодированная в base-58
SignatureПодпись Ed25519, закодированная в base-58
SlotЦелочисленный номер высоты блока/слота

Проверка работоспособности

Вы можете проверить работоспособность узла с помощью GET-запроса:
curl "https://fra.rpc.orbitflare.com/health?api_key=YOUR_LICENSE_KEY"
Возможные ответы:
  • ok: Узел работает исправно и актуален
  • behind { slots: number }: Узел отстаёт на N слотов
  • error: Узел неисправен

Доступные методы

Аккаунт и программа

  • getAccountInfo
  • getMultipleAccounts
  • getProgramAccounts
  • getMinimumBalanceForRentExemption

Блоки и слоты

  • getBlock
  • getBlocks
  • getBlockHeight
  • getSlot
  • getSlotLeader

Транзакции

  • getTransaction
  • getSignatureStatuses
  • getSignaturesForAddress
  • sendTransaction
  • simulateTransaction

Токены

  • getTokenAccountBalance
  • getTokenAccountsByDelegate
  • getTokenAccountsByOwner
  • getTokenSupply

Ограничения скорости

Ограничения скорости зависят от тарифного плана. Точные значения RPS и TPS для каждого плана см. на странице Аутентификация и лимиты.

Лучшие практики

  1. Используйте подходящий уровень commitment
    • Используйте processed для обновлений интерфейса
    • Используйте confirmed для большинства операций
    • Используйте finalized для критических операций
  2. Оптимизируйте запросы
    • Используйте пакетные запросы там, где это возможно
    • Реализуйте корректное кэширование
    • Выбирайте подходящие интервалы опроса
  3. Обрабатывайте ошибки
    • Реализуйте надлежащую обработку ошибок
    • Используйте экспоненциальную задержку при повторных попытках
    • Отслеживайте сбои запросов

Смотрите также

Поддержка

По вопросам технической поддержки или вопросам о нашем RPC-сервисе: