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

Что такое Yellowstone gRPC?

Yellowstone gRPC — это плагин Geyser, который передаёт данные блокчейна Solana непосредственно на ваш сервер с минимальной задержкой. Он использует двунаправленный поток gRPC, позволяя динамически создавать и отменять подписки без переподключения. С помощью Yellowstone вы можете подписаться на:
  • Аккаунты — изменения баланса и данных в реальном времени
  • Транзакции — результаты выполнения по мере их обработки
  • Слоты — прогресс консенсуса сети по уровням подтверждения
  • Блоки — полные данные блоков с настраиваемым включением транзакций/аккаунтов
  • Записи — низкоуровневые единицы выполнения внутри блока

Высокая производительность

Бинарный протокол с эффективной сериализацией для максимальной пропускной способности.

Потоковая передача в реальном времени

Двунаправленная потоковая передача с мгновенным созданием и отменой подписок без переподключения.

Расширенная фильтрация

Точный контроль получаемых данных через фильтры аккаунтов, транзакций и программ.

Несколько типов данных

Подписка на аккаунты, транзакции, слоты, блоки и записи в одном потоке.

Доступ через OrbitFlare

Yellowstone gRPC доступен через:
  • OrbitFlare Pass — входит в активную лицензию NFT Pass
  • Подписка gRPC — отдельный план gRPC
  • Выделенные gRPC-узлы — полностью изолированные, неограниченная пропускная способность
Подробности о ценах и планах см. на странице Продукты.

Структура запроса подписки

Каждая подписка gRPC использует одинаковую базовую структуру запроса:
const subscriptionRequest: SubscribeRequest = {
  commitment: CommitmentLevel.CONFIRMED, // processed | confirmed | finalized
  accountsDataSlice: [],                 // опционально: запрос конкретных диапазонов байт
  ping: { id: 1 },                       // опционально: поддержание соединения
  accounts: {},
  transactions: {},
  slots: {},
  blocks: {},
  blocksMeta: {},
  entry: {},
};
ПараметрОбязателенОписание
commitmentДаУровень подтверждения: processed, confirmed или finalized
accountsDataSliceНетМассив { offset, length } для получения конкретных диапазонов байт данных аккаунта
pingНетОтправка ping для поддержания соединения. Сервер отвечает pong каждые 15 секунд
Облачные балансировщики нагрузки (например, Cloudflare) обычно закрывают соединения gRPC после 10 минут бездействия. Всегда отправляйте ping каждые 30 секунд для предотвращения отключения.

Типы потоков

Мониторинг изменений аккаунтов в реальном времени — обновления баланса, изменения данных, смена владельца. Фильтрация по адресам, программам-владельцам, размеру данных или байтовым паттернам.Руководство по мониторингу аккаунтов →

Начало работы