mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-21 10:27:46 +08:00
Some checks are pending
CodeQL / codeql (push) Waiting to run
Docker Build / docker-build (push) Waiting to run
Gateway Conformance / gateway-conformance (push) Waiting to run
Gateway Conformance / gateway-conformance-libp2p-experiment (push) Waiting to run
Go Build / go-build (push) Waiting to run
Go Check / go-check (push) Waiting to run
Go Lint / go-lint (push) Waiting to run
Go Test / go-test (push) Waiting to run
Interop / interop-prep (push) Waiting to run
Interop / helia-interop (push) Blocked by required conditions
Interop / ipfs-webui (push) Blocked by required conditions
Sharness / sharness-test (push) Waiting to run
208 lines
16 KiB
Markdown
208 lines
16 KiB
Markdown
# Kubo changelog v0.32
|
|
|
|
- [v0.32.0](#v0320)
|
|
|
|
## v0.32.0
|
|
|
|
- [Overview](#overview)
|
|
- [🔦 Highlights](#-highlights)
|
|
- [🎯 AutoTLS: Automatic Certificates for libp2p WebSockets via `libp2p.direct`](#-autotls-automatic-certificates-for-libp2p-websockets-via-libp2pdirect)
|
|
- [📦️ Dependency updates](#-dependency-updates)
|
|
- [📝 Changelog](#-changelog)
|
|
- [👨👩👧👦 Contributors](#-contributors)
|
|
|
|
### Overview
|
|
|
|
### 🔦 Highlights
|
|
|
|
#### 🎯 AutoTLS: Automatic Certificates for libp2p WebSockets via `libp2p.direct`
|
|
|
|
<img src="https://github.com/user-attachments/assets/51af045b-eff7-414f-b52b-0d1f222d74a3" width="300px" />
|
|
|
|
This release introduces an experimental feature that significantly improves how browsers ([Helia](https://helia.io/), [Service Worker](https://inbrowser.link)) 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)](https://github.com/libp2p/specs/blob/master/websockets/README.md) 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:
|
|
> ```diff
|
|
> {
|
|
> + "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](https://github.com/libp2p/go-libp2p/pull/2984)).
|
|
|
|
See [`AutoTLS` configuration](https://github.com/ipfs/kubo/blob/master/docs/config.md#autotls) 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](https://github.com/ipfs/kubo/issues/10560).
|
|
|
|
#### 📦️ Dependency updates
|
|
|
|
- update `ipfs-webui` to [v4.4.0](https://github.com/ipfs/ipfs-webui/releases/tag/v4.4.0)
|
|
- update `boxo` to [v0.24.1](https://github.com/ipfs/boxo/releases/tag/v0.24.1) + [v0.24.2](https://github.com/ipfs/boxo/releases/tag/v0.24.2) + [v0.24.3](https://github.com/ipfs/boxo/releases/tag/v0.24.3)
|
|
- This includes a number of fixes and bitswap improvements, and support for filtering from [IPIP-484](https://specs.ipfs.tech/ipips/ipip-0484/) in delegated HTTP routing and IPNI queries.
|
|
- update `go-libp2p` to [v0.37.0](https://github.com/libp2p/go-libp2p/releases/tag/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.
|
|
- update `go-libp2p-kad-dht` to [v0.27.0](https://github.com/libp2p/go-libp2p-kad-dht/releases/tag/v0.27.0) + [v0.28.0](https://github.com/libp2p/go-libp2p-kad-dht/releases/tag/v0.28.0) + [v0.28.1](https://github.com/libp2p/go-libp2p-kad-dht/releases/tag/v0.28.1)
|
|
- update `go-libp2p-pubsub` to [v0.12.0](https://github.com/libp2p/go-libp2p-pubsub/releases/tag/v0.12.0)
|
|
- update `p2p-forge/client` to [v0.0.2](https://github.com/ipshipyard/p2p-forge/releases/tag/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 stdlib `os.UserHomeDir`
|
|
- `homedir.Expand` is replaced by `fsutil.ExpandHome` in the `github.com/ipfs/kubo/misc/fsutil` package.
|
|
- The new `github.com/ipfs/kubo/misc/fsutil` package contains file utility code previously located elsewhere in kubo.
|
|
|
|
### 📝 Changelog
|
|
|
|
<details><summary>Full Changelog</summary>
|
|
|
|
- github.com/ipfs/kubo:
|
|
- chore: 0.32.0
|
|
- fix: go-libp2p-kad-dht v0.28.0 (#10578) ([ipfs/kubo#10578](https://github.com/ipfs/kubo/pull/10578))
|
|
- chore: 0.32.0-rc2
|
|
- feat: ipfs-webui v4.4.0 (#10574) ([ipfs/kubo#10574](https://github.com/ipfs/kubo/pull/10574))
|
|
- chore: label implicit loggers
|
|
- chore: boxo v0.24.3 and p2p-forge v0.0.2 (#10572) ([ipfs/kubo#10572](https://github.com/ipfs/kubo/pull/10572))
|
|
- chore: stop using go-homedir (#10568) ([ipfs/kubo#10568](https://github.com/ipfs/kubo/pull/10568))
|
|
- fix(autotls): store certificates at the location from the repo path (#10566) ([ipfs/kubo#10566](https://github.com/ipfs/kubo/pull/10566))
|
|
- chore: 0.32.0-rc1
|
|
- docs(autotls): add note about separate port use (#10562) ([ipfs/kubo#10562](https://github.com/ipfs/kubo/pull/10562))
|
|
- feat(AutoTLS): opt-in WSS certs from p2p-forge at libp2p.direct (#10521) ([ipfs/kubo#10521](https://github.com/ipfs/kubo/pull/10521))
|
|
- chore: upgrade to boxo v0.24.2 (#10559) ([ipfs/kubo#10559](https://github.com/ipfs/kubo/pull/10559))
|
|
- refactor: update to go-libp2p v0.37.0 (#10554) ([ipfs/kubo#10554](https://github.com/ipfs/kubo/pull/10554))
|
|
- docs(config): explain what multiaddr is
|
|
- chore: update dependencies (#10548) ([ipfs/kubo#10548](https://github.com/ipfs/kubo/pull/10548))
|
|
- chore: update test dependencies (#10555) ([ipfs/kubo#10555](https://github.com/ipfs/kubo/pull/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](https://github.com/ipfs/kubo/pull/10546))
|
|
- Merge release v0.31.0 ([ipfs/kubo#10545](https://github.com/ipfs/kubo/pull/10545))
|
|
- chore: update RELEASE_CHECKLIST.md (#10544) ([ipfs/kubo#10544](https://github.com/ipfs/kubo/pull/10544))
|
|
- feat: ipfs-webui v4.3.3 (#10543) ([ipfs/kubo#10543](https://github.com/ipfs/kubo/pull/10543))
|
|
- chore: update RELEASE_CHECKLIST.md (#10542) ([ipfs/kubo#10542](https://github.com/ipfs/kubo/pull/10542))
|
|
- Add full changelog to release changelog
|
|
- fix: go 1.23(.2) (#10540) ([ipfs/kubo#10540](https://github.com/ipfs/kubo/pull/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](https://github.com/ipfs/boxo/pull/713))
|
|
- Merge branch 'main' into release
|
|
- Release v0.24.2 ([ipfs/boxo#707](https://github.com/ipfs/boxo/pull/707))
|
|
- Release v0.24.1 ([ipfs/boxo#706](https://github.com/ipfs/boxo/pull/706))
|
|
- github.com/ipfs/go-ipfs-cmds (v0.13.0 -> v0.14.0):
|
|
- chore: release v0.14.0 (#269) ([ipfs/go-ipfs-cmds#269](https://github.com/ipfs/go-ipfs-cmds/pull/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](https://github.com/ipfs/go-ipfs-redirects-file/pull/29))
|
|
- docs(readme): refer specs and ipip
|
|
- chore: update dependencies (#28) ([ipfs/go-ipfs-redirects-file#28](https://github.com/ipfs/go-ipfs-redirects-file/pull/28))
|
|
- github.com/ipfs/go-metrics-prometheus (v0.0.2 -> v0.0.3):
|
|
- chore: release v0.0.3 (#24) ([ipfs/go-metrics-prometheus#24](https://github.com/ipfs/go-metrics-prometheus/pull/24))
|
|
- chore: update deps and update go-log to v2 (#23) ([ipfs/go-metrics-prometheus#23](https://github.com/ipfs/go-metrics-prometheus/pull/23))
|
|
- sync: update CI config files (#9) ([ipfs/go-metrics-prometheus#9](https://github.com/ipfs/go-metrics-prometheus/pull/9))
|
|
- github.com/ipfs/go-unixfsnode (v1.9.1 -> v1.9.2):
|
|
- New release version ([ipfs/go-unixfsnode#78](https://github.com/ipfs/go-unixfsnode/pull/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](https://github.com/libp2p/go-flow-metrics/pull/33))
|
|
- chore: cleanup readme (#31) ([libp2p/go-flow-metrics#31](https://github.com/libp2p/go-flow-metrics/pull/31))
|
|
- ci: uci/update-go ([libp2p/go-flow-metrics#27](https://github.com/libp2p/go-flow-metrics/pull/27))
|
|
- fix(ewma): reduce the chances of fake bandwidth spikes (#8) ([libp2p/go-flow-metrics#8](https://github.com/libp2p/go-flow-metrics/pull/8))
|
|
- chore: switch to typed atomics (#24) ([libp2p/go-flow-metrics#24](https://github.com/libp2p/go-flow-metrics/pull/24))
|
|
- test: use mock clocks for all tests (#25) ([libp2p/go-flow-metrics#25](https://github.com/libp2p/go-flow-metrics/pull/25))
|
|
- ci: uci/copy-templates ([libp2p/go-flow-metrics#21](https://github.com/libp2p/go-flow-metrics/pull/21))
|
|
- github.com/libp2p/go-libp2p (v0.36.5 -> v0.37.0):
|
|
- Release v0.37.0 (#3013) ([libp2p/go-libp2p#3013](https://github.com/libp2p/go-libp2p/pull/3013))
|
|
- feat: Add WithFxOption (#2956) ([libp2p/go-libp2p#2956](https://github.com/libp2p/go-libp2p/pull/2956))
|
|
- chore: update imports to use slices package (#3007) ([libp2p/go-libp2p#3007](https://github.com/libp2p/go-libp2p/pull/3007))
|
|
- Change latency metrics buckets (#3012) ([libp2p/go-libp2p#3012](https://github.com/libp2p/go-libp2p/pull/3012))
|
|
- chore: bump deps in preparation for v0.37.0 (#3011) ([libp2p/go-libp2p#3011](https://github.com/libp2p/go-libp2p/pull/3011))
|
|
- autonat: fix interaction with autorelay (#2967) ([libp2p/go-libp2p#2967](https://github.com/libp2p/go-libp2p/pull/2967))
|
|
- swarm: add a peer dial latency metric (#2959) ([libp2p/go-libp2p#2959](https://github.com/libp2p/go-libp2p/pull/2959))
|
|
- peerstore: limit number of non connected peers in addrbook (#2971) ([libp2p/go-libp2p#2971](https://github.com/libp2p/go-libp2p/pull/2971))
|
|
- fix: swarm: refactor address resolution (#2990) ([libp2p/go-libp2p#2990](https://github.com/libp2p/go-libp2p/pull/2990))
|
|
- Add backoff for updating local IP addresses on error (#2999) ([libp2p/go-libp2p#2999](https://github.com/libp2p/go-libp2p/pull/2999))
|
|
- libp2phttp: HTTP Peer ID Authentication (#2854) ([libp2p/go-libp2p#2854](https://github.com/libp2p/go-libp2p/pull/2854))
|
|
- relay: make only 1 reservation per peer (#2974) ([libp2p/go-libp2p#2974](https://github.com/libp2p/go-libp2p/pull/2974))
|
|
- autonatv2: recover from panics (#2992) ([libp2p/go-libp2p#2992](https://github.com/libp2p/go-libp2p/pull/2992))
|
|
- basichost: ensure no duplicates in Addrs output (#2980) ([libp2p/go-libp2p#2980](https://github.com/libp2p/go-libp2p/pull/2980))
|
|
- fix(websocket): re-enable websocket transport test (#2987) ([libp2p/go-libp2p#2987](https://github.com/libp2p/go-libp2p/pull/2987))
|
|
- feat(websocket): switch the underlying http server logger to use ipfs/go-log (#2985) ([libp2p/go-libp2p#2985](https://github.com/libp2p/go-libp2p/pull/2985))
|
|
- peerstore: better GC in membacked peerstore (#2960) ([libp2p/go-libp2p#2960](https://github.com/libp2p/go-libp2p/pull/2960))
|
|
- connmgr: reduce log level for untagging untracked peers ([libp2p/go-libp2p#2961](https://github.com/libp2p/go-libp2p/pull/2961))
|
|
- fix: use quic.Version instead of the deprecated quic.VersionNumber (#2955) ([libp2p/go-libp2p#2955](https://github.com/libp2p/go-libp2p/pull/2955))
|
|
- tcp: fix metrics for multiple calls to Close (#2953) ([libp2p/go-libp2p#2953](https://github.com/libp2p/go-libp2p/pull/2953))
|
|
- chore: remove Roadmap file (#2954) ([libp2p/go-libp2p#2954](https://github.com/libp2p/go-libp2p/pull/2954))
|
|
- chore: add a funding JSON file to apply for Optimism rPGF round 5 (#2940) ([libp2p/go-libp2p#2940](https://github.com/libp2p/go-libp2p/pull/2940))
|
|
- Fix: WebSocket: Clone TLS config before creating a new listener
|
|
- fix: enable dctur when interface address is public (#2931) ([libp2p/go-libp2p#2931](https://github.com/libp2p/go-libp2p/pull/2931))
|
|
- fix: QUIC/Webtransport Transports now will prefer their owned listeners for dialing out (#2936) ([libp2p/go-libp2p#2936](https://github.com/libp2p/go-libp2p/pull/2936))
|
|
- ci: uci/update-go (#2937) ([libp2p/go-libp2p#2937](https://github.com/libp2p/go-libp2p/pull/2937))
|
|
- fix: slice append value (#2938) ([libp2p/go-libp2p#2938](https://github.com/libp2p/go-libp2p/pull/2938))
|
|
- webrtc: wait for listener context before dropping connection (#2932) ([libp2p/go-libp2p#2932](https://github.com/libp2p/go-libp2p/pull/2932))
|
|
- ci: use go1.23, drop go1.21 (#2933) ([libp2p/go-libp2p#2933](https://github.com/libp2p/go-libp2p/pull/2933))
|
|
- Fail on any test timeout (#2929) ([libp2p/go-libp2p#2929](https://github.com/libp2p/go-libp2p/pull/2929))
|
|
- test: Try to fix test timeout (#2930) ([libp2p/go-libp2p#2930](https://github.com/libp2p/go-libp2p/pull/2930))
|
|
- ci: Out of the tarpit (#2923) ([libp2p/go-libp2p#2923](https://github.com/libp2p/go-libp2p/pull/2923))
|
|
- Make BlackHoleState type public (#2917) ([libp2p/go-libp2p#2917](https://github.com/libp2p/go-libp2p/pull/2917))
|
|
- Fix proto import paths (#2920) ([libp2p/go-libp2p#2920](https://github.com/libp2p/go-libp2p/pull/2920))
|
|
- github.com/libp2p/go-libp2p-kad-dht (v0.26.1 -> v0.28.0):
|
|
- chore: release v0.28.0 (#998) ([libp2p/go-libp2p-kad-dht#998](https://github.com/libp2p/go-libp2p-kad-dht/pull/998))
|
|
- fix: set context timeout for `queryPeer` (#996) ([libp2p/go-libp2p-kad-dht#996](https://github.com/libp2p/go-libp2p-kad-dht/pull/996))
|
|
- refactor: document and expose Amino DHT defaults (#990) ([libp2p/go-libp2p-kad-dht#990](https://github.com/libp2p/go-libp2p-kad-dht/pull/990))
|
|
- Use timeout context for NewStream call ([libp2p/go-libp2p-kad-dht#994](https://github.com/libp2p/go-libp2p-kad-dht/pull/994))
|
|
- release v0.27.0 ([libp2p/go-libp2p-kad-dht#992](https://github.com/libp2p/go-libp2p-kad-dht/pull/992))
|
|
- Add new DHT option to provide custom pb.MessageSender ([libp2p/go-libp2p-kad-dht#991](https://github.com/libp2p/go-libp2p-kad-dht/pull/991))
|
|
- fix: replace deprecated Boxo function ([libp2p/go-libp2p-kad-dht#987](https://github.com/libp2p/go-libp2p-kad-dht/pull/987))
|
|
- fix(query): reverting changes on TestRTEvictionOnFailedQuery ([libp2p/go-libp2p-kad-dht#984](https://github.com/libp2p/go-libp2p-kad-dht/pull/984))
|
|
- github.com/libp2p/go-libp2p-pubsub (v0.11.0 -> v0.12.0):
|
|
- chore: upgrade go-libp2p (#575) ([libp2p/go-libp2p-pubsub#575](https://github.com/libp2p/go-libp2p-pubsub/pull/575))
|
|
- GossipSub v1.2: IDONTWANT control message and priority queue. (#553) ([libp2p/go-libp2p-pubsub#553](https://github.com/libp2p/go-libp2p-pubsub/pull/553))
|
|
- Re-enable disabled gossipsub test (#566) ([libp2p/go-libp2p-pubsub#566](https://github.com/libp2p/go-libp2p-pubsub/pull/566))
|
|
- chore: staticcheck
|
|
- chore: update rand usage
|
|
- chore: go fmt
|
|
- chore: add or force update version.json
|
|
- added missing Close call on the AddrBook member of GossipSubRouter (#568) ([libp2p/go-libp2p-pubsub#568](https://github.com/libp2p/go-libp2p-pubsub/pull/568))
|
|
- test: test notify protocols updated (#567) ([libp2p/go-libp2p-pubsub#567](https://github.com/libp2p/go-libp2p-pubsub/pull/567))
|
|
- Switch to the new peer notify mechanism (#564) ([libp2p/go-libp2p-pubsub#564](https://github.com/libp2p/go-libp2p-pubsub/pull/564))
|
|
- test: use the regular libp2p host (#565) ([libp2p/go-libp2p-pubsub#565](https://github.com/libp2p/go-libp2p-pubsub/pull/565))
|
|
- Missing flood protection check for number of message IDs when handling `Ihave` messages (#560) ([libp2p/go-libp2p-pubsub#560](https://github.com/libp2p/go-libp2p-pubsub/pull/560))
|
|
|
|
</details>
|
|
|
|
### 👨👩👧👦 Contributors
|
|
|
|
| Contributor | Commits | Lines ± | Files Changed |
|
|
|-------------|---------|---------|---------------|
|
|
| Marco Munizaga | 16 | +4253/-545 | 81 |
|
|
| Pop Chunhapanya | 1 | +1423/-137 | 15 |
|
|
| sukun | 10 | +752/-425 | 35 |
|
|
| Steven Allen | 11 | +518/-541 | 35 |
|
|
| Andrew Gillis | 19 | +348/-194 | 50 |
|
|
| Marcin Rataj | 26 | +343/-132 | 47 |
|
|
| Adin Schmahmann | 4 | +269/-29 | 12 |
|
|
| gammazero | 12 | +154/-18 | 13 |
|
|
| Josh Klopfenstein | 1 | +90/-35 | 27 |
|
|
| galargh | 3 | +42/-44 | 13 |
|
|
| Daniel Norman | 2 | +30/-16 | 4 |
|
|
| Mikel Cortes | 3 | +25/-4 | 4 |
|
|
| gopherfarm | 1 | +14/-14 | 6 |
|
|
| Carlos Peliciari | 1 | +12/-12 | 4 |
|
|
| Prithvi Shahi | 2 | +5/-11 | 3 |
|
|
| web3-bot | 6 | +12/-3 | 6 |
|
|
| guillaumemichel | 3 | +7/-6 | 3 |
|
|
| Jorropo | 1 | +11/-0 | 1 |
|
|
| Sorin Stanculeanu | 1 | +8/-0 | 1 |
|
|
| Hlib Kanunnikov | 2 | +6/-2 | 4 |
|
|
| André Bierlein | 1 | +4/-3 | 1 |
|
|
| bytetigers | 1 | +1/-1 | 1 |
|
|
| Wondertan | 2 | +2/-0 | 2 |
|
|
| Alexandr Burdiyan | 1 | +1/-1 | 1 |
|
|
| Guillaume Michel | 1 | +0/-1 | 1 |
|