Эти гарантии распространяются на стандартные подписки (транзакции, аккаунты, слоты, блоки). Предварительно обработанные транзакции (часть Shred Delivery) предоставляются с отдельными гарантиями доставки по мере возможности.
Доставка ровно один раз
LaserStream гарантирует доставку ровно один раз. Каждое сообщение доставляется в ваш поток строго один раз — вы никогда не получите дубликаты, и ни одно сообщение не будет пропущено. Для этого LaserStream одновременно подключается к нескольким узлам Solana и удаляет дубликаты входящих данных перед их передачей в ваш поток. Такая многоузловая архитектура также устраняет единые точки отказа, обеспечивая максимальную доступность без ущерба для корректности доставки.Порядок сообщений по уровню подтверждения
Порядок доставки зависит от уровня подтверждения сообщений:Confirmed и finalized
Все сообщения с уровнем confirmed и finalized доставляются по порядку. Эти уровни подтверждения обеспечивают согласованное последовательное представление состояния блокчейна.Processed
Все сообщения с уровнем processed отправляются в порядке возрастания слотов, если не возникает форк. При форке порядок слотов может временно нарушиться, пока сеть реорганизуется вокруг канонической цепочки. После разрешения форка порядок по возрастанию восстанавливается.Порядок внутри слота
В пределах одного слота LaserStream доставляет обновления аккаунтов и транзакции со следующими гарантиями:Обновления аккаунтов перед транзакциями
Для каждой транзакции вызванные ею обновления аккаунтов доставляются до самой транзакции:Порядок между транзакциями
LaserStream сохраняет тот же порядок, что и плагин Geyser для Agave. Детерминированность порядка поступления обновлений от разных транзакций зависит от их блокировок записи:- Одинаковая блокировка записи (например, три сделки в одном пуле Raydium): порядок всегда детерминирован. Agave выполняет такие транзакции последовательно, поскольку они записывают данные в один и тот же аккаунт.
- Разные блокировки записи (например, две не связанные между собой транзакции): порядок не обязательно детерминирован. Agave может выполнять их параллельно, поэтому их обновления могут чередоваться в потоке.
Нормализация версий записи
LaserStream нормализует версии записи в своей многоузловой архитектуре. В отличие от необработанных данных Geyser или Yellowstone, где версии записи локальны для каждого узла и могут различаться, LaserStream предоставляет согласованные версии записи, на которые можно полагаться при упорядочивании обновлений аккаунтов уровня processed.Временное исключение: аккаунты размером более 512 КБ сейчас буферизуются в плагине Geyser из соображений производительности, что может влиять на детерминированность порядка для этих аккаунтов. Это ограничение будет устранено в ближайшее время.