NeoSPCC has released NeoGo v0.98.2, its final iteration before the upcoming Neo v3.2 release. The update features a new lightweight mode, which limits the amount of block data stored by a node, a generator for Go contract bindings that uses contract manifest files, and full support for Windows.
Node runners will be able to use the KeepOnlyLatestState option to enable garbage collection of stale MPT data, making older blocks inaccessible but reducing storage requirements in the process. Similarly, the team implemented a new batching mechanism for stale transfer data, further reducing disk usage.
Other node-related changes include a customizable service fee for the Notary service, safe multithreading for RPC clients, and support for witness scope Rules in signers passed to RPC methods.
For developers, v0.98.2 includes compiler improvements and a generator that produces Go contract bindings using manifest files, making it easy to interact with smart contracts. The update also drops support for Go 1.15, adding 1.18 in its place.
Several bug fixes were committed in the update, mostly found in the RPC and VM implementations. Of particular note are two changes to avoid out-of-memory errors that could be triggered using specially-crafted invoke scripts or JSONPath filters in oracle requests, mirroring similar errors in the reference Neo implementation.
The new NeoGo release and its full changelog can be found at the link below: https://github.com/nspcc-dev/neo-go/releases/tag/v0.98.2