Neo SPCC releases NeoGo v0.117.0 with compiler improvements, performance optimizations, and custom witness support
Neo SPCC выпустила NeoGo v0.117.0 с улучшениями компилятора, оптимизациями производительности и поддержкой пользовательских свидетельств
Neo SPCC выпустила NeoGo v0.117.0, версию, ориентированную на улучшение опыта разработчиков благодаря улучшениям компилятора, оптимизациям производительности и расширенным возможностям сервиса нотаризации. Обновление полностью совместимо с версией узла C# 3.9.2 и устраняет ряд важных ошибок, повышающих стабильность и корректность работы узла.
Для обновления не требуется повторная синхронизация или изменение конфигурации.
Улучшения компилятора и оптимизации производительности
NeoGo v0.117.0 включает в себя ряд улучшений компилятора, которые расширяют его возможности и удобство использования. Компилятор теперь поддерживает встроенные поля структур (#4160), что расширяет спектр возможностей языка Go, доступных разработчикам смарт-контрактов. Кроме того, исправлена ошибка в обработке операторов switch с не последними вариантами по умолчанию (#4078), что обеспечивает корректное поведение компиляции.
Оптимизации производительности включают в себя уменьшение выделения памяти в методах открытого ключа (#4154), что должно повысить производительность операций, связанных с криптографической проверкой. Фреймворк neotest теперь поддерживает параллельный сбор данных о покрытии (#4101), что позволяет ускорить процессы тестирования для разработчиков.
Поддержка пользовательских свидетельств для сервиса нотаризации
Значительной новой функцией является поддержка сбора пользовательских свидетельств на основе System.Contract.Call сервисом нотаризации (#4155). Это расширяет гибкость сервиса нотаризации в обработке проверки свидетельств, выходя за рамки простой проверки подписи, и позволяет реализовывать более сложные схемы авторизации на основе смарт-контрактов.
Пакет кошелька также был расширен для поддержки подписи с использованием пользовательских скриптов проверки (#4147), что обеспечивает базовую инфраструктуру для этих более сложных схем аутентификации.
Расширения для разбора скриптов виртуальной машины
Пакет scparser получает набор расширений для статического обратного инжиниринга скриптов виртуальной машины (#4122). Эти улучшения поддерживают разбор System.Contract.Call с произвольным количеством вложенных аргументов, что улучшает возможности программного анализа и понимания скриптов виртуальной машины.
Выравнивание формата дампа хранилища
Формат дампа хранилища был изменен для соответствия выводу плагина StorageDumper (#4143), что улучшает совместимость с другими инструментами экосистемы Neo и упрощает процессы экспорта данных.
Экспортируемые API и улучшения для нативных контрактов
Конструкторы нативных контрактов по умолчанию теперь экспортируются (#4145), а также реализация нативного контракта NeoToken по умолчанию (#4146). Эти изменения обеспечивают лучший доступ к базовым компонентам протокола для приложений, которым необходимо тесно взаимодействовать с нативными контрактами.
Исправления ошибок
В этой версии исправлено несколько ошибок:
- Устранена некорректная последовательность обхода MPT, которая приводила к неверным результатам
findstatesиfindstoragehistoric(#4151). - Добавлена проверка параметров
CALLT(#4165). - Исправлен некорректный подсчет ссылок для неиспользуемых элементов (#4152, #4153).
- Исправлен неправильный сбор параметризованных свидетельств контракта (#4157).
Полный список изменений и файлы релиза доступны по ссылке: