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

Доступные эндпоинты

Jetstream доступен во всех регионах OrbitFlare. Подключитесь к ближайшему к вашей инфраструктуре региону для минимальной задержки.
Jetstream использует обычный http:// (не https://) для gRPC-соединений. gRPC использует собственное согласование безопасности транспорта через HTTP/2. Используйте https:// только если ваш выделенный узел явно требует этого.

Спецификация Protocol Buffer

Этот документ описывает спецификацию Protocol Buffer (protobuf), используемую OrbitFlare Jetstream. Полную спецификацию можно найти в нашем репозитории на GitHub.

Определение сервиса

Сообщения запросов

SubscribeRequest

Основное сообщение запроса для подписки на обновления данных:

Фильтрация транзакций

Фильтрация аккаунтов

Ping-запрос

Сообщения ответов

SubscribeUpdate

Основное сообщение ответа, содержащее обновления:

Обновление транзакции

Обновление аккаунта

Обновления Ping/Pong

Общие типы

Поддержка разобранных инструкций

Разобранный запрос

Обновление разобранной транзакции

Типы инструкций

Нестриминговые методы

Использование протокола

При реализации клиента для Jetstream вам потребуется:
  1. Сгенерировать клиентский код из определения protobuf
  2. Реализовать метод Subscribe RPC для потоковой передачи данных
  3. Использовать SubscribeParsed для поддержки разобранных инструкций
  4. Использовать Ping/Pong для проверки работоспособности соединения
  5. Использовать GetVersion для проверки совместимости с сервером
  6. Обрабатывать различные типы обновлений (транзакции, аккаунты, pong)

Генерация кода

Для TypeScript/JavaScript:
Для Rust:

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

  1. Совместимость версий
    • Используйте GetVersion для проверки совместимости протокола
    • Отслеживайте критические изменения в бета-релизах
    • Тщательно тестируйте при обновлении
  2. Обработка ошибок
    • Реализуйте корректную обработку ошибок для всех типов сообщений
    • Обрабатывайте сбои соединения без потери данных
    • Проверяйте поля сообщений перед обработкой
  3. Управление соединением
    • Используйте Ping/Pong для проверки работоспособности соединения
    • Реализуйте логику автоматического переподключения
    • Устанавливайте подходящие тайм-ауты
  4. Производительность
    • Используйте подходящие фильтры для минимизации ненужных данных
    • Рассматривайте использование фильтрации по аккаунтам для больших наборов данных
    • Отслеживайте использование ресурсов, особенно при подписках на аккаунты
    • Используйте SubscribeParsed для поддержки разобранных инструкций при необходимости

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

Обзор Jetstream

Руководство по началу работы, примеры и документация по фильтрации.

Журнал изменений

История версий и обновления протокола.

Поддержка

По техническим вопросам о спецификации протокола или деталях реализации посетите наш репозиторий на GitHub или присоединяйтесь к нашему сообществу в Discord.