НовостиКриптовалютыКлиент Neo X neox-rs v2.7.0 объединил 185 апстрим-коммитов Reth и устранил девять уязвимостей

Клиент Neo X neox-rs v2.7.0 объединил 185 апстрим-коммитов Reth и устранил девять уязвимостей

Автор: CryptoNewsNet·

Ключевые выводы

  • •neox-rs v2.7.0 объединяет 185 коммитов из апстрим-версии Reth 2.7.0, при этом номер версии изменён с v2.5.2 сразу на v2.7.0 в соответствии с соглашением о нумерации Reth.
  • •Девять уязвимостей cargo audit устранены обновлением зависимостей до quinn-proto 0.11.18 и rustls 0.23.46; известных уязвимостей сейчас не зафиксировано.
  • •Четыре изменения повысили надёжность жизненного цикла DKG-валидатора, включая сохранение подготовок DKG при продвижении канонической головы и возврат валидаторов в состояние Ready после отклонённых операций Submit.
  • •Релиз-кандидат прошёл G8-гейт валидации на 1402 блока, подтвердивший прогрессию DKG-раундов, без реорганизаций и переходящих ошибок RPC; все 427 тестов Neo X пройдены.
  • •Полная синхронизация MainNet с генезисом на чистом datadir после релиза продолжается, хотя оба её предварительных условия — связность с пирами и получение заголовков — подтверждены как работающие.
Клиент Neo X neox-rs v2.7.0 объединил 185 апстрим-коммитов Reth и устранил девять уязвимостей

R3E Network выпустила neox-rs v2.7.0 — новую версию полноузлового клиента Neo X на языке Rust, которая объединяет 185 коммитов из апстрим-версии Reth 2.7.0, устраняет девять уязвимостей cargo audit и повышает надёжность жизненного цикла валидатора распределённой генерации ключей (DKG).

Джимми Ляо, основной разработчик Neo и основатель R3E Network, объявил о выходе релиза 20 октября.

С момента дебюта в июле клиент прошёл три предыдущих выпуска: начальный пре-релиз, первую стабильную версию с исправлениями консенсуса и релиз с устранением результатов аудита, закрывший 11 находок. Номер версии изменился с v2.5.2 сразу на v2.7.0, чтобы соответствовать нумерации апстрима Reth — такой синхронный подход позволяет операторам узлов отследить, от какого именно апстрим-базиса унаследована каждая сборка neox-rs.

Объединение с апстримом Reth 2.7

Обновление приводит neox-rs к кодовой базе Reth 2.7.0, включая 185 коммитов от предыдущего базиса и сохраняя специфичные для Neo X слои протокола: консенсус dBFT, пороговое шифрование DKG, обработку Anti-MEV-конвертов и пользовательские RPC-эндпоинты. Reth — это исполняющий клиент для Ethereum на Rust, разработанный Paradigm, и регулярные объединения такого рода позволяют производному клиенту перенимать исправления и улучшения своей основы по её развития, а не отдаляться от неё.

Наряду с объединением оракул Neo X Geth был синхронизирован с последним базисом. Файлы генезиса MainNet и TestNet проверены на соответствие каноническим байтам, что сохраняет хеши генезисных блоков. Релиз включает бинарные файлы для Linux и Windows x86_64, каждый из которых опубликован с контрольной суммой SHA-256; артефакты aarch64 для этого релиза не собирались.

Устранение уязвимостей

Девять уязвимостей cargo audit устранены обновлением зависимостей до quinn-proto 0.11.18 и rustls 0.23.46; по данным проекта, известных уязвимостей cargo audit сейчас не зафиксировано. Cargo audit сверяет дерево зависимостей Rust-проекта с базой опубликованных рекомендаций, поэтому отчёт без находок означает, что в текущем наборе зависимостей не осталось флагов известных уязвимостей.

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

Повышение надёжности жизненного цикла DKG

Четыре изменения направлены на надёжность жизненного цикла DKG-валидатора и устраняют режимы отказов, наблюдавшиеся во время продолжительных прогонов валидации:

  • Подготовки DKG теперь переживают продвижение канонической головы, что предотвращает ранее возможные «зависшие» состояния.
  • Отклонённые операции Submit возвращают валидатор в состояние Ready вместо того, чтобы оставлять подготовленную задачу «сиротой».
  • Сопоставление долей теперь использует вместе раунд и агрегированный глобальный ключ, что исключает ложные сбои несовпадения эпох при обычном движении блоков.
  • Доли подписантов больше не переустанавливаются на каждом блоке; система хеширует урегулированные канонические входы вместо канонической головы.

DKG — это процедура пороговой криптографии, при которой набор валидаторов совместно создаёт ключевой материал так, что ни один участник не владеет полным ключом; это один из специфичных для Neo X слоёв, которые предстояло сохранить при объединении. Эти исправления закрывают краевые случаи, в которых состояние DKG могло стать несогласованным на границах блоков, — сценарии, проявляющиеся при продолжительной многораундовой валидации.

Валидация и тестирование

Релиз-кандидат прошёл валидацию через G8-гейт протяжён 1402 блока, охватывающий высоты от 2404 до 3805. Гейт подтвердил прогрессию DKG-раундов с первого по второй, сохранил идентичное 128-байтовое агрегированное обязательство на всём протяжении и зафиксировал ноль реорганизаций и ноль переходящих ошибок RPC.

Расшифровка конвертов проверена в сценариях как текущей, так и межэпохальной смены: сохранённый конверт первого раунда успешно расшифрован и включён в блок после перехода цепи на второй раунд. Тестирование сбоев включало задержки прувера на 60 секунд, принудительные перезапуски процесса и замену долей при отсутствии чеков.

Все 427 тестов Neo X пройдены, проверки clippy и форматирования чисты. Также подтверждена совместимость datadir: каталог данных v2.7.0 и хранилище ключей DKG успешно открылись под v2.5.2, а релизный бинарник загрузил существующий архивный datadir MainNet — проверки, значимые для операторов, поскольку они показывают, что существующие данные цепи и хранилища ключей DKG остаются пригодными при смене версий.

Перспективы

Полная синхронизация MainNet с генезисом на чистом datadir после релиза всё ещё продолжается, хотя подключение к пирам и конвейер заголовков проверены. Эта синхронизация — главный ближайший рубеж: оба её предварительных условия — связность с пирами и получение заголовков — уже подтверждены как работающие.

neox-rs продолжает служить независимой реализацией протокола Neo X на Rust, обеспечивая разнообразие клиентов наряду с клиентом Neo X Geth на Go, который поддерживает Bane Labs. Разнообразие клиентов — использование независимых реализаций одного протокола — является давно устоявшейся практикой устойчивости блокчейн-сетей, поскольку дефект, ограниченный одной кодовой базой, автоматически не затрагивает другую.

Страница релиза доступна по адресу: https://github.com/R3E-Network/neox-rs/releases/tag/neox-v2.7.0