Releases: ipfs/kubo
v0.33.0-rc3
This is the Third Release Candidate (RC3) with boxo and quic-go fixes.
See the draft changelog: docs/changelogs/v0.33.md
Related: release issue, discussion forum topic
This Kubo release is brought to you by the Shipyard team.
v0.33.0-rc2
Caution
We've identified a regression, working on a fix, there may be RC3 later this week.
This is second Release Candidate (RC2) with multiple fixes since RC1.
See the related issue: #10580, discussion forum topic and the draft changelog: docs/changelogs/v0.33.md
This release was brought to you by the Shipyard team.
v0.33.0-rc1
This is a Release Candidate we managed to ship before holiday break :-)
See the related issue: #10580 + discussion forum topic
And the draft changelog: docs/changelogs/v0.33.md
This release was brought to you by the Shipyard team.
v0.32.1
This release was brought to you by the Shipyard team.
Overview
This is a bugfix release on top of v0.32.0 to include go-libp2p-kad-dht v0.28.1.
If you run with Routing.AcceleratedDHTClient=true
make sure to update.
Release v0.32 issue #10547
🗣 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: Automatic Certificates for libp2p WebSockets via libp2p.direct
This release introduces an experimental feature that significantly improves how browsers (Helia, Service Worker) can connect to Kubo node.
Opt-in configuration allows a publicly dialable Kubo nodes (public IP, port forwarding, or NAT with uPnP) to obtain CA-signed TLS certificates for libp2p Secure WebSocket (WSS) connections automatically.
Tip
To enable this feature, set AutoTLS.Enabled
to true
and add a listener for /tls/sni/*.libp2p.direct/ws
on a separate TCP port:
{
+ "AutoTLS": { "Enabled": true },
"Addresses": {
"Swarm": {
"/ip4/0.0.0.0/tcp/4001",
+ "/ip4/0.0.0.0/tcp/4002/tls/sni/*.libp2p.direct/ws",
"/ip6/::/tcp/4001",
+ "/ip6/::/tcp/4002/tls/sni/*.libp2p.direct/ws",
After restarting your node for the first time you may need to wait 5-15 minutes to pass all checks and for the changes to take effect.
We are working on sharing the same TCP port with other transports (go-libp2p#2984).
See AutoTLS
configuration for more details how to enable it and what to expect.
This is an early preview, we appreciate you testing and filling bug reports or feedback in the tracking issue at kubo#10560.
📦️ Dependency updates
- update
ipfs-webui
to v4.4.0 - update
boxo
to v0.24.1 + v0.24.2 + v0.24.3- This includes a number of fixes and bitswap improvements, and support for filtering from IPIP-484 in delegated HTTP routing and IPNI queries.
- update
go-libp2p
to v0.37.0- This update required removal of
Swarm.RelayService.MaxReservationsPerPeer
configuration option from Kubo. If you had it set, remove it from your configuration file.
- This update required removal of
- update
go-libp2p-kad-dht
to v0.27.0 + v0.28.0 + v0.28.1 - update
go-libp2p-pubsub
to v0.12.0 - update
p2p-forge/client
to v0.0.2 - removed
go-homedir
- The
github.com/mitchellh/go-homedir
repo is archived, no longer needed, and no longer maintained. homedir.Dir
is replaced by the stdlibos.UserHomeDir
homedir.Expand
is replaced byfsutil.ExpandHome
in thegithub.com/ipfs/kubo/misc/fsutil
package.- The new
github.com/ipfs/kubo/misc/fsutil
package contains file utility code previously located elsewhere in kubo.
- The
📝 Changelog
Full Changelog
- github.com/ipfs/kubo:
- chore: 0.32.0
- fix: go-libp2p-kad-dht v0.28.0 (#10578) (ipfs/kubo#10578)
- chore: 0.32.0-rc2
- feat: ipfs-webui v4.4.0 (#10574) (ipfs/kubo#10574)
- chore: label implicit loggers
- chore: boxo v0.24.3 and p2p-forge v0.0.2 (#10572) (ipfs/kubo#10572)
- chore: stop using go-homedir (#10568) (ipfs/kubo#10568)
- fix(autotls): store certificates at the location from the repo path (#10566) (ipfs/kubo#10566)
- chore: 0.32.0-rc1
- docs(autotls): add note about separate port use (#10562) (ipfs/kubo#10562)
- feat(AutoTLS): opt-in WSS certs from p2p-forge at libp2p.direct (#10521) (ipfs/kubo#10521)
- chore: upgrade to boxo v0.24.2 (#10559) (ipfs/kubo#10559)
- refactor: update to go-libp2p v0.37.0 (#10554) (ipfs/kubo#10554)
- docs(config): explain what multiaddr is
- chore: update dependencies (#10548) (ipfs/kubo#10548)
- chore: update test dependencies (#10555) (ipfs/kubo#10555)
- chore(ci): adjust verbosity
- chore(ci): verbose build of test/bin deps
- chore(ci): build docker images for staging branch
- Create Changelog: v0.32 (ipfs/kubo#10546)
- Merge release v0.31.0 (ipfs/kubo#10545)
- chore: update RELEASE_CHECKLIST.md (#10544) (ipfs/kubo#10544)
- feat: ipfs-webui v4.3.3 (#10543) (ipfs/kubo#10543)
- chore: update RELEASE_CHECKLIST.md (#10542) (ipfs/kubo#10542)
- Add full changelog to release changelog
- fix: go 1.23(.2) (#10540) (ipfs/kubo#10540)
- chore: bump version to 0.32.0-dev
- github.com/ipfs/boxo (v0.24.0 -> v0.24.3):
- Release v0.24.3 (ipfs/boxo#713)
- Merge branch 'main' into release
- Release v0.24.2 (ipfs/boxo#707)
- Release v0.24.1 (ipfs/boxo#706)
- github.com/ipfs/go-ipfs-cmds (v0.13.0 -> v0.14.0):
- chore: release v0.14.0 (#269) (ipfs/go-ipfs-cmds#269)
- github.com/ipfs/go-ipfs-redirects-file (v0.1.1 -> v0.1.2):
- chore: v0.1.2 (#29) (ipfs/go-ipfs-redirects-file#29)
- docs(readme): refer specs and ipip
- chore: update dependencies (#28) (ipfs/go-ipfs-redirects-file#28)
- github.com/ipfs/go-metrics-prometheus (v0.0.2 -> v0.0.3):
- chore: release v0.0.3 (#24) (ipfs/go-metrics-prometheus#24)
- chore: update deps and update go-log to v2 (#23) (ipfs/go-metrics-prometheus#23)
- sync: update CI config files (#9) (ipfs/go-metrics-prometheus#9)
- github.com/ipfs/go-unixfsnode (v1.9.1 -> v1.9.2):
- New release version (ipfs/go-unixfsnode#78)
- chore: update dependencies
- github.com/libp2p/go-flow-metrics (v0.1.0 -> v0.2.0):
- chore: release v0.2.0 (#33) (libp2p/go-flow-metrics#33)
- chore: cleanup readme (#31) (libp2p/go-flow-metrics#31)
- ci: uci/update-go (libp2p/go-flow-metrics#27)
- fix(ewma): reduce the chances of fake bandwidth spikes (#8) (libp2p/go-flow-metrics#8)
- chore: switch to typed atomics (#24) (libp2p/go-flow-metrics#24)
- test: use mock clocks for all tests (#25) (libp2p/go-flow-metrics#25)
- ci: uci/copy-templates (libp2p/go-flow-metrics#21)
- github.com/libp2p/go-libp2p (v0.36.5 -> v0.37.0):
- Release v0.37.0 (#3013) (libp2p/go-libp2p#3013)
- feat: Add WithFxOption (#2956) (libp2p/go-libp2p#2956)
- chore: update imports to use slices package (#3007) (libp2p/go-libp2p#3007)
- Change latency metrics buckets (#3012) (libp2p/go-libp2p#3012)
- chore: bump deps in preparation for v0.37.0 (#3011) (libp2p/go-libp2p#3011)
- autonat: fix interaction with autorelay (#2967) ([libp2p/go-libp2p#2967](h...
v0.32.0
Warning
If you depend on Routing.AcceleratedDHTClient=true
this release contains a regression where accelerated client does not crawl the network correctly and the regular one is used instead as a fallback, making announcements slower than expected.
The fix for Routing.AcceleratedDHTClient=true
is in v0.32.1.
If you don't use Routing.AcceleratedDHTClient=true
, this release is perfectly fine to use as-is.
This release was brought to you by the Shipyard team.
Overview
Release v0.32.0 issue #10547
🗣 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: Automatic Certificates for libp2p WebSockets via libp2p.direct
This release introduces an experimental feature that significantly improves how browsers (Helia, Service Worker) can connect to Kubo node.
Opt-in configuration allows a publicly dialable Kubo nodes (public IP, port forwarding, or NAT with uPnP) to obtain CA-signed TLS certificates for libp2p Secure WebSocket (WSS) connections automatically.
Tip
To enable this feature, set AutoTLS.Enabled
to true
and add a listener for /tls/sni/*.libp2p.direct/ws
on a separate TCP port:
{
+ "AutoTLS": { "Enabled": true },
"Addresses": {
"Swarm": {
"/ip4/0.0.0.0/tcp/4001",
+ "/ip4/0.0.0.0/tcp/4002/tls/sni/*.libp2p.direct/ws",
"/ip6/::/tcp/4001",
+ "/ip6/::/tcp/4002/tls/sni/*.libp2p.direct/ws",
After restarting your node for the first time you may need to wait 5-15 minutes to pass all checks and for the changes to take effect.
We are working on sharing the same TCP port with other transports (go-libp2p#2984).
See AutoTLS
configuration for more details how to enable it and what to expect.
This is an early preview, we appreciate you testing and filling bug reports or feedback in the tracking issue at kubo#10560.
📦️ Dependency updates
- update
ipfs-webui
to v4.4.0 - update
boxo
to v0.24.1 + v0.24.2 + v0.24.3- This includes a number of fixes and bitswap improvements, and support for filtering from IPIP-484 in delegated HTTP routing and IPNI queries.
- update
go-libp2p
to v0.37.0- This update required removal of
Swarm.RelayService.MaxReservationsPerPeer
configuration option from Kubo. If you had it set, remove it from your configuration file.
- This update required removal of
- update
go-libp2p-kad-dht
to v0.27.0 + v0.28.0 - update
go-libp2p-pubsub
to v0.12.0 - update
p2p-forge/client
to v0.0.2 - removed
go-homedir
- The
github.com/mitchellh/go-homedir
repo is archived, no longer needed, and no longer maintained. homedir.Dir
is replaced by the stdlibos.UserHomeDir
homedir.Expand
is replaced byfsutil.ExpandHome
in thegithub.com/ipfs/kubo/misc/fsutil
package.- The new
github.com/ipfs/kubo/misc/fsutil
package contains file utility code previously located elsewhere in kubo.
- The
📝 Changelog
Full Changelog
- github.com/ipfs/kubo:
- chore: 0.32.0
- fix: go-libp2p-kad-dht v0.28.0 (#10578) (ipfs/kubo#10578)
- chore: 0.32.0-rc2
- feat: ipfs-webui v4.4.0 (#10574) (ipfs/kubo#10574)
- chore: label implicit loggers
- chore: boxo v0.24.3 and p2p-forge v0.0.2 (#10572) (ipfs/kubo#10572)
- chore: stop using go-homedir (#10568) (ipfs/kubo#10568)
- fix(autotls): store certificates at the location from the repo path (#10566) (ipfs/kubo#10566)
- chore: 0.32.0-rc1
- docs(autotls): add note about separate port use (#10562) (ipfs/kubo#10562)
- feat(AutoTLS): opt-in WSS certs from p2p-forge at libp2p.direct (#10521) (ipfs/kubo#10521)
- chore: upgrade to boxo v0.24.2 (#10559) (ipfs/kubo#10559)
- refactor: update to go-libp2p v0.37.0 (#10554) (ipfs/kubo#10554)
- docs(config): explain what multiaddr is
- chore: update dependencies (#10548) (ipfs/kubo#10548)
- chore: update test dependencies (#10555) (ipfs/kubo#10555)
- chore(ci): adjust verbosity
- chore(ci): verbose build of test/bin deps
- chore(ci): build docker images for staging branch
- Create Changelog: v0.32 (ipfs/kubo#10546)
- Merge release v0.31.0 (ipfs/kubo#10545)
- chore: update RELEASE_CHECKLIST.md (#10544) (ipfs/kubo#10544)
- feat: ipfs-webui v4.3.3 (#10543) (ipfs/kubo#10543)
- chore: update RELEASE_CHECKLIST.md (#10542) (ipfs/kubo#10542)
- Add full changelog to release changelog
- fix: go 1.23(.2) (#10540) (ipfs/kubo#10540)
- chore: bump version to 0.32.0-dev
- github.com/ipfs/boxo (v0.24.0 -> v0.24.3):
- Release v0.24.3 (ipfs/boxo#713)
- Merge branch 'main' into release
- Release v0.24.2 (ipfs/boxo#707)
- Release v0.24.1 (ipfs/boxo#706)
- github.com/ipfs/go-ipfs-cmds (v0.13.0 -> v0.14.0):
- chore: release v0.14.0 (#269) (ipfs/go-ipfs-cmds#269)
- github.com/ipfs/go-ipfs-redirects-file (v0.1.1 -> v0.1.2):
- chore: v0.1.2 (#29) (ipfs/go-ipfs-redirects-file#29)
- docs(readme): refer specs and ipip
- chore: update dependencies (#28) (ipfs/go-ipfs-redirects-file#28)
- github.com/ipfs/go-metrics-prometheus (v0.0.2 -> v0.0.3):
- chore: release v0.0.3 (#24) (ipfs/go-metrics-prometheus#24)
- chore: update deps and update go-log to v2 (#23) (ipfs/go-metrics-prometheus#23)
- sync: update CI config files (#9) (ipfs/go-metrics-prometheus#9)
- github.com/ipfs/go-unixfsnode (v1.9.1 -> v1.9.2):
- New release version (ipfs/go-unixfsnode#78)
- chore: update dependencies
- github.com/libp2p/go-flow-metrics (v0.1.0 -> v0.2.0):
- chore: release v0.2.0 (#33) (libp2p/go-flow-metrics#33)
- chore: cleanup readme (#31) (libp2p/go-flow-metrics#31)
- ci: uci/update-go (libp2p/go-flow-metrics#27)
- fix(ewma): reduce the chances of fake bandwidth spikes (#8) (libp2p/go-flow-metrics#8)
- chore: switch to typed atomics (#24) (libp2p/go-flow-metrics#24)
- test: use mock clocks for all tests (#25) (libp2p/go-flow-metrics#25)
- ci: uci/copy-templates (libp2p/go-flow-metrics#21)
- github.com/libp2p/go-libp2p (v0.36.5 -> v0.37.0):
- Release v0.37.0 (#3013) (libp2p/go-libp2p#3013)
- feat: Add WithFxOption (#2956) (libp2p/go-libp2p#2956)
- chore: update imports to use slices package (#3007) (libp2p/go-libp2p#3007)
- Change latency metrics buckets (#3012) ([libp2p/go-libp2p#3012](https://github.com/libp2p/go-lib...
v0.32.0-rc2
See the related issue: #10547
And the draft changelog: docs/changelogs/v0.32.md
If you are brave, consider enabling AutoTLS
and provide feedback.
v0.32.0-rc1
See the related issue: #10547
And the draft changelog: docs/changelogs/v0.32.md
If you are brave, consider enabling AutoTLS
and provide feedback.
v0.31.0
This release was brought to you by the Shipyard team.
Overview
Release v0.31.0 issue #10499
🗣 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
Experimental Pebble Datastore
Pebble visits Kubo
Pebble provides a high-performance alternative to leveldb as the datastore, and provides a modern replacement for legacy badgerv1.
A fresh Kubo node can be initialized with pebbleds
profile via ipfs init --profile pebbleds
.
There are a number of parameters available for tuning pebble's performance to your specific needs. Default values are used for any parameters that are not configured or are set to their zero-value.
For a description of the available tuning parameters, see kubo/docs/datastores.md#pebbleds.
New metrics
- Added 3 new go metrics:
go_gc_gogc_percent
,go_gc_gomemlimit_bytes
andgo_sched_gomaxprocs_threads
as those are recommended by the Go team - Added network usage metrics:
process_network_receive_bytes_total
andprocess_network_transmit_bytes_total
- Removed
go_memstat_lookups_total
metric which was always 0
lowpower
profile no longer breaks DHT announcements
We've notices users were applying lowpower
profile, and then reporting content routing issues. This was because lowpower
disabled reprovider system and locally hosted data was no longer announced on Amino DHT.
This release changes lowpower
profile to not change reprovider settings, ensuring the new users are not sabotaging themselves. It also adds annouce-on
and announce-off
profiles for controlling announcement settings separately.
Important
If you've ever applied the lowpower
profile before, there is a high chance your node is not announcing to DHT anymore.
If you have Reprovider.Interval
set to 0
you may want to set it to 22h
(or run ipfs config profile apply announce-on
) to fix your system.
As a convenience, ipfs daemon
will warn if reprovide system is disabled, creating oportinity to fix configuration if it was not intentional.
go 1.23, boxo 0.24 and go-libp2p 0.36.5
Various bugfixes. Please update.
📝 Changelog
Full Changelog
- github.com/ipfs/kubo:
- fix: go 1.23(.2) (#10540) (ipfs/kubo#10540)
- chore: bump version to 0.32.0-dev
- feat(routing/http): support IPIP-484 and streaming (#10534) (ipfs/kubo#10534)
- fix(daemon): webui URL when rpc is catch-all (#10520) (ipfs/kubo#10520)
- chore: update changelog and config doc with more info about pebble (#10533) (ipfs/kubo#10533)
- feat: pebbleds profile and plugin (#10530) (ipfs/kubo#10530)
- chore: dependency updates for 0.31 (#10511) (ipfs/kubo#10511)
- feat: explicit announce-on/off profiles (#10524) (ipfs/kubo#10524)
- fix(core): look for MFS root in local repo only (#8661) (ipfs/kubo#8661)
- Fix issue in ResourceManager and nopfsPlugin about repo path (#10492) (ipfs/kubo#10492)
- feat(bitswap): allow configuring WithWantHaveReplaceSize (#10512) (ipfs/kubo#10512)
- refactor: simplify logic for MFS pinning (#10506) (ipfs/kubo#10506)
- docs: clarify Gateway.PublicGateways (#10525) (ipfs/kubo#10525)
- chore: clarify dep update in RELEASE_CHECKLIST.md (#10518) (ipfs/kubo#10518)
- feat: ipfs-webui v4.3.2 (#10523) (ipfs/kubo#10523)
- docs(config): add useful references
- docs(config): improve profile descriptions (#10517) (ipfs/kubo#10517)
- docs: update RELEASE_CHECKLIST.md (#10496) (ipfs/kubo#10496)
- chore: create next changelog (#10510) (ipfs/kubo#10510)
- Merge Release: v0.30.0 [skip changelog] (ipfs/kubo#10508)
- chore: boxo v0.23.0 and go-libp2p v0.36.3 (#10507) (ipfs/kubo#10507)
- docs: replace outdated package paths described in rpc README (#10505) (ipfs/kubo#10505)
- fix: switch back to go 1.22 (#10502) (ipfs/kubo#10502)
- fix(cli): preserve hostname specified with --api in http request headers (#10497) (ipfs/kubo#10497)
- chore: upgrade to go 1.23 (#10486) (ipfs/kubo#10486)
- fix: error during config when running benchmarks (#10495) (ipfs/kubo#10495)
- chore: update go-unixfsnode, cmds, and boxo (#10494) (ipfs/kubo#10494)
- Docs fix spelling issues (#10493) (ipfs/kubo#10493)
- chore: update version (#10491) (ipfs/kubo#10491)
- github.com/ipfs/boxo (v0.23.0 -> v0.24.0):
- Release v0.24.0 (ipfs/boxo#683)
- github.com/ipfs/go-ipld-cbor (v0.1.0 -> v0.2.0):
- v0.2.0
- deprecate DumpObject() in favor of better named Encode()
- add an EncodeWriter method, using the pooled marshallers
- fix expCid vs actualCid guard
- github.com/ipld/go-car/v2 (v2.13.1 -> v2.14.2):
- v2.14.2 bump
- fix: goreleaser v2 compat, trigger release-binaries with workflow_run
- v2.14.1 bump
- chore: update fuzz to Go 1.22
- v2.14.0 bump
- fix(cmd): properly pick up --inverse and --cid-file args (ipld/go-car#531)
- Re-factor cmd functions to library (ipld/go-car#524)
- ci: uci/copy-templates (ipld/go-car#521)
- Add a
car ls --unixfs-blocks
to render two-column output (ipld/go-car#514)
- github.com/libp2p/go-libp2p (v0.36.3 -> v0.36.5):
- chore: remove Roadmap file (#2954) (libp2p/go-libp2p#2954)
- fix: Release v0.36.5
- autonatv2: recover from panics (#2992) (libp2p/go-libp2p#2992)
- basichost: ensure no duplicates in Addrs output (#2980) (libp2p/go-libp2p#2980)
- Release v0.36.4
- peerstore: better GC in membacked peerstore (#2960) (libp2p/go-libp2p#2960)
- fix: use quic.Version instead of the deprecated quic.VersionNumber (#2955) (libp2p/go-libp2p#2955)
- tcp: fix metrics for multiple calls to Close (#2953) (libp2p/go-libp2p#2953)
- github.com/libp2p/go-libp2p-kbucket (v0.6.3 -> v0.6.4):
- release v0.6.4 (libp2p/go-libp2p-kbucket#135)
- feat: add log printing when peer added and removed table (libp2p/go-libp2p-kbucket#134)
- Upgrade to go-log v2.5.1 (libp2p/go-libp2p-kbucket#132)
- chore: update go-libp2p-asn-util
- github.com/multiformats/go-multiaddr-dns (v0.3.1 -> v0.4.0):
- Release v0.4.0 (#64) (multiformats/go-multiaddr-dns#64)
- Limit total number of resolved addresses from DNS response (#63) (multiformats/go-multiaddr-dns#63)
- fix!: Only resolve the first DNS-like component (#61) (multiformats/go-multiaddr-dns#61)
- ...
v0.31.0-rc2
This second RC includes go-libp2p v0.36.5 and go 1.23.2 bugfixes.
Changelog: docs/changelogs/v0.31.md
Provide feedback in: https://discuss.ipfs.tech/t/kubo-v0-31-0-rc2-is-out/18592/
v0.31.0-rc1
See the related issue: #10499
And the draft changelog: docs/changelogs/v0.31.md