26 марта 2021

Главное в обновлении Florence

Меньше, чем через месяц после принятия обновления Edo, в сети Tezos началось голосование по новому обновлению Florence. Кворум уже достигнут.

Разбираемся с его главными положениями.

Florence: начало

Обновление Florence было опубликовано 4 марта 2021 как совместное предложение от команд Nomadic Labs, Marigold, DaiLambda и Tarides. Авторы Florence следуют принципу «публиковать обновления регулярно, каждые несколько месяцев, чтобы синхронизировать их с циклами ончейн-голосования Tezos».

Во Florence включены исправления некоторых багов, суб-деревья Меркла и ряд небольших усовершенствований, но в качестве главных пунктов обновления выделяются следующие:

  1. Увеличение максимального размера операции с 16кВ до 32кВ. Это позволит увеличить размер смарт-контрактов вдвое, что даст разработчикам возможность создадвать более сложные децентрализованные приложения.
  1. Оптимизация потребления газа. Проблема смарт-контрактов со сложным функционалом в том, что их использование может оказаться экономически невыгодным. Очередная оптимизация газа позволяет сделать более сложные смарт-контракты экономически эффективными.
  1. Порядок исполнения «по глубине». Раньше обращения между контрактами происходили по порядку, называемому «по ширине» (breadth first). Теперь этот порядок изменен на «по глубине» (depth first), что должно облегчить жизнь разработчикам, проектирующим взаимодействие между контрактами.
  1. Замена «тестирования» на «период охлаждения». Раньше на третьем этапе ончейн-голосования (тестирование) разворачивалась тестовая цепь для проверки нормальной работы обновления. По факту никто не использовал ее для этих целей и этот механизм только вызывал значительные операционные проблемы у операторов нод. Во Florence активация тестовой сети в третьем периоде голосования отменяется, и этот период получает название “период охлаждения”. Тестирование теперь будет проводиться в тестовых цепочках, которые не связаны с процессом голосования в мейннете.    
  1. Бейкинговые аккаунты. Делегирование tez бейкеру связано с привязкой делегированных монет к публичному ключу бейкера. Это связано с неудобствами, поскольку бейкеру в этом случае нельзя менять свои публичные ключи. Для решения этой проблемы предложен новый тип аккаунтов — бейкинговые аккаунты. Это смарт-контракты, управляемые с помощью мультиподписи, которые позволяют бейкерам менять свои ключи без перехода на новый адрес. С такими аккаунтами бейкерам больше не нужно будет просить пользователей делегировать свои tez на новый адрес каждый раз, когда бейкеру нужно поменять свой публичный ключ.

На суд коммьюнити были предложены две версии Florence: с бейкинговыми аккаунтами и без них. Обоснованием такой альтернативы стал тот факт, что поддержка нового типа аккаунтов требует изменений в клиентских библиотеках, кошельках и индексерах, и сообщество может посчитать такую работу нецелесообразной в данный момент. Обе версии были вынесены на ончейн-голосование. 

Florence: текущее состояние

Через четыре дня после публикации предложения Florence команда Nomadic Labs в своем блоге призвала отложить внедрение бейкинговых аккаунтов. Тестирование и более детальное изучение этого типа аккаунтов привело к открытию важных и ранее не задокументированных проблем, которые могут повлиять на работу существующих и будущих смарт-контрактов.  

Nomadic Labs подчеркнули, что разработка бейкинговых аккаунтов, которые не влияют на существующие контракты и сохраняют важные инварианты, возможна. Тем не менее внедрение таких аккаунтов является серьезным вызовом, поскольку требует обширного обновления кода и влияет на систему делегирования, а значит на то, как работает блокчейн Tezos. Важный посыл от Nomadic Labs чтобы сообществу не сталкиваться с такими внезапными открытиями в будущем, ему стоит уделять больше времени и внимания процессу проработки TZIP, одним из которых является Baking accounts TZIP.

В результате голосования в первом периоде (предложение) бейкеры выбрали вариант Florence без бейкинговых аккаунтов. Сейчас эта версия Florence находится на второй стадии голосования (исследование). За прогрессом голосования можно следить на Tezos Agora. С полным текущим списком изменений, которые предлагается принять во Florence, можно ознакомиться на странице обновления

Если процесс голосования продолжится в нормальном режиме, то, благодаря Edo, для принятия Florence в общей сложности потребуется не ~92 дня, а всего ~71 день. Мы будем держать вас в курсе прогресса Florence и других новостей Tezos, оставайтесь на связи с нами в соцсетях:

  1. Telegram-канал
  2. Facebook.
  3. Twitter на русском и украинском языках
  4. Twitter на английском языке
  5. YouTube-канал
  6. Instagram
  7. LinkedIn
  8. hub на ForkLog

Этот пост мы изначально опубликовали в блоге Tezos Ukraine.