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

Аутентификация RPC

Все RPC-запросы OrbitFlare аутентифицируются путём добавления вашего лицензионного ключа в качестве параметра запроса к URL конечной точки.
curl -X POST "https://mainnet.rpc.orbitflare.com?api_key=YOUR_LICENSE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getBlockHeight"
  }'
Ваш лицензионный ключ RPC предоставляется вместе с вашей подпиской на услуги OrbitFlare. Вы можете найти его в разделе Лицензии вашей Панели управления OrbitFlare.

Аутентификация Customer API

Customer API использует другой метод аутентификации. Передайте ваш API-ключ через HTTP-заголовок X-ORBIT-KEY:
curl -X GET https://api.orbitflare.com/customer/v2/licenses \
  -H "X-ORBIT-KEY: YOUR_API_KEY"
Customer API v2 также поддерживает аутентификацию с помощью Bearer-токена, полученного через device flow или аутентификацию по подписи кошелька. Подробности смотрите в документации Customer API.

RPC-конечные точки

OrbitFlare предоставляет географически распределённые RPC-конечные точки, позволяющие направлять запросы в регион, ближайший к вашим пользователям или инфраструктуре. Формат URL:
https://{region}.rpc.orbitflare.com?api_key=YOUR_API_KEY
Замените {region} одним из кодов региона ниже.

Доступные регионы

ГородКод регионаКонечная точка
Ashburnashhttps://ash.rpc.orbitflare.com?api_key=YOUR_API_KEY
Нью-Йоркnyhttps://ny.rpc.orbitflare.com?api_key=YOUR_API_KEY
Лос-Анджелесlahttps://la.rpc.orbitflare.com?api_key=YOUR_API_KEY
Солт-Лейк-Ситиslchttps://slc.rpc.orbitflare.com?api_key=YOUR_API_KEY

Конечная точка Mainnet (автоматическая маршрутизация)

Если вам не нужно привязывать запросы к конкретному региону, используйте конечную точку mainnet. OrbitFlare автоматически направит каждый запрос в ближайший доступный регион.
https://mainnet.rpc.orbitflare.com?api_key=YOUR_API_KEY
Конечная точка mainnet рекомендуется для большинства случаев использования. Она обеспечивает минимальную задержку без необходимости управлять выбором региона.

WebSocket-конечные точки

WebSocket-соединения используют те же коды регионов со схемой wss://:
wss://{region}.rpc.orbitflare.com?api_key=YOUR_API_KEY
Для WebSocket-соединений с автоматической маршрутизацией:
wss://mainnet.rpc.orbitflare.com?api_key=YOUR_API_KEY
Аутентификация выполняется через тот же параметр api_key.

Devnet

OrbitFlare предоставляет выделенную конечную точку Devnet для разработки и тестирования:
https://devnet.rpc.orbitflare.com?api_key=YOUR_API_KEY
Конечная точка Devnet подключается к Solana Devnet. Не используйте её для производственных нагрузок. Токены Devnet не имеют денежной ценности.

Ограничения частоты запросов по планам

Каждый план определяет максимальное количество запросов в секунду (RPS) и транзакций в секунду (TPS).
ПланЗапросов в секунду (RPS)Транзакций в секунду (TPS)
Бесплатный101
Разработчик5010
Рост20075
Масштаб400150
Pro600200
ВыделенныйБез ограниченийБез ограничений
Запросы, превышающие ограничение RPS или TPS вашего плана, получат HTTP-ответ 429 Too Many Requests. Реализуйте экспоненциальный откат в вашем клиенте для корректной обработки таких ситуаций.
Нет. OrbitFlare не устанавливает ежемесячные кредитные лимиты или ограничения на количество запросов. Вы можете отправлять неограниченное количество запросов в пределах лимита частоты запросов вашего плана.
Планы OrbitFlare не имеют кредитных лимитов — вы можете делать неограниченное количество запросов, пока остаётесь в пределах лимита частоты запросов в секунду вашего плана. Никаких неожиданных платежей за превышение.

Лимиты соединений для потоковой передачи данных

Лимиты соединений применяются независимо от уровня ограничений частоты запросов RPC и применяются на IP-адрес для всех интерфейсов потоковой передачи.

gRPC (Jetstream / Yellowstone)

ЛимитЗначение
Одновременных соединений на IP50
Подписок на соединениеБез ограничений
Тайм-аут простаивающего соединения10 минут (используйте ping для поддержания активности)
Ограничение в 50 соединений является общим для всех gRPC-конечных точек (Jetstream и Yellowstone), исходящих с одного IP-адреса. Это применяется независимо от того, к какому региону вы подключаетесь.
Выделенные gRPC-узлы не подпадают под общий лимит соединений. Если вам нужно более 50 одновременных gRPC-соединений, свяжитесь с командой по вопросу выделенного gRPC-узла.
Поддержание активности соединений Облачные балансировщики нагрузки и прокси (включая Cloudflare) могут закрывать простаивающие gRPC-потоки примерно через 10 минут. Отправляйте ping каждые 30 секунд для предотвращения разрыва соединения:
const pingRequest: SubscribeRequest = {
  ping: { id: 1 },
  accounts: {},
  accountsDataSlice: [],
  transactions: {},
  transactionsStatus: {},
  blocks: {},
  blocksMeta: {},
  slots: {},
  entry: {},
};

setInterval(() => {
  stream.write(pingRequest, (err) => {
    if (err) console.error("Ping failed:", err);
  });
}, 30_000);
Что происходит при превышении лимита Когда ваш IP имеет 50 активных gRPC-соединений и вы пытаетесь открыть новое, сервер возвращает gRPC-статус RESOURCE_EXHAUSTED:
StatusCode: RESOURCE_EXHAUSTED
Message: connection limit exceeded
Закрывайте неиспользуемые потоки перед открытием новых. Реализуйте экспоненциальный откат при повторном подключении после ошибки RESOURCE_EXHAUSTED.

WebSocket

ЛимитЗначение
Одновременных соединений на IP50
Подписок на соединениеЗависит от плана
Тайм-аут простаивающего соединения60 секунд без сообщений
WebSocket-соединения используют тот же лимит в 50 одновременных соединений на IP. Соединения, простаивающие более 60 секунд без обмена сообщениями, будут закрыты сервером. Что происходит при превышении лимита Новые WebSocket-соединения, попытки которых превышают лимит, отклоняются с кодом закрытия 1008 Policy Violation:
WebSocket closed: 1008 Policy Violation - connection limit exceeded
Ограничение в 50 соединений применяется ко всем общим планам. Если ваша нагрузка требует более одновременных потоковых соединений, Выделенный gRPC-узел или Выделенный RPC-узел полностью снимает ограничение общего плана. Свяжитесь с командой в Discord для обсуждения вариантов.
Лимит применяется глобально на IP-адрес, во всех регионах. Один IP с 30 соединениями во Франкфурте и 20 соединениями в Нью-Йорке достиг ограничения в 50 соединений.
Используйте экспоненциальный откат при повторном подключении после ошибки соединения. Начните с задержки в 1 секунду, удваивая её при каждой неудачной попытке вплоть до максимума в 30 секунд. Всегда корректно закрывайте потоки перед повторным подключением, чтобы не исчерпать квоту соединений.