Neo SPCC shipped coordinated updates across four infrastructure components on Sept. 1: NeoFS Node v0.56.0, NeoFS SDK Go RC22, NeoGo v0.123.0, and NeoFS REST Gateway v0.19.1, introducing API 2.26 support, automatic TLS certificate generation, and continued cleanup of deprecated operations.
All four components now require Go 1.26+ to build, up from Go 1.25, with Go 1.27 supported across CI pipelines. The releases form a dependency chain: NeoFS Node v0.56.0 and REST Gateway v0.19.1 both require SDK Go RC22 and NeoGo v0.123.0, following Neo SPCC’s established pattern of shipping interdependent components together.
NeoFS Node v0.56.0 “Nabdo”
The headline feature in “Nabdo” is automatic self-signed TLS certificate generation for inter-node communication. When a TLS endpoint is enabled but no certificate file is specified, storage nodes now generate certificates from their wallet keys and exchange them during inter-node connections. Certificates are validated against the node’s cryptographic identity announced in the network map, completing the TLS pinning work introduced in v0.55.0.
The change comes with a breaking configuration update: the grpc.tls.key parameter has been removed, and TLS keys are now always read from the node wallet. Operators must remove grpc.tls.key from their configurations before upgrading.
Node v0.56.0 also adds NeoFS API 2.26 support, adopting single-signature requests that consolidate the previously separate body, meta header, and origin signatures into one. On mutually authenticated inter-node connections, storage nodes skip signing TTL=1 requests entirely and omit origin signatures for erasure-coded requests sent to nodes running API v2.25 or later.
The release includes eight bug fixes. Among them, a storage node panic triggered when forwarding GET, HEAD, and RANGE requests has been resolved, the policer no longer removes tombstone objects from backup container nodes, and SEARCH consistency in erasure-coded containers has been corrected. Storage nodes also no longer shut down when a SIGHUP configuration reload fails, instead logging the error and continuing to operate.
Memory allocation improvements reduce overhead for ranged GET requests and forwarded SEARCH, GET, and HEAD operations. gRPC read and write buffers have been increased to 256 KB, matching the SDK-level optimization.
Operators on versions earlier than v0.52.0 face an additional constraint: session token storage migration from v0.52.0 and metabase migrations for database versions 8 and 9 have been removed. These operators must first upgrade to an intermediate version between v0.52.0 and v0.55.0, allow migrations to complete, then proceed to v0.56.0.
NeoFS SDK Go RC22
SDK RC22 makes NeoFS API 2.26 the default, implementing single-signature requests for all operations on API 2.26 and above while maintaining dual-signature support for earlier versions. Two deprecated operations have been removed: GetRangeHash and Tillich-Zémor homomorphic hash calculation. The API continues to accept TZ checksums but will no longer generate them.
A new experimental feature allows clients to skip request signatures for TTL=1 local requests when the transport layer already authenticates the request author, configured via Client.SkipSignatureForLocalRequests().
Performance optimizations include more efficient buffer management for Head and Search operations, smaller buffers for non-payload requests, and gRPC buffer sizes increased to 256 KB for both read and write directions. The SDK also now exports its protobuf library for efficient protocol buffer handling without intermediate message objects, through new proto/protobuf and proto/encoding packages.
NeoGo v0.123.0 “Granulation”
“Granulation” extends the getrawmempool and getnotarypool RPC handlers with an optional signer filter, allowing clients to query only transactions containing a specific signer account. The filter accepts a Uint160 hex string or address and works for both verbose and non-verbose responses.
Range and hash support has been dropped from the Oracle service, continuing the ecosystem-wide removal of deprecated NeoFS operations that SDK RC22 formalized. Auto-generated RPC bindings now use reusable native contract types, reducing duplication in generated code.
Three compiler bug fixes address a panic when changing casted byte-slice struct fields, a panic on immediately-invoked function literals, and an always-true conflicting payer fee check in the memory pool. The release is fully compatible with the Neo C# reference node v3.10+ and requires no resynchronization. NeoGo’s previous release, v0.122.0 “Vitalization,” focused on state divergence elimination.
NeoFS REST Gateway v0.19.1
REST Gateway v0.19.1 is a maintenance patch arriving two weeks after v0.19.0’s breaking removal of deprecated /v1/auth endpoints. The update fixes a bug where the gateway would error when encountering GETRANGEHASH operations in existing EACL rules, a necessary accommodation now that SDK RC22 has removed GetRangeHash from the object API. The gateway now gracefully skips unsupported operations in EACL processing.
The release also aligns dependencies with SDK RC22 and NeoGo v0.123.0, upgrades to Go 1.26+, and migrates from the deprecated docker/docker package to moby/moby/api.
Release notes for all four components can be found at the links below:
- https://github.com/nspcc-dev/neofs-node/releases/tag/v0.56.0
- https://github.com/nspcc-dev/neofs-sdk-go/releases/tag/v1.0.0-rc.22
- https://github.com/nspcc-dev/neo-go/releases/tag/v0.123.0
- https://github.com/nspcc-dev/neofs-rest-gw/releases/tag/v0.19.1