> ## 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.

# Гарантии доставки

> Узнайте о гарантиях доставки LaserStream, включая доставку ровно один раз, порядок сообщений, поведение уведомлений о слотах и обработку форков.

LaserStream предоставляет точно такие же гарантии доставки, как и узлы Geyser. В этом руководстве описано, чего следует ожидать от доставки сообщений в потоках LaserStream.

<Info>
  Эти гарантии распространяются на **стандартные подписки** (транзакции, аккаунты, слоты, блоки). [Предварительно обработанные транзакции](/docs/ru/preprocessed-transactions/overview) (часть Shred Delivery) предоставляются с отдельными гарантиями доставки по мере возможности.
</Info>

## Доставка ровно один раз

LaserStream гарантирует **доставку ровно один раз**. Каждое сообщение доставляется в ваш поток строго один раз — вы никогда не получите дубликаты, и ни одно сообщение не будет пропущено.

Для этого LaserStream одновременно подключается к нескольким узлам Solana и удаляет дубликаты входящих данных перед их передачей в ваш поток. Такая многоузловая архитектура также устраняет единые точки отказа, обеспечивая максимальную доступность без ущерба для корректности доставки.

## Порядок сообщений по уровню подтверждения

Порядок доставки зависит от уровня подтверждения сообщений:

### Confirmed и finalized

Все сообщения с уровнем **confirmed** и **finalized** доставляются по порядку. Эти уровни подтверждения обеспечивают согласованное последовательное представление состояния блокчейна.

### Processed

Все сообщения с уровнем **processed** отправляются в порядке возрастания слотов, если не возникает форк. При форке порядок слотов может временно нарушиться, пока сеть реорганизуется вокруг канонической цепочки. После разрешения форка порядок по возрастанию восстанавливается.

<Warning>
  На уровне подтверждения processed существует небольшая вероятность, что обработанный слот позднее будет пропущен или отброшен из-за форка. Geyser **не** отправляет явные уведомления об откате для обновлений, отброшенных из-за форка. Если ваше приложение получает данные уровня processed, необходимо учитывать, что некоторые обновления могут относиться к слотам, которые в итоге будут исключены. Для приложений, которым требуется определенность, используйте уровень подтверждения **confirmed** или **finalized**.
</Warning>

## Порядок внутри слота

В пределах одного слота LaserStream доставляет обновления аккаунтов и транзакции со следующими гарантиями:

### Обновления аккаунтов перед транзакциями

Для каждой транзакции вызванные ею обновления аккаунтов доставляются **до** самой транзакции:

```
<accounts updated by tx X> → <tx X> → <accounts updated by tx Y> → <tx Y>
```

### Порядок между транзакциями

LaserStream сохраняет тот же порядок, что и [плагин Geyser для Agave](https://docs.solanalabs.com/validator/geyser#ordering-guarantees). Детерминированность порядка поступления обновлений от разных транзакций зависит от их **блокировок записи**:

* **Одинаковая блокировка записи** (например, три сделки в одном пуле Raydium): порядок всегда детерминирован. Agave выполняет такие транзакции последовательно, поскольку они записывают данные в один и тот же аккаунт.
* **Разные блокировки записи** (например, две не связанные между собой транзакции): порядок не обязательно детерминирован. Agave может выполнять их параллельно, поэтому их обновления могут чередоваться в потоке.

Чтобы восстановить полностью детерминированный порядок независимо от блокировок записи, используйте **индекс блока/транзакции** из данных транзакции.

### Нормализация версий записи

LaserStream нормализует версии записи в своей многоузловой архитектуре. В отличие от необработанных данных Geyser или Yellowstone, где версии записи локальны для каждого узла и могут различаться, LaserStream предоставляет согласованные версии записи, на которые можно полагаться при упорядочивании обновлений аккаунтов уровня processed.

<Note>
  **Временное исключение:** аккаунты размером более 512 КБ сейчас буферизуются в плагине Geyser из соображений производительности, что может влиять на детерминированность порядка для этих аккаунтов. Это ограничение будет устранено в ближайшее время.
</Note>

## Уведомления о слотах

**Уведомления о слотах уровня processed** поступают после доставки всех сообщений для соответствующего слота. Поэтому при получении уведомления о слоте уровня processed можно быть уверенным, что все данные о транзакциях и обновлениях аккаунтов, связанные с этим слотом, уже отправлены в ваш поток. Уведомления о слотах можно использовать как сигнал для сброса или освобождения буферизованных данных этого слота.

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

LaserStream хранит буфер с данными последних слотов, обеспечивая [воспроизведение исторических данных](/docs/ru/laserstream/historical-replay) за период до **48 часов** (около 691 200 слотов при текущей скорости сети). Если ваше приложение отключится, можно повторно подключиться и продолжить работу с последнего обработанного слота без потери данных.

При использовании [клиента SDK LaserStream](/docs/ru/laserstream/clients) восстановление выполняется автоматически: клиент отслеживает позицию в потоке по номеру слота и повторно подключается без прерываний. Реализовывать логику повторного подключения вручную не требуется.

## Справочник уровней подтверждения

| Уровень | Описание | Задержка | Порядок | Риск отката |
| - | - | - | - | - |
| **Processed** | Включен в последний известный узлу блок; голосов на уровне всего кластера пока нет | \~400 мс | По возрастанию слотов (может нарушаться во время форков) | Небольшая вероятность пропуска или отбрасывания слотов из-за форка |
| **Confirmed** | Сверхбольшинство стейка (≥66%) проголосовало за блок (оптимистическое подтверждение) | Несколько секунд | Строго упорядочено | Пренебрежимо малый |
| **Finalized** | Подтвержден и поверх него создан как минимум 31 дополнительный подтвержденный блок (блокировка на 32 голоса) | \~12–15 секунд | Строго упорядочено | Фактически необратим |


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