Команда Mainsail активно работает над доработками и улучшениями Mainsail EVM. В статье рассматриваются основные изменения, включая новую структуру блоков и обновления средств разработки.
Новая структура блоков и улучшение сериализации
Основным изменением стало добавление поля **LogsBloom** в блоки. Эта 256-байтовая структура данных позволяет эффективно проверять, может ли блок содержать определенные записи журналов, без необходимости их индивидуального просмотра, что значительно ускоряет поиск. Также была уточнена система расчета **блокового газа**, теперь учитывается не общий лимит газа транзакций, а фактически использованный газ, что обеспечивает более точное представление о потреблении блока. Размеры транзакций теперь хранятся с использованием 4-байтового uint32 вместо 2-байтового, что позволяет подготовить систему к увеличению размеров блоков и лимитов газа.
Обновления зависимостей и инструментов
Практически все зависимости проекта были обновлены до последних стабильных версий. Важно, что **версии пакетов** теперь фиксируются в производственных сборках для обеспечения стабильности. Основные инструменты разработки, такие как **TypeScript** и **ESLint**, также были обновлены. Корректировки кода произведены для соответствия новым правилам и изменениям. Сторона Rust получила обновление до **2024 Edition**, а все зависимости снова обновлены.
Повышение совместимости и упрощение работы с EVM
Система теперь поддерживает **множественные ожидающие коммиты** на одной и той же высоте блока, что особенно полезно, если блок не достиг консенсуса с первого раза. Мы также обеспечиваем плавные пути миграции, добавляя **поддержку вторых подписей**. Кроме того, планируется интеграция данных из существующей сети ARK, что позволит избежать конфликтов при создании генезис-блока.
В ближайшие несколько недель команда Mainsail завершит оставшиеся функции для запуска новой сети, взаимодействующей с существующим тестнета. Ожидается, что всё больше разработчиков и участников смогут присоединиться к тестированной сети Mainsail EVM.