Cortina: линеаризация X-Chain

stsoen
AVA Russia
Published in
6 min readMar 24, 2023

В понедельник, 27 марта 2023, будет опубликован предварительный код обновления Avalanche Cortina. Это обновление будет активировано в 11:00 ET/15:00 UTC/18:00 GMT+3/17:00 GMT+2 в четверг, 30 марта 2023 г. Обратите внимание, что этот предварительный код будет работать ТОЛЬКО в тестнете Fuji. Если вы запустите код в основной сети, он завершится при запуске.

В ожидании успешного обновления Cortina на Fuji будет объявлено время активации в мейннете Avalanche и будет опубликован официальный выпуск Cortina AvalancheGo (v1.10.0).

Обновление Cortina включает оптимизацию протокола, несовместимую с версиями AvalancheGo < v1.10.0. Если вы запускаете ноду в тестнете Fuji, вы должны обновить свое программное обеспечение до AvalancheGo >= v1.10.0 до времени активации на Fuji. Если вы являетесь оператором узла основной сети, никаких действий не требуется, пока не будет опубликован официальный код AvalancheGo@v1.10.0.

Линеаризация X-chain

X-Chain использует Avalanche Consensus, протокол без лидера на основе DAG, который позволяет одновременно параллельно обрабатывать неконфликтующие UTXO с высокой пропускной способностью без установления общего порядка действий. C-Chain, P-Chain и все подсети Avalanche, с другой стороны, используют Snowman++ , основанный на технологии блокчейна, полностью упорядоченный протокол, который обеспечивает бесконфликтное создание блоков без временных интервалов для тысяч участников.

Существующая семантика X-Chain препятствует или значительно усложняет интеграцию Avalanche Warp Messaging (AWM), добавление сложных транзакций X-Chain, включение синхронизации состояний и широкую поддержку обмена. Для интеграции с AWM требуется Snowman++ для проверки мультиподписи BLS входящих сообщений из других подсетей Avalanche. Это ограничение означает, что X-Chain в его нынешнем виде не может взаимодействовать с подсетями и что консенсус на основе DAG, который он использует, не может быть широко применен к подсетям, которые в подавляющем большинстве случаев хотят беспрепятственно взаимодействовать с другими подсетями. Частичное упорядочение в X-Chain означает, что во время проверки вершины нет канонического состояния (вершина — это контейнер для пакетной обработки транзакций в X-Chain, сродни блоку в блокчейне) и что вершины по замыслу обрабатываются в разном порядке на разных нодах. Без канонического состояния взаимодействие с общими объектами в цепочке, такими как биржи, а синхронизация состояния с вершиной сети (чтобы избежать повторной обработки всей исторической активности) становится нетривиальной и подверженной ошибкам проблемой, которая отнимает у сообщества время, которое могло бы тратить на дальнейшее развитие подсетей. Наконец, недетерминированное упорядочение ончейн-активности сильно препятствует способности многих устаревших бирж интегрироваться с X-Chain в ее нынешнем виде, поскольку большинство устаревших бирж предназначены для полностью упорядоченных блокчейнов, таких как Биткойн и Эфириум, и им трудно согласовать балансы в разные моменты времени в частично упорядоченном блокчейне.

Cortina переносит X-Chain для запуска консенсуса Snowman++ и работает как полностью упорядоченный блокчейн в процессе, называемом «линеаризацией». Когда начнется линеаризация, больше нельзя будет добавлять дополнительные вершины в DAG X-Chain. Конечное состояние DAG, теперь неизменяемое, затем будет использоваться в качестве исходного состояния линеаризованной X-Chain на базе Snowman++. Формат транзакции, используемый в X-Chain и API для отправки транзакций, получения статуса транзакции и получения баланса, не изменится во время этого процесса, поэтому большинству кошельков не потребуется вносить какие-либо изменения для поддержки этого события линеаризации. Тем не менее, эксплорерам, поддерживающим X-Chain, потребуется перейти на технологию анализа блоков в X-Chain вместо анализа вершин X-Chain, которые теперь очень похожи на блоки P-Chain. Линеаризация является плавной и не должна приводить к простоям в P-Chain, C-Chain или любых подсетях. Однако сеть X-Chain на короткое время будет недоступна.

Как упоминалось выше, эта миграция прокладывает путь для интеграции обмена сообщениями Avalanche Warp, новых типов транзакций, которые изменяют общее состояние X-Chain, обеспечивает прямой путь для включения синхронизации состояния и позволяет биржам поддерживать X-Chain, который будет содержать множество токенов, используемых в эластичных подсетях. Хотя можно ввести полный порядок в DAG, для этого в X-Chain потребовалось бы переписать существующий механизм консенсуса Avalanche, и это было бы бесполезно для каких-либо подсетей. Переход на единый механизм консенсуса во всей сети Avalanche, который уменьшает размер доверенной вычислительной базы и увеличивает эффективность существующих усилий в области исследований и разработок, позволит ускорить разработку и более широко применимые инновации.

Мы подготовили руководство по миграции для интеграторов, в котором перечислены все изменения в API AvalancheGo, необходимые для поддержки Cortina.

Вознаграждение пакетного делегатора

С момента запуска сети Avalanche у валидаторов была возможность взимать плату за обслуживание со всех, кто делегирует полномочия их узлу. Если валидатор находится в сети в течение 80% периода делегирования, он получает процент от вознаграждения (комиссия), заработанного делегатор. P-Chain распределяет эту плату как отдельный UTXO за период делегирования.

Поскольку количество делегаторов в сети значительно увеличилось за последние несколько месяцев (до ~ 80 тыс. по состоянию на 20.03.23), количество UTXO, которые валидатор может получить в качестве вознаграждения, также значительно увеличилось. Это часто означает, что валидатор в конечном итоге будет иметь тысячи небольших UTXO, которые должны быть агрегированы, чтобы их можно было использовать для чего угодно. Отслеживание тысяч UTXO в обозревателях и кошельках также усложняет задачу обеспечения отличного UX.

Cortina изменяет способ распределения этих сборов за делегирование для всех валидаторов, которые начинают делать стейкинг после активации Cortina (ранее стейкинговые валидаторы не увидят изменений). Вместо отправки комиссии UTXO за каждый успешный период делегирования сборы теперь группируются в течение всего периода проверки узла и распределяются, когда он не размещён.

Увеличенный лимит газа в C-chain

Начиная с фазы 1 Apricot, лимит газа в блоке C-Chain был установлен на 8M газа. Блоки в C-Chain производятся каждые ~ 2 секунды, поэтому этот параметр ограничивает максимальное количество газа, которое может потребляться каждые 10 секунд, до ~ 40 миллионов газа. Однако целевое значение газа для каждого скользящего 10-секундного окна установлено на 15 млн газа. Это означает, что при использовании более 15 миллионов газа в 10-секундном окне цена на газ будет расти (и снижаться, когда используется менее 15 миллионов). Подробнее о том, как работают динамические комиссии в C-Chain, можно прочитать здесь.

Помимо ограничения количества газа, которое может быть потреблено в некотором окне при любой цене на газ, лимит газа на блок также ограничивает сложность транзакций, которые могут быть выполнены в одном блоке. Поскольку разные разработчики Avalanche начали развертывать более сложные dApps, они заявили, что 8 миллионов газа на блок недостаточно для их варианта использования. Cortina увеличивает лимит газа блока C-Chain до 15 миллионов газа. Чтобы избежать увеличения количества ресурсов, необходимых для проверки основной сети, цель по газу останется неизменной и составит 15 млн газа за 10 секунд.

Часто задаваемые вопросы

Как мне обновить мою ноду?
Процесс обновления до AvalancheGo v1.10.0 такой же, как и для любого другого обновления. Если вы собираете из исходного кода, запустите скрипт сборки, как и раньше. Если вы используете предварительно скомпилированные двоичные файлы, просто запустите их, как и раньше. Если вы используете сценарий установщика, то тут тоже ничего не изменилось, используйте его, как и раньше.

После запуска AvalancheGo v1.10.0 больше ничего делать не нужно. Более подробную информацию об обновлении узла можно найти здесь . Напоминаем, что лучше всего иметь резервную копию вашего ключа/сертификата для стейкинга.

Должен ли я обновлять свою ноду?
Если вы не обновите свой валидатор до версии 1.10.0 до даты активации основной сети Avalanche (которая будет опубликована в ближайшие дни), ваш узел будет помечен как отключенный, а другие узлы будут сообщать, что ваш узел имеет более низкое время аптайма, что может поставить под угрозу ваши вознаграждения за ставки.

Изменились ли требования к железу?
Нет.

Снизит ли обновление время безотказной работы моего валидатора?
Нет. Напоминаем, что вы можете проверить расчетное время безотказной работы вашего валидатора с помощью вызова API info.uptime :

Я думаю, что что-то пошло не так. Что я должен делать?
Для начала мы рекомендуем убедиться, что вы внимательно прочитали документацию и ознакомились с часто задаваемыми вопросами . Если вы не можете найти ответ на свой вопрос, перейдите на наш сервер Discord и попробуйте поискать его там. Если об этом еще не спрашивали, пожалуйста, опубликуйте его в соответствующем канале.

--

--