Neo SPCC has released a new update for its Go node for N3 RC3. Released to address minor technical differences that were causing state mismatches, the new build has proven to be state root-compatible with the core C# client up to 281K blocks. Node runners will need to resynchronize the chain to get the correct state.

NeoGo v0.95.4 includes a number of bug fixes across the MPT functionality, binary serialization code, and manifest permissions. The update also added several usability improvements. Examples include a new sysgas parameter for attaching additional system GAS to invocation and transfer commands in the CLI, improved StackItem error handling, and new checks in the compiler.

The team also found a way to address the inefficiency of calculating GAS per vote values by caching the last updated value. The change led to a dramatic difference in block processing speed, with up to a 5-6x speedup for the first 100K TestNet blocks in testing.

Neo SPCC’s maintainers for the NeoGo project credit the RC3 hackathon participants and others participating on the N3 TestNet for helping to uncover various issues. As the chain progresses and new contracts are created and invoked, edge cases in behavior between neo-cli and NeoGo are more likely to emerge, and new opportunities for optimization are discovered.

Addressing these cases now helps ensure that NeoGo is fully tested and prepared for when the N3 MainNet launches.

NeoGo v0.95.4 can be downloaded at the link below. This is expected to be the final RC3-compatible release before the official N3 node release and TestNet:
https://github.com/nspcc-dev/neo-go/releases/tag/v0.95.4