[!NOTE] This release was brought to you by the Shipyard team.
Overview
Kubo 0.38.2 is a quick patch release that improves retrieval, traces and memory usage.
🔦 Highlights
- Updates boxo v0.35.1 with bitswap and HTTP retrieval fixes:
- Fixed bitswap trace context not being passed to sessions, restoring observability for monitoring tools
- Kubo now fetches from HTTP gateways that return errors in legacy IPLD format, improving compatibility with older providers
- Better handling of rate-limited HTTP endpoints and clearer timeout error messages
- Updates go-libp2p-kad-dht v0.35.1 with memory optimizations for nodes using
Provide.DHT.SweepEnabled=true - Updates quic-go v0.55.0 to fix memory pooling where stream frames weren't returned to the pool on cancellation
For full release notes of 0.38, see 0.38.1.
📝 Changelog
Full Changelog
- github.com/ipfs/kubo: - chore: boxo and kad-dht updates - fix: update quic-go to v0.55.0 - github.com/ipfs/boxo (v0.35.0 -> v0.35.1): - Release v0.35.1 ([[ipfs/boxo#1063](https://github.com/ipfs/boxo/issues/1063)](https://github.com/ipfs/boxo/pull/1063)) - bitswap/httpnet: improve "Connect"/testCid check (#1057) ([[ipfs/boxo#1057](https://github.com/ipfs/boxo/issues/1057)](https://github.com/ipfs/boxo/pull/1057)) - fix: revert go-libp2p to v0.43.0 (#1061) ([[ipfs/boxo#1061](https://github.com/ipfs/boxo/issues/1061)](https://github.com/ipfs/boxo/pull/1061)) - bitswap/client: propagate trace state when calling `GetBlocks` ([[ipfs/boxo#1060](https://github.com/ipfs/boxo/issues/1060)](https://github.com/ipfs/boxo/pull/1060)) - fix(tracing): use context to pass trace and retrieval state to session ([[ipfs/boxo#1059](https://github.com/ipfs/boxo/issues/1059)](https://github.com/ipfs/boxo/pull/1059)) - bitswap: link traces ([[ipfs/boxo#1053](https://github.com/ipfs/boxo/issues/1053)](https://github.com/ipfs/boxo/pull/1053)) - fix(gateway): deduplicate peer IDs in retrieval diagnostics (#1058) ([[ipfs/boxo#1058](https://github.com/ipfs/boxo/issues/1058)](https://github.com/ipfs/boxo/pull/1058)) - update go-dsqueue to v0.1.0 ([[ipfs/boxo#1049](https://github.com/ipfs/boxo/issues/1049)](https://github.com/ipfs/boxo/pull/1049)) - Update go-libp2p to v0.44 ([[ipfs/boxo#1048](https://github.com/ipfs/boxo/issues/1048)](https://github.com/ipfs/boxo/pull/1048)) - github.com/ipfs/go-dsqueue (v0.0.5 -> v0.1.0): - new version (#24) ([[ipfs/go-dsqueue#24](https://github.com/ipfs/go-dsqueue/issues/24)](https://github.com/ipfs/go-dsqueue/pull/24)) - Do not reuse datastore Batch (#23) ([[ipfs/go-dsqueue#23](https://github.com/ipfs/go-dsqueue/issues/23)](https://github.com/ipfs/go-dsqueue/pull/23)) - github.com/ipfs/go-log/v2 (v2.8.1 -> v2.8.2): - new version (#175) ([[ipfs/go-log#175](https://github.com/ipfs/go-log/issues/175)](https://github.com/ipfs/go-log/pull/175)) - fix: revert removal of LevelFromString to avoid breaking change (#174) ([[ipfs/go-log#174](https://github.com/ipfs/go-log/issues/174)](https://github.com/ipfs/go-log/pull/174)) - github.com/ipld/go-car/v2 (v2.15.0 -> v2.16.0): - v2.16.0 bump (#625) ([[ipld/go-car#625](https://github.com/ipld/go-car/issues/625)](https://github.com/ipld/go-car/pull/625)) - github.com/ipld/go-ipld-prime/storage/bsadapter (v0.0.0-20230102063945-1a409dc236dd -> v0.0.0-20250821084354-a425e60cd714): - github.com/libp2p/go-libp2p-kad-dht (v0.35.0 -> v0.35.1): - chore: release v0.35.1 (#1165) ([[libp2p/go-libp2p-kad-dht#1165](https://github.com/libp2p/go-libp2p-kad-dht/issues/1165)](https://github.com/libp2p/go-libp2p-kad-dht/pull/1165)) - feat(provider): use Trie.AddMany (#1164) ([[libp2p/go-libp2p-kad-dht#1164](https://github.com/libp2p/go-libp2p-kad-dht/issues/1164)](https://github.com/libp2p/go-libp2p-kad-dht/pull/1164)) - fix(provider): memory usage (#1163) ([[libp2p/go-libp2p-kad-dht#1163](https://github.com/libp2p/go-libp2p-kad-dht/issues/1163)](https://github.com/libp2p/go-libp2p-kad-dht/pull/1163)) - github.com/libp2p/go-netroute (v0.2.2 -> v0.3.0): - release v0.3.0 - remove google/gopacket dependency - Query routes via routesocket ([[libp2p/go-netroute#57](https://github.com/libp2p/go-netroute/issues/57)](https://github.com/libp2p/go-netroute/pull/57)) - ci: uci/update-go (#52) ([[libp2p/go-netroute#52](https://github.com/libp2p/go-netroute/issues/52)](https://github.com/libp2p/go-netroute/pull/52)) - github.com/multiformats/go-multicodec (v0.9.2 -> v0.10.0): - chore: v0.10.0 bump - chore: update submodules and go generate - chore(deps): update stringer to v0.38.0 - ci: uci/update-go ([[multiformats/go-multicodec#104](https://github.com/multiformats/go-multicodec/issues/104)](https://github.com/multiformats/go-multicodec/pull/104))👨👩👧👦 Contributors
| Contributor | Commits | Lines ± | Files Changed |
|---|---|---|---|
| rvagg | 1 | +537/-481 | 3 |
| Carlos Hernandez | 9 | +556/-218 | 11 |
| Guillaume Michel | 3 | +139/-105 | 6 |
| gammazero | 8 | +101/-97 | 14 |
| Hector Sanjuan | 1 | +87/-28 | 5 |
| Marcin Rataj | 4 | +57/-9 | 7 |
| Marco Munizaga | 2 | +42/-14 | 7 |
| Dennis Trautwein | 2 | +19/-7 | 7 |
| Andrew Gillis | 3 | +3/-19 | 3 |
| Rod Vagg | 4 | +12/-3 | 4 |
| web3-bot | 1 | +2/-1 | 1 |
| galargh | 1 | +1/-1 | 1 |