Транзакция, которую Dusk может повторно выполнить, должна быть допустима и в режиме реального времени.

Эта граница строже.

Я предположил, что формат транзакции — это одно правило: успешно его декодировать, и сеть будет довольна.

Dusk пошёл по другому пути.

Текущая реализация Rusk разделяет вход транзакций в реальном времени и канонические данные в реестре. Обёртки Aegis и Boreas могут поступать через реальный приём и нормализоваться в формат активного входа, затем пройти через `CanonicalTransaction` и `LedgerTransaction`, прежде чем локально запечатанная транзакция будет канонизирована для фиксации в блоке. На этапе консенсуса по-прежнему проверяется, что кодировка реестра соответствует каноническому формату, требуемому на этой высоте блока.

И странная часть — что происходит со старыми форматами.

Дефолтная активация Aegis в мейннете Dusk — блок **3,590,904**. Исторические форматы транзакций остаются доступными для декодирования при повторе реестра, но те же исторические форматы отклоняются при приёме в live mempool, как только формат больше не разрешён там.

Так что представьте старую транзакцию из периода до этой границы, которая лежит в истории цепочки.

Dusk всё ещё может понимать её при повторном воспроизведении реестра.

Но попробуйте протолкнуть этот исторический формат через live admission после того, как протокол уже перешёл вперёд — и он будет отклонён.

Узел может сохранить прошлое, не позволяя прошлому определять то, что станет новыми данными реестра.

Сколько совместимости транзакций Dusk обусловлено сохранением старых форматов для истории цепочки, а сколько её согласованность получает за счёт отказа возвращать эти форматы в путь реального времени?

@Dusk $DUSK #dusk