Neo SPCC has published NeoGo v0.117.0, a maintenance release that focuses on improving the developer experience with compiler improvements, performance optimizations, and expanded notary service capabilities. The update is fully compatible with C# node version 3.9.2 and fixes a number of important bugs that improve the stability and correctness of node operations.
The upgrade does not require any resynchronization or configuration change.
Compiler improvements and performance optimizations
NeoGo v0.117.0 brings several improvements to the compiler that increase its capabilities and usability. The compiler now supports embedded struct fields (#4160), expanding the range of Go language features available to smart contract developers. In addition, a bug was fixed in the handling of switch statements with non-last default cases (#4078), ensuring correct compilation behavior.
Performance optimizations include reduced allocations in public key methods (#4154), which should improve throughput in operations involving cryptographic verification. The neotest framework now supports parallel coverage collection (#4101), enabling faster testing workflows for developers.
Customized witness support for the notary service
An important new feature is support for customization System.Contract.Call-based witness collection by the notary (#4155). This increases the notary service’s flexibility in handling witness verification beyond simple signature checks, enabling more complex contract-based authorization schemes.
The wallet package has also been extended to support signing with custom authentication scripts (#4147), providing the underlying infrastructure for these more advanced authentication patterns.
Extensions for parsing VM scripts
The scparser package receives a set of extensions for reverse engineering static VM scripts (#4122). These improvements support parsing System.Contract.Call with arbitrary numbers of nested arguments, improving the ability to programmatically analyze and understand VM scripts.
Save dump format alignment
The storage dump format has been adjusted to follow the output of the StorageDumper plugin (#4143), improving compatibility with other Neo ecosystem tools and simplifying data export workflows.
Exported APIs and native contract improvements
Default native contract constructors are now exported (#4145), as well as the default native NeoToken contract implementation (#4146). These changes provide better access to underlying protocol components for applications that need to work closely with native contracts.
Bug fixes
Several bugs have been fixed in this release:
- Invalid MPT traversal sequence leading to incorrect discovery statuses and historical results for discovery storage has been fixed (#4151)
- Added missing callt parameter verification (#4165)
- Invalid reference count for elements without reference has been corrected (#4152, #4153)
- Fixed incorrectly parameterized contract witness collection (#4157)
The full changelog and release notes can be found at:
https://github.com/nspcc-dev/neo-go/releases/tag/v0.117.0
