#dusk $DUSK @Dusk Потратил время на то, чтобы вникнуть в консенсус Dusk, а не просто пробежаться по документации. Всё время возвращался к одной детали, которая не давала мне покоя.
Режим экстренного реагирования включается только после 16 неудачных итераций. До этого работает обычная Succinct Attestation с фиксированными тайм-аутами шагов. Кандидат не появляется или не набирает кворум — итерация заканчивается, стартует следующая. Чисто и последовательно.
После 16 подряд неудач тайм-ауты исчезают. Итерации продолжают оставаться открытыми. Выключаются голоса NoCandidate и NoQuorum. По замыслу можно запускать несколько открытых итераций одновременно. Это повышает шансы на то, что хотя бы одна выдаст корректный блок. Компромисс — повышенный риск форков. Когда появляются форки, правило фиксировано: побеждает итерация с наименьшим номером, которой удалось прийти к консенсусу. Всё остальное закрывается, как только блок принят.
Есть ещё один последний подстраховывающий механизм. Если даже последняя итерация зависает, валидаторы, удерживающие большинство доли, могут запросить экстренный блок. Пустой, без транзакций, подписанный Dusk — просто чтобы раунд продолжался. Позже его всё ещё можно заменить блоком с более низкой итерацией, который наберёт обычный кворум.
В whitepaper и issues по rusk это описано достаточно ясно. Но то, что всё ещё не является публичным, — как часто этот путь реально срабатывал в live mainnet. Именно эта частота, ощущается, и есть настоящая проверка, когда сеть находится под длительной нагрузкой.
Задумываюсь, достаточно ли 16, чтобы в большинстве дней до этого вообще не доходить, или же в тихие периоды уже скрывается больше экстренных блоков, чем показывает обозреватель.
Режим экстренного реагирования включается только после 16 неудачных итераций. До этого работает обычная Succinct Attestation с фиксированными тайм-аутами шагов. Кандидат не появляется или не набирает кворум — итерация заканчивается, стартует следующая. Чисто и последовательно.
После 16 подряд неудач тайм-ауты исчезают. Итерации продолжают оставаться открытыми. Выключаются голоса NoCandidate и NoQuorum. По замыслу можно запускать несколько открытых итераций одновременно. Это повышает шансы на то, что хотя бы одна выдаст корректный блок. Компромисс — повышенный риск форков. Когда появляются форки, правило фиксировано: побеждает итерация с наименьшим номером, которой удалось прийти к консенсусу. Всё остальное закрывается, как только блок принят.
Есть ещё один последний подстраховывающий механизм. Если даже последняя итерация зависает, валидаторы, удерживающие большинство доли, могут запросить экстренный блок. Пустой, без транзакций, подписанный Dusk — просто чтобы раунд продолжался. Позже его всё ещё можно заменить блоком с более низкой итерацией, который наберёт обычный кворум.
В whitepaper и issues по rusk это описано достаточно ясно. Но то, что всё ещё не является публичным, — как часто этот путь реально срабатывал в live mainnet. Именно эта частота, ощущается, и есть настоящая проверка, когда сеть находится под длительной нагрузкой.
Задумываюсь, достаточно ли 16, чтобы в большинстве дней до этого вообще не доходить, или же в тихие периоды уже скрывается больше экстренных блоков, чем показывает обозреватель.
