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
filestore
command to remove bad blocksConnMgr.SilencePeriod
configuration setting exposedOverview
🔦 Highlights
HTTP Retrieval Client Now Enabled by Default
This release promotes the HTTP Retrieval client from an experimental feature to a standard feature that is enabled by default. When possible, Kubo will retrieve blocks over plain HTTPS (HTTP/2) without any extra user configuration.
See
HTTPRetrieval
for more details.Bitswap Broadcast Reduction
The Bitswap client now supports broadcast reduction logic, which is enabled by default. This feature significantly reduces the number of broadcast messages sent to peers, resulting in lower bandwidth usage during load spikes.
The overall logic works by sending to non-local peers only if those peers have previously replied that they want data blocks. To minimize impact on existing workloads, by default, broadcasts are still always sent to peers on the local network, or the ones defined in
Peering.Peers
.At Shipyard, we conducted A/B testing on our internal Kubo staging gateway with organic CID requests to
ipfs.io
. While these results may not exactly match your specific workload, the benefits proved significant enough to make this feature default. Here are the key findings:For more information about our A/B tests, see kubo#10825.
To revert to the previous behavior for your own A/B testing, set
Internal.Bitswap.BroadcastControl.Enable
tofalse
and monitor relevant metrics (ipfs_bitswap_bcast_skips_total
,ipfs_bitswap_haves_received
,ipfs_bitswap_unique_blocks_received
,ipfs_bitswap_wanthaves_broadcast
, HTTP 200 success rate).For a description of the configuration items, see the documentation of
Internal.Bitswap.BroadcastControl
.Update go-log to v2
go-log v2 has been out for quite a while now and it's time to deprecate v1.
go-log
withgo-log/v2
/api/v0/log/tail
useful over HTTPipfs log tail
ContextWithLoggable
as this is not needed for tracing-like functionalityKubo now uses AutoNATv2 as a client
This Kubo release starts utilizing AutoNATv2 client functionality. go-libp2p v0.42 supports and depends on both AutoNATv1 and v2, and Autorelay feature continues to use v1. go-libp2p v0.43+ will discontinue internal use of AutoNATv1. We will maintain support for both v1 and v2 until then, though v1 will gradually be deprecated and ultimately removed.
Smarter AutoTLS registration
This update to libp2p and AutoTLS incorporates AutoNATv2 changes. It aims to reduce false-positive scenarios where AutoTLS certificate registration occurred before a publicly dialable multiaddr was available. This should result in fewer error logs during node start, especially when IPv6 and/or IPv4 NATs with UPnP/PCP/NAT-PMP are at play.
Overwrite option for files cp command
The
ipfs files cp
command has a--force
option to allow it to overwrite existing files. Attempting to overwrite an existing directory results in an error.Gateway now supports negative HTTP Range requests
The latest update to
boxo/gateway
adds support for negative HTTP Range requests, achieving gateway-conformance@v0.8 compatibility.This provides greater interoperability with generic HTTP-based tools. For example, WebRecorder's https://replayweb.page/ can now directly load website snapshots from Kubo-backed URLs.
Option for
filestore
command to remove bad blocksThe experimental
filestore
command has a new option,--remove-bad-blocks
, to verify objects in the filestore and remove those that fail verification.ConnMgr.SilencePeriod
configuration setting exposedThis connection manager option controls how often connections are swept and potentially terminated. See the ConnMgr documentation.
Fix handling of EDITOR env var
The
ipfs config edit
command did not correctly handle theEDITOR
environment variable when its value contains flags and arguments, i.e.EDITOR=emacs -nw
. The command was treating the entire value of$EDITOR
as the name of the editor command. This has been fixed to parse the value of$EDITOR
into separate args, respecting shell quoting.📦️ Important dependency updates
go-libp2p
to v0.42.0go-libp2p-kad-dht
to v0.33.0boxo
to v0.33.0 (incl. v0.32.0)gateway-conformance
to v0.8p2p-forge/client
to v0.6.0github.com/cockroachdb/pebble/v2
to v2.0.6 for Go 1.25 support📝 Changelog
Full Changelog
--force
option tofiles cp
command (#10823) (ipfs/kubo#10823)Provider.Enabled
flag (#10804) (ipfs/kubo#10804)Wantlist
(#961) (ipfs/boxo#961)BasicBlock
methods (#61) (ipfs/go-block-format#61)purgeStore()
(#3273) (libp2p/go-libp2p#3273)modernc.org/sqlite
directly (#3227) (libp2p/go-libp2p#3227)👨👩👧👦 Contributors
View the full release notes at https://github.com/ipfs/kubo/releases/tag/v0.36.0.