en
Back to the list

Neo SPCC releases NeoFS Node v0.51.0, SDK Go RC17, and XK6 v0.2.1 with protocol updates

source-logo  neonewstoday.com 2 h
image

Neo SPCC has published a coordinated wave of NeoFS releases, led by NeoFS Node v0.51.0, which delivers protocol-level changes including mutable NEP-11 containers, synchronous container operations, and the introduction of session token v2. The accompanying NeoFS SDK Go v1.0.0-rc.17 provides the underlying library support for these features, while XK6-NeoFS v0.2.1 brings stability fixes and dependency upgrades to the load testing extension. A TestNet upgrade has ready been completed, with MainNet expected to follow in the coming days.

NeoFS Node v0.51.0

The NeoFS Node v0.51.0 release delivers a number of important protocol changes. Containers are now represented as mutable NEP-11 tokens on-chain, with both storage nodes and Inner Ring nodes supporting new container contract methods including createV2 and getInfo, as well as attribute management methods setAttribute and removeAttribute, providing a richer on-chain container management API. Corresponding CLI commands for setting and removing attributes have been added to the container section.

Container operations Put, Delete, and SetExtendedACL are now handled synchronously by storage nodes, replacing the previous asynchronous flow. This change simplifies client-side logic by removing the need for polling or waiting for eventual consistency. Containers can also be locked against deletion by setting the __NEOFS__LOCK_UNTIL attribute, with storage nodes returning a new CONTAINER_LOCKED status when deletion of a locked container is attempted.

Session token v2 is introduced across the stack. Both Inner Ring and storage nodes now accept the new token format for container and object operations, and a new CLI command for generating v2 tokens is available. Lock objects and tombstone objects using API versions older than 2.18 are no longer accepted.

On the performance side, metabase optimizations deliver faster object deletion by reworking the locking info scheme and removing the legacy graveyard structure. Object service improvements target erasure-coded containers specifically: EC parts are now placed concurrently, shard ordering is consistent between reads and writes, and raw data requests are supported in EC containers. RANGE request continuation in multi-rule EC scenarios has also been fixed. Retrieval of $LINK objects in EC containers is now supported, and size-split objects remain available even when the $LINK object is unavailable. Object-to-shard placement has been optimized, and objects requested for removal via the control service are now deleted immediately rather than being queued for garbage collection.

Several deprecated Inner Ring configuration options have been removed, including fschain_autodeploy, without_mainnet, governance.disable, fee.main_chain, and contracts. Node operators upgrading from v0.50.2 must remove these options from their IR configuration files, as their presence will prevent the node from starting. Automatic metabase migrations from versions 3 and 4 have also been removed; operators still on those versions should resynchronize or migrate using NeoFS Node v0.50.2 before upgrading.

Bug fixes address an Inner Ring panic during graceful shutdown, incorrect IR node list storage via the netmap contract instead of RoleManagement, a deadlock on storage node exit in rare garbage collection scenarios, and expired EC parts incorrectly persisting on storage nodes.

NeoFS SDK Go v1.0.0-rc.17

The SDK release provides the library-level foundation for the protocol changes in Node v0.51.0 and is compatible with NeoFS API 2.21. Session token v2 support is fully implemented, enabling clients to create and use the new token format for both container and object operations.

A new container attribute management API introduces methods for setting and removing container attributes, along with a set of new well-known attribute names. The container API itself has been made synchronous, aligning with the behavioral change in the node. The connection pool now uses a sliding window for error counting, improving load balancing decisions under intermittent failure conditions.

The object creation API has been refactored so that object.New is more tailored to creating new objects, and the previous InitCreation method has been removed. Three-way comparison methods have been added for OID, CID, and Address types, providing more expressive sorting and ordering operations.

The release also fixes incorrect status handling for incomplete responses and updates the NeoGo dependency to v0.116.0.

XK6-NeoFS v0.2.1

The NeoFS load testing extension for k6 receives a maintenance release addressing stability and fairness. A panic triggered during S3 tests has been resolved, and spurious checksum warnings that appeared during test execution have been eliminated.

Load distribution across target nodes is now more fair, reducing hotspot effects during benchmarking runs. The build requirement has been raised to Go 1.24, and dependencies have been updated across the board, including the NeoFS SDK Go bump to v1.0.0-rc.17, the AWS SDK to v1.39.0, and the k6 framework itself from v0.51.0 to v1.3.0.

Upgrade guidance

Node operators should follow the TestNet upgrade and prepare for the MainNet deployment expected soon. Inner Ring operators must audit their configuration files and remove the deprecated options listed above before upgrading to v0.51.0. Storage node operators still running metabase version 3 or 4 should complete their migration via v0.50.2 prior to this upgrade, as automatic migration paths have been removed.

The full changelogs and release assets can be found at the links below:

https://github.com/nspcc-dev/neofs-node/releases/tag/v0.51.0
https://github.com/nspcc-dev/neofs-sdk-go/releases/tag/v1.0.0-rc.17
https://github.com/nspcc-dev/xk6-neofs/releases/tag/v0.2.1

neonewstoday.com