Найти в Дзене
Компас

Ускорения операций в блокчейне TON.

Мы закончили этап исследований и разработки по задаче ускорения операций в блокчейне TON.
Цель — сделать так, чтобы операции занимали меньше одной секунды, не жертвуя масштабируемостью, безопасностью и децентрализацией.
В результате мы нашли три направления, которые вместе дают нужный эффект.
1. Базовый уровень (L1)

Мы закончили этап исследований и разработки по задаче ускорения операций в блокчейне TON.

Цель — сделать так, чтобы операции занимали меньше одной секунды, не жертвуя масштабируемостью, безопасностью и децентрализацией.

В результате мы нашли три направления, которые вместе дают нужный эффект.

1. Базовый уровень (L1)

Главное изменение — новый консенсус Catchain 2.0.

Он заменяет текущую связку Catchain + BCP и основан на современных протоколах Simplex и Alpenglow, адаптированных под TON.

Проще говоря, это то, как валидаторы договариваются между собой и принимают новые блоки.

С новым консенсусом финализация блока занимает 200–400 миллисекунд вместо ~2.5 секунд раньше — при том же уровне безопасности.

Говоря о безопасности — дополнительный плюс этих протоколов в том, что они хорошо известны, а значит их проще аудировать.

Второе важное изменение — новый сетевой протокол рассылки блоков (two-step broadcast).

Мы сократили время доставки блока между узлами по сети примерно с 700 миллисекунд до ~100 миллисекунд.

Также были сделаны дополнительные оптимизации в C++ реализации узла TON:

— сжатие блоков при передаче,

— параллельная валидация,

— обмен данными между валидаторами не только через RLDP2, но и по TCP или QUIC. По результатам тестов возможен переход на один из этих протоколов.

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

2. API

Оптимизировали Toncenter API. Теперь статус операции через Streaming API V2 приходит с задержкой 30–100 миллисекунд.

Кроме того, появилось больше статусов операций:

confirmed — блок появился в шардчейне,

finalized — блок принят в мастерчейне.

Раньше был только один статус — finalized.

3. UX

Операция со статусом confirmed имеет менее 1% вероятности отката, поэтому приложения могут показывать её пользователю сразу, не заставляя ждать.

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

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

Это хорошее дополнение к моментальным pending-операциям, которые мы сделали в UX-обновлении прошлого года.

Все части по отдельности уже готовы. Сейчас мы собираем их воедино и далее начинаем тестирование в тестовой сети TON.