Доступные эндпоинты
Jetstream v2 обслуживается на тех же эндпоинтах, что и v1 — отдельного хоста нет. СервисJetstreamV2 предоставляется через то же HTTP/2-соединение и маршрутизируется по пути gRPC-метода,
поэтому вы подключаетесь к региону, ближайшему к вашей инфраструктуре, точно так же, как и для v1.
- США
- Европа
- Азиатско-Тихоокеанский регион
Jetstream использует обычный
http:// (не https://) для gRPC-соединений. gRPC согласовывает
собственную безопасность транспорта через HTTP/2. Используйте https:// только если ваш выделенный
узел явно этого требует.Аутентификация
Аутентификация такая же, как в v1: укажите ваш API-ключ в gRPC-заголовке метаданныхx-token или
используйте аутентификацию по белому списку IP. Подробнее см. в разделе
Аутентификация.
Спецификация Protocol Buffer
Этот документ описывает спецификацию Protocol Buffer (protobuf), используемую OrbitFlare Jetstream v2. Полную спецификацию можно найти в нашем репозитории на GitHub — скачайте тамjetstream_v2.proto, чтобы сгенерировать ваш клиент, или используйте определение,
воспроизведённое ниже. Пакет jetstream.v2 полностью независим от v1 — сгенерируйте из него отдельный
клиент.
Определение сервиса
Сообщения запросов
SubscribeTransactions — это двунаправленный поток. Клиент отправляет последовательность сообщений
запросов — каждое несёт ровно одну полезную нагрузку — чтобы управлять своей подпиской, пока поток
открыт.
SubscribeTransactionsRequest
Добавление фильтров
Фильтры добавляются динамически, пока поток открыт. Каждый фильтр несёт выбранный клиентомfilter_id, который возвращается в каждой совпавшей транзакции и в подтверждении валидации.
Фильтр должен указывать хотя бы один из
account_include / account_exclude / account_required.
Пустые (совпадающие со всем) фильтры отклоняются — см. FilterResult.Удаление фильтров
Сообщения ответов
SubscribeTransactionsResponse
Каждое сообщение в потоке несёт серверную временную метку и монотонно возрастающий номерsequence
(на поток), чтобы клиенты могли обнаруживать пропуски. Устанавливается ровно одна полезная нагрузка.
Валидация фильтров
После каждогоAddFilters / RemoveFilters сервер возвращает один FilterResult на каждый фильтр,
подтверждая принятие или объясняя отклонение.
Heartbeat
Отфильтрованная транзакция
Каждая совпавшая транзакция перечисляет значенияfilter_id, с которыми она совпала, за которыми
следует сама транзакция.
Общие типы
Потоковая передача слотов
SubscribeSlots — это серверный поток событий жизненного цикла слотов. Он не принимает параметров —
откройте поток и получайте события по мере продвижения слотов.
Нестриминговые методы
Использование протокола
Типичный клиент v2:- Сгенерируйте клиентский код из определения
jetstream.v2выше. - Откройте двунаправленный поток
SubscribeTransactionsи аутентифицируйтесь (заголовокx-tokenили белый список IP). - Отправьте запрос
AddFiltersс одним или несколькими элементамиTxFilter, каждый с уникальнымfilter_id. - Прочитайте подтверждения
FilterResult, затем поток сообщенийFilteredTransaction. - Добавляйте или удаляйте фильтры в любой момент без повторного открытия потока.
- Отслеживайте
sequenceдля обнаружения пропусков и рассматривайте закрытие соединения как сигнал к переподключению. - При необходимости откройте
SubscribeSlots(отдельный поток) для событий жизненного цикла слотов.
Генерация кода
Для TypeScript/JavaScript:Лучшие практики
-
Фильтрация
- Всегда задавайте хотя бы одно ограничение по аккаунту; пустые фильтры отклоняются.
- Используйте стабильный, уникальный
filter_idдля каждого фильтра, чтобы вы могли сопоставлять совпадения и удалять фильтры позже.
-
Обогащение
- Держите
include_enrichmentвыключенным, если вам не нужны дополнительные поля — экономный вывод меньше. Его включение не добавляет задержки; единственная цена — умеренно больший размер сообщения. - Обогащение действует на всю подписку: его включение на любом одном фильтре обогащает каждую транзакцию, которую получает сессия.
- Держите
-
Последовательность и переподключение
- Отслеживайте номер
sequenceдля обнаружения потерянных сообщений. - Реализуйте автоматическое переподключение; при переподключении повторно отправляйте ваш
AddFilters.
- Отслеживайте номер
-
Живость
- Используйте
HeartbeatиPing/Pong, чтобы подтвердить, что поток исправен, и измерять задержку.
- Используйте
Смотрите также
Обзор Jetstream v2
Что v2 добавляет по сравнению с v1, модель потоковой передачи и начало работы.
Справочник Jetstream (v1)
Спецификация Protocol Buffer для v1.