Note
This release was brought to you by the Shipyard team.
filestore
command to remove bad blocksConnMgr.SilencePeriod
configuration setting exposedThis 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.
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
to false
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
.
go-log v2 has been out for quite a while now and it's time to deprecate v1.
go-log
with go-log/v2
/api/v0/log/tail
useful over HTTPipfs log tail
ContextWithLoggable
as this is not needed for tracing-like functionalityThis 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 registrationThis 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 commandThe 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.
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.
filestore
command to remove bad blocks
The 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 exposed
This connection manager option controls how often connections are swept and potentially terminated. See the ConnMgr documentation.
Fix handling of EDITOR env varThe ipfs config edit
command did not correctly handle the EDITOR
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.
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--force
option to files 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)RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4