Cardano предлагает удалить проверку области видимости в Plutus

CIP-0205 удалит отдельную проверку, выполняемую перед исполнением скрипта, что сократит работу по валидации благодаря изменению, которое требует новой версии языка и хардфорка.

By SongMarketCap

Updated:

Cardano News - Cardano предлагает удалить проверку области видимости в Plutus

Предложение Cardano CIP-0205 устранило бы один из шагов подготовки скриптов Plutus к исполнению. Автор Jacco Krijnen предлагает обрабатывать ошибки несвязанных переменных во время исполнения вместо предварительной проверки всей программы. Предложение, поданное 25 сентября, остается на рассмотрении.

Затраты на подготовку скриптов Plutus

Перед исполнением скрипта узел проверяет, что его переменные корректно определены внутри программы. Эта процедура известна как проверка области видимости и выполняется во второй фазе валидации транзакции.

Ранние бенчмарки, на которые ссылается предложение, показали, что эта проверка занимала примерно 20% времени подготовки скрипта, включая декодирование и проверку версии. В бенчмарках полной валидации она составляла около 3% общего времени валидации. Эти цифры отражают долю времени обработки, приходящуюся на проверку, в рамках указанных тестовых нагрузок.

Удаление этой проверки сократит объем вычислений для соответствующих скриптов. Любое последующее снижение комиссий за транзакции будет зависеть от дальнейшей корректировки параметров комиссий, говорится в предложении.

Как Plutus будет обрабатывать ошибки переменных

Plutus Core это язык, используемый для исполнения скриптов смарт контрактов на Cardano. Его механизм исполнения, CEK machine, уже обрабатывает попытки использовать переменные без связанного значения.

В обсуждении рецензирования предложения разработчик Seungheon Oh отметил, что CEK не зависит от предварительной проверки области видимости. Попытка вычислить несвязанную переменную приводит к обычному сбою исполнения.

Согласно предлагаемым правилам программа может успешно выполниться, если несвязанная переменная присутствует только в коде, который никогда не исполняется. Программы с корректной областью видимости сохранят те же результаты исполнения.

Как отмечается в предложении, языки разработки включая Aiken, Plinth и Plutarch уже обеспечивают область видимости переменных с помощью своих проверок типов до того, как скрипты попадают в блокчейн.

Новая версия языка и хардфорк

Черновик связывает изменение с версией языка Plutus Core 1.2.0, что потребует хардфорка. Реализация будет включать обновления спецификации, кода исполнения, формальной модели и тестов на соответствие.

Предложение получило номер CIP-0205 29 сентября. Редактор CIP Robert Phair запросил более широкое распространение среди рабочих групп перед продолжением рецензирования, сославшись на масштаб изменения.

Согласно текущему черновику существующие скрипты, использующие версии языка 1.0.0 и 1.1.0, сохранят свое поведение. После активации новые скрипты, указывающие версию 1.2.0, смогут исполняться без отдельной предварительной проверки области видимости.