В ночь с 3 на 4 декабря Tezos перешел на протокол Hangzhou, а цена Bitcoin упала на 20%. Совпадение? Не думаю! А если серьезно, то Hangzhou принес в Tezos новые фичи: timelock-примитив, глобальные константы, кэш на уровне протокола и переработанные view-функции. Давайте разбираться, можно их уже использовать или нет.
Мы прочли всю доступную документацию и проверили все, до чего смогли дотянуться.
Кэш — самое заметное изменение
Ноды Tezos теперь сохраняют последние вызванные смарт-контракты в оперативной памяти, в так называемом «горячем хранилище». При повторном выполнении контракта узел не подгружает данные из жесткого диска, и соответственно расходует меньше газа.
Мы проверили эффективность кэширования на QuipuSwap: сравнили комиссию на обмен в популярной паре tez/kUSD и не самой популярной tez/EASY. Разница — 37% в пользу популярного контракта.
Timelock — пока только для разработчиков
Timelock — это транзакции, которые остаются скрытыми до определенного момента. Скрытые транзакции не позволяют флешботам забегать вперед пользователей и добывать прибыль из децентрализованных бирж.
Чтобы использовать Timelock сейчас, нужно самому написать смарт-контракт. Разработчики Ligo и SmartPy уже включили Timelock-примитивы и типы данных в новые версии языков и документации.
Возможно, скоро появятся Timelock-приложения для обычных пользователей, но пока таких нет.
Новые view — быстрее и безопаснее
View — это функция в Michelson, с помощью которой один контракт может получить данные из хранилища другого контракта. В старой версии view контракт-инициатор вызывал контракт-ответчик, чтобы тот выполнил view-функцию и вернул нужные данные. Это не совсем безопасно: у инициатора нет гарантий, что ответчик не подменил данные или они не изменились с момента вызова.
Новые view работают по-другому: инициатор самостоятельно выполняет view-функцию и сам считывает данные из хранилища ответчика. К тому же view — синхронная функция, которую контракт выполняет раньше других. С помощью этого обновления разработчики смогут ускорить взаимодействие между контрактами.
Глобальные константы — функционал есть, констант пока нет
Разработчики добавили в протокол глобальные константы — таблицу с хешами, которые привязаны к значениям Micheline. Разработчик может импортировать в смарт-контракт значение любой константы по ее хешу.
Юз-кейс глобальных констант — импорт проверенных лямбда-функций и объемных типов данных для экономии места в коде и избежания ошибок при самостоятельном написании.
Мы проверили таблицу текущих констант с помощью API TzStats, но там пока ничего нет.
Пустые квадратные скобки во второй строке означают, что сервер вернул пустую таблицу.
Итоги Hangzhou
Hangzhou дало разработчикам новые инструменты, но они еще не успели их применить. Это нормально — с активации обновления прошло всего несколько дней. Зато кэш уже работает и снижает комиссии.
В этом декабре разработчики протокола обещали анонсировать пропозицию следующего обновления — Idiazabal. Будем ждать новых фич!
Подписывайтесь на социальные сети Tezos Ukraine, чтобы ничего не пропустить:
- Telegram-канал
- Facebook.
- Twitter на русском и украинском языках
- Twitter на английском языке
- YouTube-канал
- hub на ForkLog
Изначально мы опубликовали этот материал в блоге Tezos Ukraine.