Neo SPCC has published a new version of NeoGo for N3. The update features a wide range of enhancements and full compatibility with the latest version of the core C# implementation, Neo v3.0.3, now used for the N3 MainNet and TestNet. Documentation updates also accompany the release, including a breakdown of the notary subsystem that is currently unique to the Go implementation.

Key updates

As with most NeoGo updates, a considerable portion of the development effort was spent staying in line with the most recent C# node changes. New features include the two new state commands for RPC, prevention of native contracts being blocked, the addition of a source URL field in NEF files, amongst others.

Other useful additions include fees being displayed before transactions are relayed in the CLI, and the ability to test invoke a partial multisig transaction to see its effects before signing. The release also includes an experimental extension for P2P state exchange, which can be used for private networks and includes additional P2P optimizations.

The team also issued its final notice for BadgerDB and Redis support, which are planned for removal in the next release should no active users object.

Bug fixes

v0.97.3 corrects a number of bugs in the expected behavior of the Go node when compared to the reference client. Examples include the removal of null values in RPC responses, replaced with empty lists, in addition to differences in JSON escaping, serialization, and deserialization.

Other solved bugs include those inherited from the C# client, such as the handling of empty leaf values in MPT, which caused broken proofs, and a fix for the CustomGroups witness scope check.

Due to the bug fixes and some of the protocol updates, v0.97.3 requires a resync after upgrading. The binary and full changelog can be accessed from the following link:
https://github.com/nspcc-dev/neo-go/releases/tag/v0.97.3