Download Latest Version v1.1.4 source code.tar.gz (479.6 kB)
Email in envelope

Get an email when there's a new version of IPFS Cluster

Home / v1.1.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2024-05-06 5.7 kB
v1.1.0 source code.tar.gz 2024-05-06 469.8 kB
v1.1.0 source code.zip 2024-05-06 609.4 kB
Totals: 3 Items   1.1 MB 0

IPFS Cluster v1.1.0 is a maintenance release that comes with a number of improvements in libp2p connection and resource management. We are bumping the minor release version to bring the attention to the slight behavioral changes included in this release.

In order to improve how clusters with a very large number of peers behave, we have changed the previous logic which made every peer reconnect constantly to 3 specific peers (usually the "trusted peers" in collaborative clusters). For obvious reasons, this caused bottlenecks when the clusters grew into the thousands of peers. Swarm connections should now grow more organically and we only re-bootstrap when they fall below expectable levels.

Anothe relevant change is the exposure of the libp2p Resource Manager settings, and the new defaults, which limit libp2p usages to 25% of the system's total memory and 50% of the process' available file descriptors. The limits can be adjusted as explained below. The new defaults, along with other internal details controlling the initialization of the resource manager are likely more restrictive than the defaults used in previous versions. That means that memory-constrained systems may start seeing resource-manager errors where there were none before. The solution is to increase the limits. The limits are conservative as Kubo is the major resource user at the end of the day.

We have also updated to the latest Pebble release. This should not cause any problems for users that already bumped major_format_version when upgrading to v1.0.8, otherwise we recommend setting it to 16 per the warning printed on daemon's start.

List of changes

Breaking changes

There are no breaking changes on this release.

Features
Bug fixes
Other changes

Upgrading notices

Configuration changes

A resource_manager setting has been added to the main cluster configuration section:

cluster: {
  ...
  "resource_manager": {
    "enabled": true,
    "memory_limit_bytes": 0,
    "file_descriptors_limit": 0
  },

when not present, the defaults will be as shown above. Using negative values will error.

The new setting controls the working limits for the libp2p Resource Manager. 0 means "based on system's resources":

  • memory_limit_bytes defaults to 25% of the system's total memory when set to 0, with a minimum of 1GiB.
  • file_descriptors_limit defaults to 50% of the process' file descriptor limit when set to 0.

These limits can be set manually, or the resource manager can be fully disabled by toggling the enabled setting.

When the limits are reached, libp2p will print warnings and errors as connections and libp2p streams are dropped. Note that the limits only affect libp2p resources and not the total memory usage of the IPFS Cluster daemon.

REST API

No changes.

Pinning Service API

No changes.

IPFS Proxy API

No changes.

Go APIs

No relevant changes.

Other

Nothing.

Source: README.md, updated 2024-05-06