Neo SPCC has published NeoGo v0.117.0, a maintenance release that focuses on improving the developer experience with compiler enhancements, performance optimizations, and expanded notary service capabilities. The update is fully compatible with C# node version 3.9.2 and addresses a number of important bugs that improve the stability and correctness of node operations.
No resync or configuration change is required on upgrade.
Compiler improvements and performance optimizations
NeoGo v0.117.0 brings several improvements to the compiler that enhance its capabilities and usability. The compiler now supports embedded struct fields (#4160), expanding the range of Go language features available to smart contract developers. Additionally, a bug in switch statement handling with non-last default cases has been fixed (#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.
Custom witness support for notary service
A significant new feature is support for custom System.Contract.Call-based witness collection by the notary service (#4155). This extends the notary service’s flexibility in handling witness verification beyond simple signature checks, allowing more complex contract-based authorization schemes.
The wallet package has also been extended to support signing with custom verification scripts (#4147), providing the underlying infrastructure for these more sophisticated authentication patterns.
VM script parsing extensions
The scparser package receives a set of extensions for static VM script reverse-engineering (#4122). These enhancements support parsing System.Contract.Call with arbitrary numbers of nested arguments, improving the ability to analyze and understand VM scripts programmatically.
Storage dump format alignment
The storage dump format has been adjusted to follow the StorageDumper plugin output (#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 is 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 order that led to incorrect findstates and findstoragehistoric results has been resolved (#4151)
- Missing CALLT parameters verification has been added (#4165)
- Invalid reference counting for unreferenced elements has been corrected (#4152, #4153)
- Improper parametrized contract witness collection has been fixed (#4157)
The full changelog and release assets can be found at:
https://github.com/nspcc-dev/neo-go/releases/tag/v0.117.0
neonewstoday.com