Реализация узла Neo N3 от R3E Network, основанная на Rust, neo-rs, достигла полного паритета протокола со спецификацией Neo N3 в версии 0.16.0. Эта веха охватывает все 11 собственных контрактов, все восемь хардфорков через Huyao и все 41 системный вызов, проверенные с точными ценами на процессоры и разрешениями. Одновременно с выпуском узла R3E опубликовала NeoRust v3.0.0, обновление SDK, ориентированное на корректность, с тремя критическими изменениями API, и Neo Signer RS v0.2.0, контролируемую службу подписи советов, предназначенную для аппаратно-изолированных сред.
Релизы, опубликованные в период с 28 августа по 4 сентября, продвигают более широкие усилия R3E по созданию полной цепочки инструментов на основе Rust для Neo, охватывающей neo-rs для инфраструктуры узлов, NeoRust для разработки приложений и выделенную инфраструктуру подписи для операций совета.
neo-rs v0.16.0: этап готовности к производству
Версия v0.16.0 представляет собой первый случай, когда neo-rs прошел полный набор тестов с нулевым сбоем по всей поверхности протокола Neo N3. NNT ранее рассматривала этот проект как реализацию Rust узла блокчейна Neo N3 и неотъемлемый компонент инициативы R3E по внедрению Rust в экосистему Neo.
Согласование протоколов теперь распространяется на все 11 стандартных собственных контрактов, ContractManagspanent, NeoToken, GasToken, PolicyContract, RoleManagspanent, OracleContract, Notary, TreasuryContract, LedgerContract, CryptoLib и StdLib, при этом строгая проверка применяется во всех восьми хардфорках Neo N3 от Aspidochelone до Huyao.
В выпуске также формализуется обработка консенсуса dBFT 2.0, реализация первичного начального таймера, монотонная обработка ChangeView, изоляция фиксации вне просмотра и дедупликация трех наборов в сообщениях восстановления. Для проверки на уровне сети был добавлен комплексный набор тестов P2P с быстрой синхронизацией.
Среди заметных исправлений — миграция меток времени хардфорка Faun для поведения PolicyContract.BlockAccount, семантика поиска префиксов хранилища, согласованная с RocksDB, а также унифицированный анализ контрактов с несколькими подписями с проверкой кривой Secp256r1. Образ контейнера доступен по адресу ghcr.io/r3e-network/neo-rs:v0.16.0.
В этом выпуске neo-rs присоединяется к neo-cli и neo-go в качестве промышленной реализации узла Neo N3, способствуя разнообразию клиентов в сети.
NeoRust v3.0.0: корректность, усиление безопасности
В выпуске NeoRust SDK v3.0.0 приоритет отдается правильности и безопасности над новыми функциями, а также представлены три критических изменения API, которые отражают точку зрелости проекта. NNT рассказала о предыдущем обновлении SDK, повышающем безопасность производства, версии 2.1.0, вышедшем в июле.
Среди наиболее значительных исправлений точность оценки газа была скорректирована примерно на 1e8 за счет точного преобразования десятичных единиц в базовые единицы, несоответствие, которое могло привести к сбою транзакций или переплате за выполнение. Запросы баланса больше не терпят неудачу на стандартных узлах, если адрес содержит сторонние токены NEP-17, поскольку SDK теперь извлекает метаданные токена отдельно. preview_state_changes метод теперь декодирует реальные адреса и суммы из состояния уведомления, а не создает предварительный просмотр перевода, и wait_for_confirmation правильно возвращает ошибку VM FAULT вместо того, чтобы рассматривать ее как успех.
Улучшения безопасности включают файлы кошелька и резервных копий, созданные с разрешениями 0600 в Unix, ограничивающие доступ владельцу файла. Промежуточные WIF HD-кошелька теперь обнуляются после создания учетной записи, а мнемоническая энтропия очищается из памяти при удалении.
Три критических изменения влияют DerivationPath::new_neoкоторый теперь возвращает Result введите вместо того, чтобы рисковать паникой для индексов выше 2 ^ 31; EventDataкоторый получил Disconnected вариант для исчерпанных попыток переподключения; и EcosystspanClientкоторый теперь использует десятичные единицы измерения в Neo X, а не необработанные значения Wei.
Neo Signer RS v0.2.0: контролируемое подписание совета
Neo Signer RS v0.2.0 превращает инструмент подписи совета R3E в контролируемый, безопасный для перезапуска сервис с дополнительным ежедневным $ГАЗ агрегация. Услуга предназначена для развертывания в аппаратно-изолированных средах и поддерживает анклавы Intel SGX и AWS Nitro.
В выпуске представлена двойная независимая проверка поставщика RPC, требующая баланса, высоты, результата виртуальной машины и соглашения о комиссии от двух отдельных узлов Neo, прежде чем приступить к экономическим операциям. Журнал защиты от двусмысленности на диске предотвращает дублирование транзакций, в том числе при перезапусках, а аттестация получателя KMS привязывает разблокировку кошелька к развернутому файлу образа анклава Nitro.
Джимми Ляо, основной разработчик R3E Network, описал этот выпуск как предлагающий «отказоустойчивую подпись Neo N3 для анклавов SGX и AWS Nitro: аппаратно-изолированные ключи, аттестацию KMS с измеренным EIF, надежную защиту от двусмысленности и двойной RPC. $ГАЗ подметать чеки».
Заметное исправление исправляет получение идентификатора транзакции Neo N3, в котором использовался двойной SHA256 вместо правильного одинарного SHA256, что приводило к сбоям при поиске широковещательного подтверждения. В выпуске также происходит миграция из неограниченного журнала в памяти в журнал RedB с кэшем 16 МБ, при этом во время миграции проверено 869 417 устаревших записей.
Подписание консенсуса остается доступным, даже если экономическое подписание отключено, гарантируя, что участие совета не будет нарушено $ГАЗ функция агрегирования.
Примечания к выпуску для каждого проекта можно найти по ссылкам ниже:
