Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Created by
brew bump
Created with
brew bump-formula-pr
.release notes
IPFS_LOG_LEVEL
deprecated🗣 Discuss
If you have comments, questions, or feedback on this release, please post here.
If you experienced any bugs with the release, please post an issue.
🔦 Highlights
AutoTLS now enabled by default for nodes with 1 hour uptime
Starting now, any publicly dialable Kubo node with a
/tcp
listener that remains online for at least one hour will receive a TLS certificate through theAutoTLS
feature.This occurs automatically, with no need for manual setup.
To bypass the 1-hour delay and enable AutoTLS immediately, users can explicitly opt-in by running the following commands:
AutoTLS will remain disabled under the following conditions:
/ws
(WebSocket) listenerswarm.key
/tcp
listenerTo troubleshoot, use
GOLOG_LOG_LEVEL="error,autotls=info
.For more details, check out the
AutoTLS
configuration documentation or dive deeper with AutoTLS libp2p blog post.New WebUI features
The WebUI, accessible at http://127.0.0.1:5001/webui/, now includes support for CAR file import and QR code sharing directly from the Files view. Additionally, the Peers screen has been updated with the latest
ipfs-geoip
dataset.RPC and CLI command changes
ipfs config
is now validating json fields (#10679).bitswap reprovide
command. Make sure to switch to modernrouting reprovide
. (#10677)stats reprovide
command now shows additional stats forRouting.AcceleratedDHTClient
, indicating the last and nextreprovide
times. (#10677)ipfs files cp
now performs basic codec check and will error when source is not a valid UnixFS (onlydag-pb
andraw
codecs are allowed in MFS)Bitswap improvements from Boxo
This release includes performance and reliability improvements and fixes for minor resource leaks. One of the performance changes greatly improves the bitswap clients ability to operate under high load, that could previously result in an out of memory condition.
IPNS publishing TTL change
Many complaints about IPNS being slow are tied to the default
--ttl
inipfs name publish
, which was set to 1 hour. To address this, we’ve lowered the default IPNS Record TTL during publishing to 5 minutes, matching similar TTL defaults in DNS. This update is now part ofboxo/ipfs
(GO, boxo#859) and@helia/ipns
(JS, helia#749).IPFS_LOG_LEVEL
deprecatedThe variable has been deprecated. Please use
GOLOG_LOG_LEVEL
instead for configuring logging levels.Pebble datastore format update
If the pebble database format is not explicitly set in the config, then automatically upgrade it to the latest format version supported by the release ob pebble used by kubo. This will ensure that the database format is sufficiently up-to-date to be compatible with a major version upgrade of pebble. This is necessary before upgrading to use pebble v2.
Badger datastore update
An update was made to the badger v1 datastore that avoids use of mmap in 32-bit environments, which has been seen to cause issues on some platforms. Please be aware that this could lead to a performance regression for users of badger in a 32-bit environment. Badger users are advised to move to the flatds or pebble datastore.
Datastore Implementation Updates
The go-ds-xxx datastore implementations have been updated to support the updated
go-datastore
v0.8.2 query API. This update removes the datastore implementations' dependency ongoprocess
and updates the query API.One Multi-error Package
Kubo previously depended on multiple multi-error packages,
github.com/hashicorp/go-multierror
andgo.uber.org/multierr
. These have nearly identical functionality so there was no need to use both. Therefore,go.uber.org/multierr
was selected as the package to depend on. Any future code needing multi-error functionality should usego.uber.org/multierr
to avoid introducing unneeded dependencies.Fix hanging pinset operations during reprovides
The reprovide process can be quite slow. In default settings, the reprovide process will start reading CIDs that belong to the pinset. During this operation, starvation can occur for other operations that need pinset access (see ipfs/kubo#10596).
We have now switch to buffering pinset-related cids that are going to be reprovided in memory, so that we can free pinset mutexes as soon as possible so that pinset-writes and subsequent read operations can proceed. The downside is larger pinsets will need some extra memory, with an estimation of ~1GiB of RAM memory-use per 20 million items to be reprovided.
Use
Reprovider.Strategy
to balance announcement prioritization, speed, and memory utilization.📦️ Important dependency updates
go-libp2p
to v0.41.0 (incl. v0.40.0)go-libp2p-kad-dht
to v0.30.2 (incl. v0.29.0, v0.29.1, v0.29.2, v0.30.0, v0.30.1)boxo
to v0.29.1 (incl. v0.28.0 v0.29.0)ipfs-webui
to v4.6.0 (incl. v4.5.0)p2p-forge/client
to v0.4.0go-datastore
to v0.8.2 (incl. v0.7.0, v0.8.0)📝 Changelog
Full Changelog
files cp
(#10701) (ipfs/kubo#10701)bitswap reprovide
(#10699) (ipfs/kubo#10699)DefaultRecordTTL
to 5m (#859) (ipfs/boxo#859)ipld/merkledag
from gogo protobuf (#841) (ipfs/boxo#841)ipld/unixfs
from gogo protobuf (#840) (ipfs/boxo#840)extAddr
(#3140) (libp2p/go-libp2p#3140)👨👩👧👦 Contributors