Садржај поста
Мы закончили этап исследований и разработки по задаче ускорения операций в блокчейне 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.