Перейти к основному содержанию
Jetstream v1 устарел. Новым интеграциям следует использовать Справочник протокола Jetstream. v1 остаётся доступным для существующих интеграций.

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

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

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

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

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

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

SubscribeRequest

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

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

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

Фильтры аккаунтов описаны в proto, но не реализованы. Jetstream не передаёт обновления аккаунтов, поэтому оставляйте map accounts в SubscribeRequest пустым. Чтобы отбирать транзакции по аккаунтам, используйте поля фильтра транзакций account_include, account_exclude и account_required. Для обновлений аккаунтов используйте Yellowstone gRPC.

Ping-запрос

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

SubscribeUpdate

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

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

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

Не реализовано. Jetstream никогда не отправляет обновления аккаунтов; сообщение приведено, потому что входит в proto.

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

Общие типы

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

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

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

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

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

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

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

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

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

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

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

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

Обзор Jetstream

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

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

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

Поддержка

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