Neo SPCC has launched NeoGo v0.119.0 “Yawl,” introducing protocol modifications that activate on the upcoming Gorgon laborious fork, resolving 41 MainNet transaction variations between NeoGo and the C# reference node, and delivering efficiency optimizations for node operators. The discharge is suitable with C# node v3.9.2 and doesn’t require a database resync.
The replace arrives as Neo’s infrastructure groups put together for Gorgon, the community’s subsequent laborious fork. The Neo Council voted in April to defer a proposed execution payment discount in favor of ready for Gorgon’s dynamic opcode pricing mannequin, which Neo SPCC designed to make commonplace transactions considerably cheaper whereas making malicious transactions exponentially costlier. No deployment date has been set for the laborious fork.
Gorgon protocol modifications
A number of habits modifications in v0.119.0 take impact solely when Gorgon prompts. These embrace stricter dealing with of invalid cryptographic signature arguments throughout CryptoLib and System.Crypto operations, which can now set off a FAULT as an alternative of silently continuing. The discharge additionally provides lacking operand checks for the SHR and SHL VM directions and an index bounds examine for HASKEY, aligning NeoGo’s habits with the anticipated Gorgon specification.
Contract administration modifications are included as nicely – the ContractManagement cache is now up to date earlier than the contract block on destroy, and contract accounts are blocked earlier than contract destruction, each efficient at Gorgon.
VM compatibility fixes
v0.119.0 addresses 41 MainNet transactions the place NeoGo and the C# reference node produced completely different FAULT outcomes. These discrepancies meant the 2 implementations have been processing sure contracts in another way – a reliability concern for a multi-client community.
Fixes embrace corrected dealing with of System.Contract.CallNative async callbacks, technique return worth kind validation throughout contract calls, and a number of refcounting corrections for PACKMAP, SETITEM, and SYSCALL argument parsing. A number of VM panics have been additionally resolved, together with crashes on struct subject entry and an incorrect response from Ledger’s getBlock when given a block index past the present peak – NeoGo now returns null, matching the C# node’s habits.
The underlying implementation of stackitem.Map was additionally reworked, ported from the C# reference implementation to make use of an ordered construction.
Efficiency enhancements
A brand new DirectRelay RPC possibility permits direct transaction broadcast to friends somewhat than routing by way of the usual queue for sendrawtransaction calls. The function is especially related following the activation of three-second block occasions on MainNet in late April, the place quicker propagation has larger affect. Neo SPCC famous artificial community assessments confirmed minimal enchancment, although real-world situations might differ.
Mempool operations obtained microoptimizations yielding as much as a 24% discount in time and allocations for the frequent same-fee state of affairs. Consensus message supply by way of the P2P layer was additionally improved, and BoltDB was upgraded to an allocation-optimized model for decrease reminiscence stress.
Operational updates
Node operators working systemd can now use sd_notify integration, enabling correct Sort=notify service items with READY, RELOADING, and STOPPING indicators. A brand new Prometheus metric for energetic WebSocket connections was added, motivated by NeoFS storage nodes encountering WebSocket consumer limits.
4 present Prometheus metrics have been renamed and not using a transition interval – current_state_height, current_block_height, current_persisted_height, and current_header_height lose the “current_” prefix. Operators might want to replace dashboards and alerts accordingly.
For builders, the actor.ErrExecFailed error kind has been deprecated in favor of neorpc.FaultException, requiring migration in purposes that examine for execution failures.
Wanting forward
NeoGo v0.119.0 strikes the Go consumer nearer to Gorgon readiness whereas tightening its alignment with the C# reference implementation. The Gorgon laborious fork stays and not using a scheduled date, with dynamic opcode pricing already applied on the NeoGo facet and awaiting completion within the C# node. Earlier NeoGo protection will be present in NNT’s article on v0.118.0.
The complete launch notes will be discovered on the hyperlink beneath:
https://github.com/nspcc-dev/neo-go/releases/tag/v0.119.0



