Skip to content

Releases: nspcc-dev/neofs-node

v0.44.0 - Oedo

28 Nov 11:44
918307b
Compare
Choose a tag to compare

Added

  • More effective FSTree writer for HDDs, new configuration options for it (#2814)
  • New health status INITIALIZING_NETWORK in inner ring (#2934)
  • IR health status to Prometheus metrics (#2934)
  • neofs-cli control object list command (#2853)
  • node config option storage.ignore_uninited_shards (#2953)
  • --global-name flag for neofs-cli container create to save container name into __NEOFS__NAME and subsequently register it in NNS contract (#2954)
  • The last metabase resynchronization epoch into metabase (#2966)
  • neofs-lens meta last-resync-epoch command (#2966)
  • neofs-lens fstree cleanup-tmp command (#2967)
  • neofs-cli control object revive command (#2968)
  • --disable-auto-gen-tag flag for gendoc command (#2983)
  • CLI commands documentation to the docs/cli-commands folder (#2983)
  • logger.encoding config option (#2999)
  • Reloading morph endpoints with SIGHUP (#2998)
  • New peapod-to-fstree tool providing peapod-to-fstree data migration (#3013)
  • Reloading node attributes with SIGHUP (#3005)
  • Reloading pool sizes with SIGHUP (#3018)
  • Reloading pprof/metrics services with SIGHUP (#3016)
  • Metrics for shard capacity (#3021)

Fixed

  • Searching (network-wide) for tombstones when handling their expiration, local indexes are used now instead (#2929)
  • Unathorized container ops accepted by the IR (#2947)
  • Structure table in the SN-configuration document (#2974)
  • False negative connection to NeoFS chain in multi-endpoint setup with at least one live node (#2986)
  • Overriding the default container and object attributes only with the appropriate flags (#2985)
  • RPC client reconnection failures leading to complete SN failure (#2797)
  • meta.DB.Open(readOnly) moves metabase in RO mode (#3000)
  • Panic in event listener related to inability to switch RPC node (#2970)
  • Non-container nodes never check placement policy on PUT, SEARCH requests (#3014)
  • If shards are overloaded with PUT requests, operation is not skipped but waits for 30 seconds (#2871)
  • Data corruption if PUT is done too concurrently (#2978)

Changed

  • ObjectService's Put RPC handler caches up to 10K lists of per-object sorted container nodes (#2901)
  • Metabase graveyard scheme (#2929)
  • When an error is returned, no additional help output is displayed in cobra-based programs (#2942)
  • Timestamps are no longer produced in logs if not running with TTY (#2964)
  • In inner ring config, default ports for TCP addresses are used if they are missing (#2969)
  • Metabase is refilled if an object exists in write-cache but is missing in metabase (#2977)
  • Pprof and metrics services stop at the end of SN's application lifecycle (#2976)
  • Reject configuration with unknown fields (#2981)
  • Log sampling is disabled by default now (#3011)
  • EACL is no longer considered for system role (#2972)
  • Deprecate peapod substorage (#3013)
  • Node does not stop trying to PUT an object if there are more PUT tasks than configured (#3027)
  • morph configuration section renamed to fschain both in IR and SN (#3028)
  • FSTree is limited to depth 8 max now (#3031)

Removed

  • Support for node.key configuration (#2959)
  • contracts.alphabet.amount from inner ring config (#2960)

Updated

Updating from v0.43.0

Metabase version has been increased, auto migration will be performed once v0.44.0 Storage Node is started with a v0.43.0 metabase. This action can not be undone. No additional work should be done.

The new storage.put_retry_timeout config value added. If an object cannot be PUT to storage, node tries to PUT it to the best shard for it (according to placement sorting) and only to it for this long before operation error is returned.

Binary keys are no longer supported by storage node, NEP-6 wallet support was introduced in version 0.22.3 and support for binary keys was removed from other components in 0.33.0 and 0.37.0. Please migrate to wallets (see 0.37.0 notes) if you've not done it previously.

The section morph in the config has been renamed to fschain. This version still supports the old section name, but this compatibility code will be removed in the next release. Please rename morph to fschain in your configuration files.

To migrate data from Peapods to FSTree:

$ peapod-to-fstree -config </path/to/storage/node/config>

For any shard, the data from the configured Peapod is copied into an FSTree that must be already configured. Notice that peapod DB is not deleted during migration. An updated (peapod-free) configuration file is also created with ".migrated" suffix (for example, /etc/neofs/config.yaml -> /etc/neofs/config.yaml.migrated). WARN: carefully review the updated config before using it in the application!

FSTree storage provided with this version is more efficient for small files than the Peapod in most cases. We support both fstree and peapod sub-storages, but peapod can be removed in future versions. We recommend using fstree. If you want to use only fstree and storage node already stores some data, don't forget to perform data migration described above.

v0.43.0 - Jukdo

20 Aug 15:52
1a9784c
Compare
Choose a tag to compare

Added

  • Indexes inspection command to neofs-lens (#2882)
  • Add objects sanity checker to neofs-lens (#2506)
  • Support for 0.20.0+ neofs-contract archive format (#2872)
  • neofs-cli control object status command (#2886)
  • Check the account alongside the public key in ACL (#2883)
  • Allow addresses to be used in EACLs created from CLI (#2914)

Fixed

  • Control service's Drop call does not clean metabase (#2822)
  • It was impossible to specify memory amount as "1b" (one byte) in config, default was used instead (#2899)
  • Container session token's lifetime was not checked (#2898)
  • ACL checks for split objects could be forced by a node than might lack access (#2909)

Changed

  • neofs-cli allows several objects deletion at a time (#2774)
  • ObjectService.Put server of in-container node places objects using new ObjectService.Replicate RPC (#2802)
  • ObjectService's Search and Replicate RPC handlers cache up to 1000 lists of container nodes (#2892)
  • Default max_traceable_blocks Morph setting lowered to 17280 from 2102400 (#2897)
  • ObjectService's Get/Head/GetRange RPC handlers cache up to 10K lists of per-object sorted container nodes (#2896)

Updated

  • neofs-contract dependency to 0.20.0 (#2872)
  • NeoGo dependency to 0.106.3 (#2872)

v0.42.1

13 Jun 17:20
450c4e5
Compare
Choose a tag to compare

A tiny update that adds compatibility with the Neo N3 Domovoi hardfork.

Added

  • "morph mint-balance" command to neofs-adm (#2867)

Fixed

  • Unenforced IR morph.consensus.p2p.peers.min config default (#2856)
  • Object parts do not expire (#2858)

Updated

  • NeoGo dependency to 0.106.2 (#2869)

v0.42.0 - Dokdo

22 May 18:31
9a9a5d5
Compare
Choose a tag to compare

This release adds compatibility with the Neo N3 Cockatrice hardfork, so while other changes are minor it's still an important update.

Added

  • "storage list" command to neofs-lens (#2852)

Fixed

  • GETRANGE request may fail in certain cases (#2849)

Changed

  • SN API server responds with status message even to old clients from now (#2846)

Removed

  • IR contracts deployment code. Moved to the contracts repo (#2812)
  • blobovnicza-to-peapod migration utility (#2842)

Updated

  • neofs-contract dependency (#2847)
  • NeoGo dependency to 0.106.0 (#2854)

Updating from v0.41.1

Notice that blobovnicza-to-peapod migration utility is gone. Blobovniczas were removed from the node since 0.39.0, so if you're using any current NeoFS node version it's not a problem. If you're using 0.38.0 or lower with blobovniczas configured, please migrate using earlier releases.

v0.41.1

27 Apr 19:24
1cb9970
Compare
Choose a tag to compare

A set of fixes and small utility improvements. We're providing darwin and arm64 binaries for you as well now.

Added

  • Container estimations inspector to neofs-adm (#2826)
  • Metabase object lister to neofs-lens (#2834)
  • Shard ID from metabase reader to neofs-lens (#2834)
  • neofs-cli bearer print command for reading binary bearer tokens (#2829)
  • linux-arm64, darwin-amd64 and darwin-arm64 binaries, linux-arm64 Docker images (#2835)

Fixed

  • Attribute ACL checks for the first split object (#2820)
  • Container size estimation contract writing (#2819)
  • Custom contract deployment with custom zone via neofs-adm (#2827)
  • Errors in neofs-adm morph dump-names output (#2831)
  • GC stops if any non-critical "content" errors happen (#2823)
  • Endless GC cycle if an object is stored on an unexpected shard (#2821)
  • Storage node searches for objects even if local state prohibits operation (#1709)
  • First object in a split chain can de deleted (#2839)

v0.41.0 - Daebudo

19 Apr 12:45
7f03438
Compare
Choose a tag to compare

A very important release bringing a number of protocol changes. We have not changed the protocol for more than a year, but now we're doing that to add support for new functionality as well as fix long-standing issues.

Added

  • Support of numeric object search queries (#2733)
  • Support of GT, GE, LT and LE numeric comparison operators in CLI (#2733)
  • SN eACL processing of NULL and numeric operators (#2742)
  • CLI now allows to create and print eACL with numeric filters (#2742)
  • gRPC connection limits per endpoint (#1240)
  • neofs-lens object link command for the new link object inspection (#2799)
  • Storage nodes serve new ObjectService.Replicate RPC (#2674)

Fixed

  • Access to PUT objects no longer grants DELETE rights (#2261)
  • Storage nodes no longer reject GET w/ TTL=1 requests to read complex objects (#2447)
  • Response exceeding the deadline for TLS errors (#2561)
  • neofs-adm morph generate-storage-wallet was not able to read --initial-gas flag (#2766)
  • Inter-node connections closed on any status response (#2767)
  • Child objects were available for deletion despite any lock relations (#2093)

Changed

  • IR now checks format of NULL and numeric eACL filters specified in the protocol (#2742)
  • Empty filter value is now treated as NOT_PRESENT op by CLI acl extended create cmd (#2742)
  • Storage nodes no longer accept objects with header larger than 16KB (#2749)
  • IR sends NeoFS chain GAS to netmap nodes every epoch, not per a configurable blocks number (#2777)
  • Big objects are split with the new split scheme (#2667, #2782, #2784, #2788, #2792, #2807)
  • Background replicator transfers objects using new ObjectService.Replicate RPC (#2317)
  • Tombstone objects are not allowed to store child objects (incomplete puts are exceptional) (#2810)

Removed

  • Object notifications incl. NATS (#2750)
  • Supporting of __NEOFS__NETMAP* X-headers (#2751)
  • Option to use insecure TLS cipher suites (#2755)
  • Counter metrics that were deprecated since v0.38.0 (#2798)

Updated

Updating from v0.40.1

Remove notification section from all SN configuration files: it is no longer supported. All NATS servers running for this purpose only are no longer needed. If your app depends on notifications transmitted to NATS, do not update and create an issue please.

Stop attaching __NEOFS__NETMAP* X-headers to NeoFS API requests. If your app is somehow tied to them, do not update and create an issue please.

Notice that this is the last release containing blobovnicza-to-peapod migration utility. Blobovniczas were removed from the node since 0.39.0, so if you're using any current NeoFS node version it's not a problem. If you're using 0.38.0 or lower with blobovniczas configured, please migrate ASAP.

Remove grpc.tls.use_insecure_crypto from any storage node configuration.

Remove timers.emit from any inner ring configuration.

v0.40.1

22 Feb 06:23
9756cc4
Compare
Choose a tag to compare

Fixed

  • Inability to deploy contract with non-standard zone via neofs-adm (#2740)
  • Container session token's wildcard field support (#2741)

Updating from v0.40.0

We no longer provide .tag.gz binaries in releases, they always were just duplicates, but if you're using them in some scripts please update to fetch raw binaries. All binaries have OS in their names as well now, following regular naming used throughout NSPCC, so instead of neofs-cli-amd64 you get neofs-cli-linux-amd64 now.

v0.40.0 - Maldo

09 Feb 17:00
v0.40.0
1e37ecb
Compare
Choose a tag to compare

Added

  • neofs-adm morph generate-storage-wallet now supports more than one wallet generation per call (#2425)
  • Missing containers cleanup (#1663)

Fixed

  • IR does not wait for HTTP servers to stop gracefully before exiting (#2704)
  • Zero exit code if IR fails (#2704)
  • Neo RPC client failure when the first endpoint is unavailable even if there are more endpoints to try (#2703)
  • Incorrect address mapping of the Alphabet contracts in NNS produced by deployment procedure (#2713)
  • IR compares and logs public keys difference, not hash of keys difference at SN verification check (#2711)
  • Incorrect handling of notary request leading to inability to collect signatures in some cases (#2715)
  • Deadlock in autodeploy routine (#2720)
  • SN now validates session tokens attached to objects (#1159)

Changed

  • Created files are not group writable (#2589)
  • IR does not create new notary requests for the SN's bootstraps but signs the received ones instead (#2717)
  • IR can handle third-party notary requests without reliance on receiving the original one (#2715)
  • SN validates container session token's issuer to be container's owner (#2466)
  • Storage node now consumes much less memory when slicing small data of a fixed size (#2719)

Removed

  • Deprecated neofs-adm [...] inspect commands (#2603)

Updated

  • neo-go to v0.105.1 (#2725)

Updating from v0.39.2

neofs-adm [...] inspect commands were deleted, use get instead.

v0.39.2

21 Dec 12:04
v0.39.2
df2cc08
Compare
Choose a tag to compare

NeoFS chain's auto-deployment fixes with some maintainability improvements.

Added

  • Logs on a connection drop in the cache of NeoFS API clients (#2694)

Fixed

  • Auto-deployment of the Balance and Container contracts (#2695)

v0.39.1

19 Dec 12:23
v0.39.1
5c66479
Compare
Choose a tag to compare

Fixed

  • Fund transfer deadlock in NeoFS chain auto-deploy/update procedure (#2681)
  • Invalid contracts' update transactions when epochs are stuck during the NeoFS chain update (#2680)
  • Metrics availability during startup (#2677)