> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Solana Yellowstone gRPC: потоковая передача данных в реальном времени

> Высокопроизводительная потоковая передача данных блокчейна Solana в реальном времени по протоколу gRPC с расширенной фильтрацией и доставкой со сверхнизкой задержкой для разработчиков.

<Note>
  **Ищете управляемый сервис gRPC от Helius?** На этой странице в качестве справочного материала описан открытый протокол **Yellowstone gRPC**. Для работы в продакшене с воспроизведением исторических данных за 48 часов, отказоустойчивостью на базе нескольких узлов и полностью управляемой средой используйте [LaserStream](/docs/ru/laserstream) — совместимое с Yellowstone предложение gRPC от Helius.
</Note>

## Что такое Yellowstone gRPC?

Yellowstone gRPC обеспечивает **потоковую передачу данных со сверхнизкой задержкой** из блокчейна Solana, подключаясь напрямую к лидерам Solana для получения шредов по мере их создания. Благодаря этому ваше приложение получает данные в реальном времени с минимальной задержкой.

<CardGroup cols={2}>
  <Card title="High Performance" icon="bolt">
    Бинарный протокол с эффективной сериализацией для максимальной пропускной способности и минимального потребления трафика
  </Card>

  <Card title="Real-time Streaming" icon="wave-pulse">
    Двунаправленная потоковая передача с мгновенным созданием и отменой подписок
  </Card>

  <Card title="Advanced Filtering" icon="filter">
    Точное управление получаемыми данными с помощью фильтров аккаунтов, транзакций и программ
  </Card>

  <Card title="Multiple Data Types" icon="database">
    Подписка на аккаунты, транзакции, слоты, блоки и записи в одном потоке
  </Card>
</CardGroup>

## Типы потоков

<Tabs>
  <Tab title="Accounts">
    **Отслеживайте изменения аккаунтов в реальном времени**

    Отслеживайте обновления баланса, изменения данных и владельца, а также события создания и удаления аккаунтов с помощью точных параметров фильтрации.

    <Card title="Account Monitoring Guide" icon="user" href="/docs/ru/grpc/account-monitoring">
      Узнайте, как передавать обновления аккаунтов в потоке, на примерах фильтрации
    </Card>
  </Tab>

  <Tab title="Transactions">
    **Передавайте данные транзакций и результаты выполнения в потоке**

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

    <Card title="Transaction Monitoring Guide" icon="receipt" href="/docs/ru/grpc/transaction-monitoring">
      Отслеживайте транзакции с фильтрацией по программам и сведениями о выполнении
    </Card>
  </Tab>

  <Tab title="Slots & Blocks">
    **Отслеживайте консенсус сети и создание блоков**

    Отслеживайте обновления слотов, создание блоков и изменения состояния сети на разных уровнях подтверждения.

    <Card title="Slot & Block Monitoring Guide" icon="cube" href="/docs/ru/grpc/slot-and-block-monitoring">
      Передавайте слоты и блоки со сведениями о транзакциях в потоке
    </Card>
  </Tab>

  <Tab title="Entries">
    **Низкоуровневый мониторинг записей блокчейна**

    Получайте доступ к базовым единицам выполнения, содержащим пакеты транзакций и результаты их обработки.

    <Card title="Entry Monitoring Guide" icon="code" href="/docs/ru/grpc/entry-monitoring">
      Передавайте записи блоков с пакетами транзакций в потоке
    </Card>
  </Tab>
</Tabs>

## Как получить доступ к Yellowstone gRPC

Выберите вариант, который лучше всего соответствует вашим потребностям:

### LaserStream

[LaserStream](/docs/ru/laserstream) — это многопользовательский высокодоступный сервис gRPC с автоматическим аварийным переключением и [возможностью воспроизведения исторических данных за 48 часов](/docs/ru/laserstream/historical-replay). Оптимальный вариант для большинства продакшен-приложений.

<Tip>
  Начните работу с LaserStream через [панель управления Helius](https://dashboard.helius.dev/laserstream). Для Mainnet требуется тариф Business или Professional; Devnet доступен на тарифе Developer и выше. Подробности см. в разделе [«Тарифы и цены»](/docs/ru/billing/plans).
</Tip>

### Выделенные узлы

[Выделенные узлы](/docs/ru/dedicated-nodes) предоставляют эксклюзивную конечную точку gRPC с гарантированной изоляцией ресурсов. Лучше всего подходят для специализированных требований и опытных операторов.

### Сравнение вариантов gRPC

Нужна помощь с выбором? Прочитайте наше [руководство по сравнению gRPC](/docs/ru/laserstream/laserstream-vs-dedicated-nodes), чтобы определить, что лучше подходит для вашего сценария: LaserStream или выделенные узлы.

## Быстрый старт

Готовы запустить потоковую передачу?

Сначала прочитайте наше подробное руководство по настройке или начните работу через панель управления:

<CardGroup>
  <Card title="Yellowstone gRPC Quickstart" icon="rocket" href="/docs/ru/grpc/quickstart">
    Описывает установку, аутентификацию и настройку первого потока
  </Card>

  <Card title="Get Started" icon="rocket" href="https://dashboard.helius.dev/laserstream">
    Включите LaserStream в панели управления Helius и запустите потоковую передачу.
  </Card>
</CardGroup>

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

Для каждой подписки gRPC требуется правильно структурированный запрос. Ниже описано, как его создать:

### Основные параметры

<ParamField path="commitment" type="string" required>
  **Уровень подтверждения для согласованности данных**

  * `processed` — транзакция обработана узлом
  * `confirmed` — транзакция подтверждена кластером
  * `finalized` — транзакция финализирована кластером
</ParamField>

<ParamField path="ping" type="boolean" optional>
  **Поддержание активного соединения**

  Установите значение `true`, чтобы получать сообщения pong каждые 15 секунд и предотвращать разрыв соединения по тайм-ауту из-за балансировщиков нагрузки или прокси-серверов.
</ParamField>

<ParamField path="accounts_data_slice" type="array" optional>
  **Оптимизация передачи данных**

  Запрашивайте определенные диапазоны байтов из данных аккаунта:

  ```json theme={"system"}
  [
    { "offset": 0, "length": 100 },
    { "offset": 200, "length": 50 }
  ]
  ```
</ParamField>

### Настройка фильтров

<Accordion title="Account Filters">
  <ParamField path="account" type="array<string>">
    Массив публичных ключей аккаунтов для отслеживания (логическое ИЛИ)
  </ParamField>

  <ParamField path="owner" type="array<string>">
    Массив публичных ключей владельцев для отслеживания (логическое ИЛИ)
  </ParamField>

  <ParamField path="filters" type="array<object>">
    Фильтры DataSize и Memcmp (логическое И):

    ```json theme={"system"}
    [
      { "dataSize": 165 },
      { "memcmp": { "offset": 0, "bytes": "base58_encoded_bytes" } }
    ]
    ```
  </ParamField>

  <Info>
    Если используются фильтры нескольких типов, между ними действует логическое И. Между значениями внутри массивов действует логическое ИЛИ.
  </Info>
</Accordion>

<Accordion title="Transaction Filters">
  <ParamField path="vote" type="boolean">
    Включать или исключать транзакции голосования
  </ParamField>

  <ParamField path="failed" type="boolean">
    Включать или исключать неуспешные транзакции
  </ParamField>

  <ParamField path="signature" type="string">
    Отслеживать определенную подпись транзакции
  </ParamField>

  <ParamField path="account_include" type="array<string>">
    Включать транзакции с участием любого из этих аккаунтов (логическое ИЛИ)
  </ParamField>

  <ParamField path="account_exclude" type="array<string>">
    Исключать транзакции с участием любого из этих аккаунтов
  </ParamField>

  <ParamField path="account_required" type="array<string>">
    Включать транзакции с участием всех этих аккаунтов (логическое И)
  </ParamField>
</Accordion>

<Accordion title="Block Filters">
  <ParamField path="account_include" type="array<string>">
    Фильтровать транзакции и аккаунты внутри блоков
  </ParamField>

  <ParamField path="include_transactions" type="boolean">
    Включать все транзакции внутри блока
  </ParamField>

  <ParamField path="include_accounts" type="boolean">
    Включать все обновления аккаунтов внутри блока
  </ParamField>

  <ParamField path="include_entries" type="boolean">
    Включать все записи внутри блока
  </ParamField>
</Accordion>

<Accordion title="Slot Filters">
  <ParamField path="filter_by_commitment" type="boolean" default="false">
    Если установлено значение `true`, будут поступать только обновления слотов для указанного уровня подтверждения. Если установлено значение `false`, будут поступать обновления для всех уровней подтверждения.
  </ParamField>
</Accordion>

***

## Пример: базовый мониторинг транзакций

Ниже приведен полный пример, который поможет вам начать работу:

```typescript theme={"system"}
import Client, { CommitmentLevel, SubscribeRequest } from "@triton-one/yellowstone-grpc";

const client = new Client("your-grpc-endpoint", "your-api-token", {
  "grpc.max_receive_message_length": 64 * 1024 * 1024
});

const stream = await client.subscribe();

// Handle incoming data
stream.on("data", (data) => {
  if (data.transaction) {
    console.log(`Transaction: ${data.transaction.signature}`);
    console.log(`Success: ${!data.transaction.meta?.err}`);
  }
});

// Subscribe to transactions with complete request structure
const subscribeRequest: SubscribeRequest = {
  transactions: {
    client: {
      accountInclude: [
        "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", // Token Program
        "11111111111111111111111111111111"               // System Program
      ],
      accountExclude: [],
      accountRequired: [],
      vote: false,
      failed: false
    }
  },
  commitment: CommitmentLevel.CONFIRMED,
  ping: { id: 1 }
};

stream.write(subscribeRequest);
```

<Note>
  Это базовый пример. Для работы в продакшене реализуйте надлежащую обработку ошибок, логику повторного подключения и обработку данных. Полные примеры реализации приведены в наших подробных руководствах.
</Note>

***

## Готовы начать?

<CardGroup cols={2}>
  <Card title="Complete Setup Guide" icon="rocket" href="/docs/ru/grpc/quickstart">
    Установка, аутентификация и реализация первого потока
  </Card>

  <Card title="Stream Pump AMM Data" icon="chart-line" href="/docs/ru/grpc/stream-pump-amm-data">
    Практический пример: мониторинг транзакций Pump AMM
  </Card>
</CardGroup>

## Дополнительные ресурсы

* **[Репозиторий исходного кода Yellowstone gRPC](https://github.com/rpcpool/yellowstone-grpc)** — полные определения protobuf и примеры
* **[Сообщество Discord](https://discord.com/invite/6GXdee3gBj)** — получите помощь от разработчиков и команды Helius
* **[Документация LaserStream](/docs/ru/laserstream)** — расширенный сервис gRPC с дополнительными возможностями


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.