Repository: ipfs/kubo

Issue:
accelerated client includes outdated(?) addrs
### Checklist

- [x] This is a bug report, not a question. Ask questions on [discuss.ipfs.tech](https://discuss.ipfs.tech/c/help/13).
- [x] I have searched on the [issue tracker](https://github.com/ipfs/kubo/issues?q=is%3Aissue) for my bug.
- [x] I am running the latest [kubo version](https://dist.ipfs.tech/#kubo) or have an issue updating.

### Installation method

docker image

### Version

```Text
`master-2025-02-25-baa94fc`
```

### Config

```json
`ipfs config --json Routing.AcceleratedDHTClient true`
```

### Description

Without accelerated client, we get normal address list:

```console
$ ipfs config --json Routing.AcceleratedDHTClient false
$ ipfs id 12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr
{
	"ID": "12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
	"PublicKey": "CAESIGxeQquw1AK8U1WO0yZ/arxyexnOltWE8dac6TgMskKx",
	"Addresses": [
		"/ip4/15.204.207.119/tcp/4001/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/quic-v1/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/quic-v1/webtransport/certhash/uEiCo75ucNddWP2Zv5aSIPOhBWCm3Vss6_UtZGMvf8YONMw/certhash/uEiDNVNf5mOm4WVE37I_6jsGbi50t4FcJ0e46RZYdfQZEmg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiCddN_aPirEORTk0CBePtd44YWo5LZUddpCmFCFir5ZPQ/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/tcp/4001/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/udp/4001/quic-v1/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/udp/4001/quic-v1/webtransport/certhash/uEiCo75ucNddWP2Zv5aSIPOhBWCm3Vss6_UtZGMvf8YONMw/certhash/uEiDNVNf5mOm4WVE37I_6jsGbi50t4FcJ0e46RZYdfQZEmg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/udp/4001/webrtc-direct/certhash/uEiCddN_aPirEORTk0CBePtd44YWo5LZUddpCmFCFir5ZPQ/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr"
	],
	"AgentVersion": "kubo/0.33.2/ad1868a",
	"Protocols": [
		"/ipfs/bitswap",
		"/ipfs/bitswap/1.0.0",
		"/ipfs/bitswap/1.1.0",
		"/ipfs/bitswap/1.2.0",
		"/ipfs/id/1.0.0",
		"/ipfs/id/push/1.0.0",
		"/ipfs/kad/1.0.0",
		"/ipfs/lan/kad/1.0.0",
		"/ipfs/ping/1.0.0",
		"/libp2p/autonat/1.0.0",
		"/libp2p/autonat/2/dial-back",
		"/libp2p/autonat/2/dial-request",
		"/libp2p/circuit/relay/0.2.0/hop",
		"/libp2p/circuit/relay/0.2.0/stop",
		"/libp2p/dcutr",
		"/x/"
	]
}
```

With `ipfs config --json Routing.AcceleratedDHTClient true` identify returns a lot more addrs:

```console
$ ipfs config --json Routing.AcceleratedDHTClient true
$ ipfs id 12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr
{
	"ID": "12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
	"PublicKey": "CAESIGxeQquw1AK8U1WO0yZ/arxyexnOltWE8dac6TgMskKx",
	"Addresses": [
		"/ip4/127.0.0.1/tcp/4001/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/127.0.0.1/udp/4001/quic-v1/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/127.0.0.1/udp/4001/quic-v1/webtransport/certhash/uEiCR2oO032OWT-Y13NdyZj6HgcgtrLv_dKQkeR3mQp6Wpg/certhash/uEiCo75ucNddWP2Zv5aSIPOhBWCm3Vss6_UtZGMvf8YONMw/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/127.0.0.1/udp/4001/quic-v1/webtransport/certhash/uEiCo75ucNddWP2Zv5aSIPOhBWCm3Vss6_UtZGMvf8YONMw/certhash/uEiDNVNf5mOm4WVE37I_6jsGbi50t4FcJ0e46RZYdfQZEmg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/127.0.0.1/udp/4001/webrtc-direct/certhash/uEiA05Tme-fdiuDqMrTtLWxeohqXcJpcUilmvmngzhrKoJQ/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/127.0.0.1/udp/4001/webrtc-direct/certhash/uEiABaBW4j5rhAwqfnm21xhDbeqmrJGJsDabR_iVLLzRLrA/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/127.0.0.1/udp/4001/webrtc-direct/certhash/uEiAoWd5HNHNU3YBz2-pF5h_vEgR4nNMGZkoe49llG81vDQ/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/127.0.0.1/udp/4001/webrtc-direct/certhash/uEiAsiQnA6BGY2eSgDZLW9lAy_BCGCtxFZpgqUTcDpUz9vA/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/127.0.0.1/udp/4001/webrtc-direct/certhash/uEiBYb9ahOkHnXsFll-s0Ggwn7RQMWzDIebkbT5BbHPbS1w/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/127.0.0.1/udp/4001/webrtc-direct/certhash/uEiBepclmYC4Fa7jLPeUaM6HeEjxtfY-qbExhbwVbFD-Hig/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/127.0.0.1/udp/4001/webrtc-direct/certhash/uEiBqEttYj1GfOHCT_q0bSXQ9qR68Um8GtGMHx4mha5EeFw/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/127.0.0.1/udp/4001/webrtc-direct/certhash/uEiCIvZKMDkPZr8EBvzhJkr9euRL21vsn0JL51nWO-c_8Sg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/127.0.0.1/udp/4001/webrtc-direct/certhash/uEiCTXbFH1OGaWwMVMXMd-KpRN9s7IFSlAY5NS2ejX3BfnQ/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/127.0.0.1/udp/4001/webrtc-direct/certhash/uEiCVKQZY-pQb7rNgzWI0pyjZfE8JhwtxrSkJC58S7PbHhA/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/127.0.0.1/udp/4001/webrtc-direct/certhash/uEiCXiOnWSih4KcL4EJmFuxZR5_GggYyP0JctNifbtDNnrg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/127.0.0.1/udp/4001/webrtc-direct/certhash/uEiCddN_aPirEORTk0CBePtd44YWo5LZUddpCmFCFir5ZPQ/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/127.0.0.1/udp/4001/webrtc-direct/certhash/uEiCl6fvScwvtBVKbQXN3DgrqvGPLX_X9WOFYN3n32GyBkQ/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/127.0.0.1/udp/4001/webrtc-direct/certhash/uEiCs0jpW8w_0uoJRYSgRdPAfmvHOBfr89L80RqRDK0vOqQ/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/127.0.0.1/udp/4001/webrtc-direct/certhash/uEiDQZAwoVQfV9Kc7--QBlajXO3twwvbLCiaK-xBzxUnVtw/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/127.0.0.1/udp/4001/webrtc-direct/certhash/uEiDtQ4-6cnrygDPlwRms0Yz1YgxADHrI8jQM_vgGa2k8Sg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/127.0.0.1/udp/4001/webrtc-direct/certhash/uEiDu_4ZKKMZYk66QTtXU2wAzWLoq0xaWby2kci7CE0eLzg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/tcp/4001/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/39714/quic-v1/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/39911/quic-v1/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/quic-v1/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/quic-v1/webtransport/certhash/uEiCR2oO032OWT-Y13NdyZj6HgcgtrLv_dKQkeR3mQp6Wpg/certhash/uEiCo75ucNddWP2Zv5aSIPOhBWCm3Vss6_UtZGMvf8YONMw/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/quic-v1/webtransport/certhash/uEiCo75ucNddWP2Zv5aSIPOhBWCm3Vss6_UtZGMvf8YONMw/certhash/uEiDNVNf5mOm4WVE37I_6jsGbi50t4FcJ0e46RZYdfQZEmg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiA0sc-TjefTpah5C2evUOrBP61L9bU9oZujeyKMZ09VFw/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiA6Xm5VyvtARGXeez9wOy7ty633jN1rPqYOJF_IpZwTBg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiAJVJgQU4ju8PuGwND7pladnaM8h9-IaCFuRxDz_wTbaQ/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiAor4NOBiHV6MVbEAYM0QP_LTwTwa5PUmyna3EMS6D9dA/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiAsiQnA6BGY2eSgDZLW9lAy_BCGCtxFZpgqUTcDpUz9vA/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiAzIxHmddFnILWYhqahRGIDnVD14xQJCHcptraYn3Dk0Q/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiBGlZ78DzRgLgdjjRp8FABo29W8nHsUwD9Sao53ZabtbA/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiBepclmYC4Fa7jLPeUaM6HeEjxtfY-qbExhbwVbFD-Hig/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiBh0y5pu582rcUQ4h5WMoZByLC2xtnCNhaFEIhv9mUjEA/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiC-Hez3BMyZ6nkVylceohtoPmqLHOTMwF7QN9a0orNl8Q/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiC78ryde3oRB3fErBY-B9TeEvMuKnPAbytWVqY8miRpOA/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiCGVLs686IR7s_Cw6mGDGlOtAko4ZJgrt_UQrA8GX09CA/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiCTXbFH1OGaWwMVMXMd-KpRN9s7IFSlAY5NS2ejX3BfnQ/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiCVKQZY-pQb7rNgzWI0pyjZfE8JhwtxrSkJC58S7PbHhA/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiCXiOnWSih4KcL4EJmFuxZR5_GggYyP0JctNifbtDNnrg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiCddN_aPirEORTk0CBePtd44YWo5LZUddpCmFCFir5ZPQ/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiCs0jpW8w_0uoJRYSgRdPAfmvHOBfr89L80RqRDK0vOqQ/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiD0GEEitkBCgqU0j1DlhsHM9J-ka4UUDh_DN4XuikGveQ/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiD229XVsXJ_SCVLRTPJk0lB4teAWf7Q_iP1BSY1YbjDcw/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiD3kzkkYYht4vRysRYTNRLvrKfrnz4I9O3yR7h2XRIPFg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiDFTPeSQuqY53MspQ27e-cB0va4cmx6qTiaIzBmX35xaw/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiDu_4ZKKMZYk66QTtXU2wAzWLoq0xaWby2kci7CE0eLzg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiDzG6Of7gG2rBafiCmv8AL39edxKWMIXByeUzLScoskRg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/43140/quic-v1/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/46553/quic-v1/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/47384/quic-v1/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/58006/quic-v1/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/tcp/4001/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/udp/4001/quic-v1/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/udp/4001/quic-v1/webtransport/certhash/uEiCo75ucNddWP2Zv5aSIPOhBWCm3Vss6_UtZGMvf8YONMw/certhash/uEiDNVNf5mOm4WVE37I_6jsGbi50t4FcJ0e46RZYdfQZEmg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/udp/4001/quic-v1/webtransport/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/udp/4001/webrtc-direct/certhash/uEiA8LOnSOpaLJPKF5J6nkTWNXHkIrjfF9QkJnzswXbcjBQ/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/udp/4001/webrtc-direct/certhash/uEiABaBW4j5rhAwqfnm21xhDbeqmrJGJsDabR_iVLLzRLrA/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/udp/4001/webrtc-direct/certhash/uEiAoWd5HNHNU3YBz2-pF5h_vEgR4nNMGZkoe49llG81vDQ/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/udp/4001/webrtc-direct/certhash/uEiAzIxHmddFnILWYhqahRGIDnVD14xQJCHcptraYn3Dk0Q/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/udp/4001/webrtc-direct/certhash/uEiBepclmYC4Fa7jLPeUaM6HeEjxtfY-qbExhbwVbFD-Hig/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/udp/4001/webrtc-direct/certhash/uEiC2PF2X2wEpJq93a5ZDGoi5j6ue-rAUCl8ddAKfh91MLA/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/udp/4001/webrtc-direct/certhash/uEiCVKQZY-pQb7rNgzWI0pyjZfE8JhwtxrSkJC58S7PbHhA/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/udp/4001/webrtc-direct/certhash/uEiC_kQLGYTo4pCRaf5sOqIzWVdkZPaIvr0pfSBjkroFtgw/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/udp/4001/webrtc-direct/certhash/uEiCddN_aPirEORTk0CBePtd44YWo5LZUddpCmFCFir5ZPQ/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/udp/4001/webrtc-direct/certhash/uEiCp0PIvb9xfuhvpEpNztzJbzvdroUfVggcjMTYyXVoU-w/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/udp/4001/webrtc-direct/certhash/uEiD3kzkkYYht4vRysRYTNRLvrKfrnz4I9O3yR7h2XRIPFg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/udp/4001/webrtc-direct/certhash/uEiDPI_kz1zKtkyqjw134vjXeNBe3TWbITFeicgAU33K6rA/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/udp/4001/webrtc-direct/certhash/uEiDQZAwoVQfV9Kc7--QBlajXO3twwvbLCiaK-xBzxUnVtw/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/udp/4001/webrtc-direct/certhash/uEiDu_4ZKKMZYk66QTtXU2wAzWLoq0xaWby2kci7CE0eLzg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/udp/4001/webrtc-direct/certhash/uEiDzG6Of7gG2rBafiCmv8AL39edxKWMIXByeUzLScoskRg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/::1/tcp/4001/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/::1/udp/4001/quic-v1/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/::1/udp/4001/quic-v1/webtransport/certhash/uEiCR2oO032OWT-Y13NdyZj6HgcgtrLv_dKQkeR3mQp6Wpg/certhash/uEiCo75ucNddWP2Zv5aSIPOhBWCm3Vss6_UtZGMvf8YONMw/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/::1/udp/4001/quic-v1/webtransport/certhash/uEiCo75ucNddWP2Zv5aSIPOhBWCm3Vss6_UtZGMvf8YONMw/certhash/uEiDNVNf5mOm4WVE37I_6jsGbi50t4FcJ0e46RZYdfQZEmg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/::1/udp/4001/webrtc-direct/certhash/uEiABaBW4j5rhAwqfnm21xhDbeqmrJGJsDabR_iVLLzRLrA/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/::1/udp/4001/webrtc-direct/certhash/uEiBYb9ahOkHnXsFll-s0Ggwn7RQMWzDIebkbT5BbHPbS1w/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/::1/udp/4001/webrtc-direct/certhash/uEiBdNaFP0JXwJxHt_1DSlFfXvVKQNWawcYc_4MpxXGEcpg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/::1/udp/4001/webrtc-direct/certhash/uEiBepclmYC4Fa7jLPeUaM6HeEjxtfY-qbExhbwVbFD-Hig/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/::1/udp/4001/webrtc-direct/certhash/uEiC-Hez3BMyZ6nkVylceohtoPmqLHOTMwF7QN9a0orNl8Q/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/::1/udp/4001/webrtc-direct/certhash/uEiC7bZPPSBnOHxXeJ25veOhTdsxKI9QS8OrY4RPlRiMJ2g/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/::1/udp/4001/webrtc-direct/certhash/uEiC7bh7wFyP0ulo9Akf6EHMxlCqEouK1HXf0TuLTm-cZRQ/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/::1/udp/4001/webrtc-direct/certhash/uEiCGVLs686IR7s_Cw6mGDGlOtAko4ZJgrt_UQrA8GX09CA/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/::1/udp/4001/webrtc-direct/certhash/uEiCVKQZY-pQb7rNgzWI0pyjZfE8JhwtxrSkJC58S7PbHhA/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/::1/udp/4001/webrtc-direct/certhash/uEiCXiOnWSih4KcL4EJmFuxZR5_GggYyP0JctNifbtDNnrg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/::1/udp/4001/webrtc-direct/certhash/uEiC_kQLGYTo4pCRaf5sOqIzWVdkZPaIvr0pfSBjkroFtgw/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/::1/udp/4001/webrtc-direct/certhash/uEiCddN_aPirEORTk0CBePtd44YWo5LZUddpCmFCFir5ZPQ/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/::1/udp/4001/webrtc-direct/certhash/uEiDBwaeP78KaHwEEPg98rCSa-BdKfntChpJVZJHbqPDlyg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/::1/udp/4001/webrtc-direct/certhash/uEiDH45iStIHj34X5w9BYah_ZEW1flzDGJ09ycpDtngumXg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/::1/udp/4001/webrtc-direct/certhash/uEiDtQ4-6cnrygDPlwRms0Yz1YgxADHrI8jQM_vgGa2k8Sg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/::1/udp/4001/webrtc-direct/certhash/uEiDzG6Of7gG2rBafiCmv8AL39edxKWMIXByeUzLScoskRg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr"
	],
	"AgentVersion": "kubo/0.33.2/ad1868a",
	"Protocols": [
		"/ipfs/bitswap",
		"/ipfs/bitswap/1.0.0",
		"/ipfs/bitswap/1.1.0",
		"/ipfs/bitswap/1.2.0",
		"/ipfs/id/1.0.0",
		"/ipfs/id/push/1.0.0",
		"/ipfs/kad/1.0.0",
		"/ipfs/lan/kad/1.0.0",
		"/ipfs/ping/1.0.0",
		"/libp2p/autonat/1.0.0",
		"/libp2p/autonat/2/dial-back",
		"/libp2p/autonat/2/dial-request",
		"/libp2p/circuit/relay/0.2.0/hop",
		"/libp2p/circuit/relay/0.2.0/stop",
		"/libp2p/dcutr",
		"/x/"
	]
}
```

Discussion:
@guillaumemichel: The _normal_ DHT Client `FindPeer` behaviour is to look up the requested peer id, and the lookup process stops as soon as the DHT client has an open connection to the target peer ([source](https://github.com/libp2p/go-libp2p-kad-dht/blob/3f3b7b648dbe69650fb59ad054d0fdc6196b1e5b/routing.go#L687)). Assuming the target peer wasn't connected to the DHT client at the start of the request, it means that the target peer was probably referenced by another peer, then the DHT client was able to open a connection to the target peer. Hence, the multiaddrs, known to the DHT client are the ones provided by the other peer that knew about the target peer, and the multiaddrs shared by the target peer itself during identify (if applicable).

The _accelerated_ DHT Client `FindPeer` behaviour is slightly different ([source](https://github.com/libp2p/go-libp2p-kad-dht/blob/3f3b7b648dbe69650fb59ad054d0fdc6196b1e5b/fullrt/dht.go#L1430-L1516)). First, it looks up for the 20 closest peers to the target peer id. Then it asks these 20 peers about the target peer id. Once all peers have responded (or have timed out), the DHT Client will call `host.Connect`, with all addresses it learned from all of the 20 closest peers to connect to the target peer. This function call will add all addresses to the peerstore, and these addresses will eventually be returned to the caller.

So the logic is different between the _normal_ and _accelerated_ DHT clients, and the _accelerated_ DHT client is expected to find a superset of addresses, some of them may be stale?

Is this behaviour new? There was a [recent code change](https://github.com/libp2p/go-libp2p-kad-dht/commit/997f33e7bf9f2cc2d6593c079642b702b36138e2) in the Accelerated DHT Client that may be related.@lidel: This does not seem to be new, probing the same peer with `0.33.2` + accelerated client returns same result (a lot of outdated addrs).

The `12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr` is `kubo-staging-us-east-01` and it does not constantly reboot. Maybe once a day or twice. No way it restarted >20 times in last 30 minutes and each time announced different `/certhash/` to other peers.

Could it be, the problem here is not a bug in Kubo/kad-dht, but one of the peers that accelerated client hits? If a third-party peer that does not use upstream code does not forget addresses after 15 minutes, but keeps them longer, would it explain this behavior?

@guillaumemichel: When the accelerated DHT client is enabled, the DHT crawler will enumerate all the peers and dump their routing tables. It will write every address received about any other peer in the host peerstore, without dialing the addresses first.

Hence if multiple nodes run the accelerated DHT client, they will keep infecting each other with outdated addresses and these addresses will never disappear from the DHT routing tables.

Fix: https://github.com/libp2p/go-libp2p-kad-dht/pull/1053@Rashkae2: Do you expect this change might alleviate some the pain of running the accelerated DHT Crawler itself?  I've found that to be the largest point of pain trying to host IPFS content on non-dedicated internet.@guillaumemichel: > host IPFS content on non-dedicated internet

I am not sure what you mean there.

The fix will greatly reduce the number of unreachable addresses that are stored in the go-libp2p host peerstore.@guillaumemichel: I just released [go-libp2p-kad-dht v0.30.0](https://github.com/libp2p/go-libp2p-kad-dht/releases/tag/v0.30.0) including the fix. The kad-dht dep is bumped in https://github.com/ipfs/kubo/pull/10736, since the latest kad-dht version depends on the latest go-datastore version.

I tested there and the behaviour is now as expected, same addresses returned with Accelerated DHT Client enabled and disabled.

```bash
$ ipfs config --json Routing.AcceleratedDHTClient true      
$ ipfs id 12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr
{
	"ID": "12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
	"PublicKey": "CAESIGxeQquw1AK8U1WO0yZ/arxyexnOltWE8dac6TgMskKx",
	"Addresses": [
		"/ip4/15.204.207.119/tcp/4001/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/quic-v1/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/quic-v1/webtransport/certhash/uEiCo75ucNddWP2Zv5aSIPOhBWCm3Vss6_UtZGMvf8YONMw/certhash/uEiDNVNf5mOm4WVE37I_6jsGbi50t4FcJ0e46RZYdfQZEmg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip4/15.204.207.119/udp/4001/webrtc-direct/certhash/uEiCTm6d8CKgoD8ZFBuA2kXypupkh3RUQiZj_JCcjrM6ZbQ/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/tcp/4001/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/udp/4001/quic-v1/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/udp/4001/quic-v1/webtransport/certhash/uEiCo75ucNddWP2Zv5aSIPOhBWCm3Vss6_UtZGMvf8YONMw/certhash/uEiDNVNf5mOm4WVE37I_6jsGbi50t4FcJ0e46RZYdfQZEmg/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr",
		"/ip6/2604:2dc0:101:100::138b/udp/4001/webrtc-direct/certhash/uEiCTm6d8CKgoD8ZFBuA2kXypupkh3RUQiZj_JCcjrM6ZbQ/p2p/12D3KooWH7PZhUa4UL2Tz2xumHNAugZBBAzEKyF1qmQENYQrYHDr"
	],
	"AgentVersion": "kubo/0.33.2/ad1868a",
	"Protocols": [
		"/ipfs/bitswap",
		"/ipfs/bitswap/1.0.0",
		"/ipfs/bitswap/1.1.0",
		"/ipfs/bitswap/1.2.0",
		"/ipfs/id/1.0.0",
		"/ipfs/id/push/1.0.0",
		"/ipfs/kad/1.0.0",
		"/ipfs/lan/kad/1.0.0",
		"/ipfs/ping/1.0.0",
		"/libp2p/autonat/1.0.0",
		"/libp2p/autonat/2/dial-back",
		"/libp2p/autonat/2/dial-request",
		"/libp2p/circuit/relay/0.2.0/hop",
		"/libp2p/circuit/relay/0.2.0/stop",
		"/libp2p/dcutr",
		"/x/"
	]
}
```@Rashkae2: 
> I am not sure what you mean there.
> 
> The fix will greatly reduce the number of unreachable addresses that are stored in the go-libp2p host peerstore.

I'm sorry, I'm kind of over my head. What I am hoping is that the stale addresses in the peerstore are part of why of the hourly DHT crawl is so detrimental to nework connections. (if the DHT is trying to reach all of those stale addresses during the crawl.)@guillaumemichel: > I'm sorry, I'm kind of over my head. What I am hoping is that the stale addresses in the peerstore are part of why of the hourly DHT crawl is so detrimental to nework connections. (if the DHT is trying to reach all of those stale addresses during the crawl.)

The crawler will still open a connection to all reachable DHT servers ([currently around 10k](https://probelab.io/ipfs/amino/#dht-availability-classified-overall-plot)), and hopefully there shouldn't be too much additional dials due to stale addresses.

Solution patch:
diff --git a/cmd/ipfs/kubo/daemon.go b/cmd/ipfs/kubo/daemon.go
index ccdcc8895b..7ee5953070 100644
--- a/cmd/ipfs/kubo/daemon.go
+++ b/cmd/ipfs/kubo/daemon.go
@@ -17,8 +17,6 @@ import (
 	"sync"
 	"time"
 
-	multierror "github.com/hashicorp/go-multierror"
-
 	cmds "github.com/ipfs/go-ipfs-cmds"
 	mprome "github.com/ipfs/go-metrics-prometheus"
 	version "github.com/ipfs/kubo"
@@ -47,6 +45,7 @@ import (
 	manet "github.com/multiformats/go-multiaddr/net"
 	prometheus "github.com/prometheus/client_golang/prometheus"
 	promauto "github.com/prometheus/client_golang/prometheus/promauto"
+	"go.uber.org/multierr"
 )
 
 const (
@@ -685,7 +684,7 @@ take effect.
 	var errs error
 	for err := range merge(apiErrc, gwErrc, gcErrc, p2pGwErrc) {
 		if err != nil {
-			errs = multierror.Append(errs, err)
+			errs = multierr.Append(errs, err)
 		}
 	}
 
diff --git a/core/node/bitswap.go b/core/node/bitswap.go
index 3820fb5120..a310709bd6 100644
--- a/core/node/bitswap.go
+++ b/core/node/bitswap.go
@@ -5,7 +5,7 @@ import (
 	"time"
 
 	"github.com/ipfs/boxo/bitswap"
-	"github.com/ipfs/boxo/bitswap/network"
+	bsnet "github.com/ipfs/boxo/bitswap/network/bsnet"
 	blockstore "github.com/ipfs/boxo/blockstore"
 	exchange "github.com/ipfs/boxo/exchange"
 	"github.com/ipfs/boxo/exchange/providing"
@@ -72,7 +72,7 @@ type bitswapIn struct {
 // group.
 func Bitswap(provide bool) interface{} {
 	return func(in bitswapIn, lc fx.Lifecycle) *bitswap.Bitswap {
-		bitswapNetwork := network.NewFromIpfsHost(in.Host)
+		bitswapNetwork := bsnet.NewFromIpfsHost(in.Host)
 
 		var provider routing.ContentDiscovery
 		if provide {
diff --git a/docs/examples/kubo-as-a-library/go.mod b/docs/examples/kubo-as-a-library/go.mod
index 7ad79dc313..895c382220 100644
--- a/docs/examples/kubo-as-a-library/go.mod
+++ b/docs/examples/kubo-as-a-library/go.mod
@@ -7,7 +7,7 @@ go 1.24
 replace github.com/ipfs/kubo => ./../../..
 
 require (
-	github.com/ipfs/boxo v0.28.0
+	github.com/ipfs/boxo v0.28.1-0.20250305005235-c9ecc529063e
 	github.com/ipfs/kubo v0.0.0-00010101000000-000000000000
 	github.com/libp2p/go-libp2p v0.41.0
 	github.com/multiformats/go-multiaddr v0.15.0
@@ -69,8 +69,6 @@ require (
 	github.com/google/uuid v1.6.0 // indirect
 	github.com/gorilla/websocket v1.5.3 // indirect
 	github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect
-	github.com/hashicorp/errwrap v1.1.0 // indirect
-	github.com/hashicorp/go-multierror v1.1.1 // indirect
 	github.com/hashicorp/golang-lru v1.0.2 // indirect
 	github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
 	github.com/huin/goupnp v1.3.0 // indirect
@@ -82,12 +80,12 @@ require (
 	github.com/ipfs/go-blockservice v0.5.2 // indirect
 	github.com/ipfs/go-cid v0.5.0 // indirect
 	github.com/ipfs/go-cidutil v0.1.0 // indirect
-	github.com/ipfs/go-datastore v0.7.0 // indirect
-	github.com/ipfs/go-ds-badger v0.3.1 // indirect
-	github.com/ipfs/go-ds-flatfs v0.5.1 // indirect
-	github.com/ipfs/go-ds-leveldb v0.5.0 // indirect
-	github.com/ipfs/go-ds-measure v0.2.0 // indirect
-	github.com/ipfs/go-ds-pebble v0.4.2 // indirect
+	github.com/ipfs/go-datastore v0.8.2 // indirect
+	github.com/ipfs/go-ds-badger v0.3.4 // indirect
+	github.com/ipfs/go-ds-flatfs v0.5.5 // indirect
+	github.com/ipfs/go-ds-leveldb v0.5.2 // indirect
+	github.com/ipfs/go-ds-measure v0.2.2 // indirect
+	github.com/ipfs/go-ds-pebble v0.4.4 // indirect
 	github.com/ipfs/go-fs-lock v0.0.7 // indirect
 	github.com/ipfs/go-ipfs-blockstore v1.3.1 // indirect
 	github.com/ipfs/go-ipfs-delay v0.0.1 // indirect
@@ -103,9 +101,9 @@ require (
 	github.com/ipfs/go-log v1.0.5 // indirect
 	github.com/ipfs/go-log/v2 v2.5.1 // indirect
 	github.com/ipfs/go-merkledag v0.11.0 // indirect
-	github.com/ipfs/go-metrics-interface v0.0.1 // indirect
+	github.com/ipfs/go-metrics-interface v0.3.0 // indirect
 	github.com/ipfs/go-peertaskqueue v0.8.2 // indirect
-	github.com/ipfs/go-unixfsnode v1.9.2 // indirect
+	github.com/ipfs/go-unixfsnode v1.10.0 // indirect
 	github.com/ipfs/go-verifcid v0.0.3 // indirect
 	github.com/ipld/go-car v0.6.2 // indirect
 	github.com/ipld/go-car/v2 v2.14.2 // indirect
@@ -126,12 +124,12 @@ require (
 	github.com/libp2p/go-doh-resolver v0.5.0 // indirect
 	github.com/libp2p/go-flow-metrics v0.2.0 // indirect
 	github.com/libp2p/go-libp2p-asn-util v0.4.1 // indirect
-	github.com/libp2p/go-libp2p-kad-dht v0.29.1 // indirect
+	github.com/libp2p/go-libp2p-kad-dht v0.30.2 // indirect
 	github.com/libp2p/go-libp2p-kbucket v0.6.5 // indirect
-	github.com/libp2p/go-libp2p-pubsub v0.12.0 // indirect
+	github.com/libp2p/go-libp2p-pubsub v0.13.0 // indirect
 	github.com/libp2p/go-libp2p-pubsub-router v0.6.0 // indirect
 	github.com/libp2p/go-libp2p-record v0.3.1 // indirect
-	github.com/libp2p/go-libp2p-routing-helpers v0.7.4 // indirect
+	github.com/libp2p/go-libp2p-routing-helpers v0.7.5 // indirect
 	github.com/libp2p/go-libp2p-xor v0.1.0 // indirect
 	github.com/libp2p/go-msgio v0.3.0 // indirect
 	github.com/libp2p/go-netroute v0.2.2 // indirect
diff --git a/docs/examples/kubo-as-a-library/go.sum b/docs/examples/kubo-as-a-library/go.sum
index cd67bb1173..a4bee27617 100644
--- a/docs/examples/kubo-as-a-library/go.sum
+++ b/docs/examples/kubo-as-a-library/go.sum
@@ -279,11 +279,6 @@ github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjw
 github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I=
 github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU=
 github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48=
-github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
-github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
-github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
-github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
-github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
 github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
 github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
 github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c=
@@ -303,8 +298,8 @@ github.com/ipfs-shipyard/nopfs/ipfs v0.25.0 h1:OqNqsGZPX8zh3eFMO8Lf8EHRRnSGBMqcd
 github.com/ipfs-shipyard/nopfs/ipfs v0.25.0/go.mod h1:BxhUdtBgOXg1B+gAPEplkg/GpyTZY+kCMSfsJvvydqU=
 github.com/ipfs/bbloom v0.0.4 h1:Gi+8EGJ2y5qiD5FbsbpX/TMNcJw8gSqr7eyjHa4Fhvs=
 github.com/ipfs/bbloom v0.0.4/go.mod h1:cS9YprKXpoZ9lT0n/Mw/a6/aFV6DTjTLYHeA+gyqMG0=
-github.com/ipfs/boxo v0.28.0 h1:io6nXqN8XMOstB7dQGG5GWnMk4WssoMvva9OADErZdI=
-github.com/ipfs/boxo v0.28.0/go.mod h1:eY9w3iTpmZGKzDfEYjm3oK8f+xjv8KJhhNXJwicmd3I=
+github.com/ipfs/boxo v0.28.1-0.20250305005235-c9ecc529063e h1:odNZbw2iAepQ5MMEX4Mx+Aa8ja+zNfXImZPfoM6agJw=
+github.com/ipfs/boxo v0.28.1-0.20250305005235-c9ecc529063e/go.mod h1:c3R52nMlgMsN1tADffYcogKoVRsX1RJE1TMYSpJ4uVs=
 github.com/ipfs/go-bitfield v1.1.0 h1:fh7FIo8bSwaJEh6DdTWbCeZ1eqOaOkKFI74SCnsWbGA=
 github.com/ipfs/go-bitfield v1.1.0/go.mod h1:paqf1wjq/D2BBmzfTVFlJQ9IlFOZpg422HL0HqsGWHU=
 github.com/ipfs/go-bitswap v0.11.0 h1:j1WVvhDX1yhG32NTC9xfxnqycqYIlhzEzLXG/cU1HyQ=
@@ -323,23 +318,22 @@ github.com/ipfs/go-cidutil v0.1.0 h1:RW5hO7Vcf16dplUU60Hs0AKDkQAVPVplr7lk97CFL+Q
 github.com/ipfs/go-cidutil v0.1.0/go.mod h1:e7OEVBMIv9JaOxt9zaGEmAoSlXW9jdFZ5lP/0PwcfpA=
 github.com/ipfs/go-datastore v0.1.0/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE=
 github.com/ipfs/go-datastore v0.1.1/go.mod h1:w38XXW9kVFNp57Zj5knbKWM2T+KOZCGDRVNdgPHtbHw=
-github.com/ipfs/go-datastore v0.5.0/go.mod h1:9zhEApYMTl17C8YDp7JmU7sQZi2/wqiYh73hakZ90Bk=
-github.com/ipfs/go-datastore v0.7.0 h1:a6JMuRFKYhw6XXmIVoTthF8ZFm4QQXvLDXFhXRVv8Go=
-github.com/ipfs/go-datastore v0.7.0/go.mod h1:ucOWMfbOPI6ZEyaIB1q/+78RPLBPERfuUVYX1EPnNpQ=
+github.com/ipfs/go-datastore v0.8.2 h1:Jy3wjqQR6sg/LhyY0NIePZC3Vux19nLtg7dx0TVqr6U=
+github.com/ipfs/go-datastore v0.8.2/go.mod h1:W+pI1NsUsz3tcsAACMtfC+IZdnQTnC/7VfPoJBQuts0=
 github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk=
 github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps=
 github.com/ipfs/go-ds-badger v0.0.7/go.mod h1:qt0/fWzZDoPW6jpQeqUjR5kBfhDNB65jd9YlmAvpQBk=
-github.com/ipfs/go-ds-badger v0.3.1 h1:83FktEcDg+pUsV8WLZ8rsKiMHIYNuuRFPN6AIrpwBSo=
-github.com/ipfs/go-ds-badger v0.3.1/go.mod h1:dLFJ2MtW92HZjT17jpxx4zB1s7O819Yi3ihY7mZedsM=
-github.com/ipfs/go-ds-flatfs v0.5.1 h1:ZCIO/kQOS/PSh3vcF1H6a8fkRGS7pOfwfPdx4n/KJH4=
-github.com/ipfs/go-ds-flatfs v0.5.1/go.mod h1:RWTV7oZD/yZYBKdbVIFXTX2fdY2Tbvl94NsWqmoyAX4=
+github.com/ipfs/go-ds-badger v0.3.4 h1:MmqFicftE0KrwMC77WjXTrPuoUxhwyFsjKONSeWrlOo=
+github.com/ipfs/go-ds-badger v0.3.4/go.mod h1:HfqsKJcNnIr9ZhZ+rkwS1J5PpaWjJjg6Ipmxd7KPfZ8=
+github.com/ipfs/go-ds-flatfs v0.5.5 h1:lkx5C99pFBMI7T1sYF7y3v7xIYekNVNMp/95Gm9Y3tY=
+github.com/ipfs/go-ds-flatfs v0.5.5/go.mod h1:bM7+m7KFUyv5dp3RBKTr3+OHgZ6h8ydCQkO7tjeO9Z4=
 github.com/ipfs/go-ds-leveldb v0.1.0/go.mod h1:hqAW8y4bwX5LWcCtku2rFNX3vjDZCy5LZCg+cSZvYb8=
-github.com/ipfs/go-ds-leveldb v0.5.0 h1:s++MEBbD3ZKc9/8/njrn4flZLnCuY9I79v94gBUNumo=
-github.com/ipfs/go-ds-leveldb v0.5.0/go.mod h1:d3XG9RUDzQ6V4SHi8+Xgj9j1XuEk1z82lquxrVbml/Q=
-github.com/ipfs/go-ds-measure v0.2.0 h1:sG4goQe0KDTccHMyT45CY1XyUbxe5VwTKpg2LjApYyQ=
-github.com/ipfs/go-ds-measure v0.2.0/go.mod h1:SEUD/rE2PwRa4IQEC5FuNAmjJCyYObZr9UvVh8V3JxE=
-github.com/ipfs/go-ds-pebble v0.4.2 h1:6FfU9yKpz+lTyDLwul8Oh+mEyLUQ7FWx5I82H5NSTm4=
-github.com/ipfs/go-ds-pebble v0.4.2/go.mod h1:JDK6dqKXyB45MgfTsaXKWBHqc9/J4OVsvhm1juEwug0=
+github.com/ipfs/go-ds-leveldb v0.5.2 h1:6nmxlQ2zbp4LCNdJVsmHfs9GP0eylfBNxpmY1csp0x0=
+github.com/ipfs/go-ds-leveldb v0.5.2/go.mod h1:2fAwmcvD3WoRT72PzEekHBkQmBDhc39DJGoREiuGmYo=
+github.com/ipfs/go-ds-measure v0.2.2 h1:4kwvBGbbSXNYe4ANlg7qTIYoZU6mNlqzQHdVqICkqGI=
+github.com/ipfs/go-ds-measure v0.2.2/go.mod h1:b/87ak0jMgH9Ylt7oH0+XGy4P8jHx9KG09Qz+pOeTIs=
+github.com/ipfs/go-ds-pebble v0.4.4 h1:V/QlTCjQ4cTYQUvDRbDBKVZNYaMi4QV7Du4acPoRvg0=
+github.com/ipfs/go-ds-pebble v0.4.4/go.mod h1:a4F6QyaamnD/MsgQH1KpYf5s0YvPODw6eOk9PBhLQMg=
 github.com/ipfs/go-fs-lock v0.0.7 h1:6BR3dajORFrFTkb5EpCUFIAypsoxpGpDSVUdFwzgL9U=
 github.com/ipfs/go-fs-lock v0.0.7/go.mod h1:Js8ka+FNYmgQRLrRXzU3CB/+Csr1BwrRilEcvYrHhhc=
 github.com/ipfs/go-ipfs-blockstore v1.3.1 h1:cEI9ci7V0sRNivqaOr0elDsamxXFxJMMMy7PTTDQNsQ=
@@ -374,24 +368,22 @@ github.com/ipfs/go-ipld-git v0.1.1/go.mod h1:+VyMqF5lMcJh4rwEppV0e6g4nCCHXThLYYD
 github.com/ipfs/go-ipld-legacy v0.2.1 h1:mDFtrBpmU7b//LzLSypVrXsD8QxkEWxu5qVxN99/+tk=
 github.com/ipfs/go-ipld-legacy v0.2.1/go.mod h1:782MOUghNzMO2DER0FlBR94mllfdCJCkTtDtPM51otM=
 github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM=
-github.com/ipfs/go-log v1.0.3/go.mod h1:OsLySYkwIbiSUR/yBTdv1qPtcE4FW3WPWk/ewz9Ru+A=
 github.com/ipfs/go-log v1.0.5 h1:2dOuUCB1Z7uoczMWgAyDck5JLb72zHzrMnGnCNNbvY8=
 github.com/ipfs/go-log v1.0.5/go.mod h1:j0b8ZoR+7+R99LD9jZ6+AJsrzkPbSXbZfGakb5JPtIo=
-github.com/ipfs/go-log/v2 v2.0.3/go.mod h1:O7P1lJt27vWHhOwQmcFEvlmo49ry2VY2+JfBWFaa9+0=
 github.com/ipfs/go-log/v2 v2.1.3/go.mod h1:/8d0SH3Su5Ooc31QlL1WysJhvyOTDCjcCZ9Axpmri6g=
 github.com/ipfs/go-log/v2 v2.3.0/go.mod h1:QqGoj30OTpnKaG/LKTGTxoP2mmQtjVMEnK72gynbe/g=
 github.com/ipfs/go-log/v2 v2.5.1 h1:1XdUzF7048prq4aBjDQQ4SL5RxftpRGdXhNRwKSAlcY=
 github.com/ipfs/go-log/v2 v2.5.1/go.mod h1:prSpmC1Gpllc9UYWxDiZDreBYw7zp4Iqp1kOLU9U5UI=
 github.com/ipfs/go-merkledag v0.11.0 h1:DgzwK5hprESOzS4O1t/wi6JDpyVQdvm9Bs59N/jqfBY=
 github.com/ipfs/go-merkledag v0.11.0/go.mod h1:Q4f/1ezvBiJV0YCIXvt51W/9/kqJGH4I1LsA7+djsM4=
-github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg=
-github.com/ipfs/go-metrics-interface v0.0.1/go.mod h1:6s6euYU4zowdslK0GKHmqaIZ3j/b/tL7HTWtJ4VPgWY=
+github.com/ipfs/go-metrics-interface v0.3.0 h1:YwG7/Cy4R94mYDUuwsBfeziJCVm9pBMJ6q/JR9V40TU=
+github.com/ipfs/go-metrics-interface v0.3.0/go.mod h1:OxxQjZDGocXVdyTPocns6cOLwHieqej/jos7H4POwoY=
 github.com/ipfs/go-peertaskqueue v0.8.2 h1:PaHFRaVFdxQk1Qo3OKiHPYjmmusQy7gKQUaL8JDszAU=
 github.com/ipfs/go-peertaskqueue v0.8.2/go.mod h1:L6QPvou0346c2qPJNiJa6BvOibxDfaiPlqHInmzg0FA=
 github.com/ipfs/go-test v0.2.1 h1:/D/a8xZ2JzkYqcVcV/7HYlCnc7bv/pKHQiX5TdClkPE=
 github.com/ipfs/go-test v0.2.1/go.mod h1:dzu+KB9cmWjuJnXFDYJwC25T3j1GcN57byN+ixmK39M=
-github.com/ipfs/go-unixfsnode v1.9.2 h1:0A12BYs4XOtDPJTMlwmNPlllDfqcc4yie4e919hcUXk=
-github.com/ipfs/go-unixfsnode v1.9.2/go.mod h1:v1nuMFHf4QTIhFUdPMvg1nQu7AqDLvIdwyvJ531Ot1U=
+github.com/ipfs/go-unixfsnode v1.10.0 h1:cZPUUcYjXw2kMOgx4THw2uouw/8TBpmzZpWtPINdLvk=
+github.com/ipfs/go-unixfsnode v1.10.0/go.mod h1:hVbWqN38WOk7FHao2y0mQAwUHDq58m7plGd+W6GSq2M=
 github.com/ipfs/go-verifcid v0.0.3 h1:gmRKccqhWDocCRkC+a59g5QW7uJw5bpX9HWBevXa0zs=
 github.com/ipfs/go-verifcid v0.0.3/go.mod h1:gcCtGniVzelKrbk9ooUSX/pM3xlH73fZZJDzQJRvOUw=
 github.com/ipld/go-car v0.6.2 h1:Hlnl3Awgnq8icK+ze3iRghk805lu8YNq3wlREDTF2qc=
@@ -469,20 +461,20 @@ github.com/libp2p/go-libp2p-asn-util v0.4.1 h1:xqL7++IKD9TBFMgnLPZR6/6iYhawHKHl9
 github.com/libp2p/go-libp2p-asn-util v0.4.1/go.mod h1:d/NI6XZ9qxw67b4e+NgpQexCIiFYJjErASrYW4PFDN8=
 github.com/libp2p/go-libp2p-core v0.2.4/go.mod h1:STh4fdfa5vDYr0/SzYYeqnt+E6KfEV5VxfIrm0bcI0g=
 github.com/libp2p/go-libp2p-core v0.3.0/go.mod h1:ACp3DmS3/N64c2jDzcV429ukDpicbL6+TrrxANBjPGw=
-github.com/libp2p/go-libp2p-kad-dht v0.29.1 h1:RyD1RnnkXOh1gwBCrMQ6ZVfTJECY5yDOY6qxt9VNqE4=
-github.com/libp2p/go-libp2p-kad-dht v0.29.1/go.mod h1:tZEFTKWCsY0xngypKyAIwNDNZOBiikSUIgd/BjTF5Ms=
+github.com/libp2p/go-libp2p-kad-dht v0.30.2 h1:K0LJPdXynQ+u3rx6uFlrfNy0i11LE6SOCDzwAAaahys=
+github.com/libp2p/go-libp2p-kad-dht v0.30.2/go.mod h1:UV0mxF4ufh/ht05jNg5mcjOMrjK82uecgANa+GKi4y0=
 github.com/libp2p/go-libp2p-kbucket v0.3.1/go.mod h1:oyjT5O7tS9CQurok++ERgc46YLwEpuGoFq9ubvoUOio=
 github.com/libp2p/go-libp2p-kbucket v0.6.5 h1:Fsl1YvZcMwqrR4DYrTO02yo9PGYs2HBQIT3lGXFMTxg=
 github.com/libp2p/go-libp2p-kbucket v0.6.5/go.mod h1:U6WOd0BvnSp03IQSrjgM54tg7zh1UUNsXLJqAQzClTA=
 github.com/libp2p/go-libp2p-peerstore v0.1.4/go.mod h1:+4BDbDiiKf4PzpANZDAT+knVdLxvqh7hXOujessqdzs=
-github.com/libp2p/go-libp2p-pubsub v0.12.0 h1:PENNZjSfk8KYxANRlpipdS7+BfLmOl3L2E/6vSNjbdI=
-github.com/libp2p/go-libp2p-pubsub v0.12.0/go.mod h1:Oi0zw9aw8/Y5GC99zt+Ef2gYAl+0nZlwdJonDyOz/sE=
+github.com/libp2p/go-libp2p-pubsub v0.13.0 h1:RmFQ2XAy3zQtbt2iNPy7Tt0/3fwTnHpCQSSnmGnt1Ps=
+github.com/libp2p/go-libp2p-pubsub v0.13.0/go.mod h1:m0gpUOyrXKXdE7c8FNQ9/HLfWbxaEw7xku45w+PaqZo=
 github.com/libp2p/go-libp2p-pubsub-router v0.6.0 h1:D30iKdlqDt5ZmLEYhHELCMRj8b4sFAqrUcshIUvVP/s=
 github.com/libp2p/go-libp2p-pubsub-router v0.6.0/go.mod h1:FY/q0/RBTKsLA7l4vqC2cbRbOvyDotg8PJQ7j8FDudE=
 github.com/libp2p/go-libp2p-record v0.3.1 h1:cly48Xi5GjNw5Wq+7gmjfBiG9HCzQVkiZOUZ8kUl+Fg=
 github.com/libp2p/go-libp2p-record v0.3.1/go.mod h1:T8itUkLcWQLCYMqtX7Th6r7SexyUJpIyPgks757td/E=
-github.com/libp2p/go-libp2p-routing-helpers v0.7.4 h1:6LqS1Bzn5CfDJ4tzvP9uwh42IB7TJLNFJA6dEeGBv84=
-github.com/libp2p/go-libp2p-routing-helpers v0.7.4/go.mod h1:we5WDj9tbolBXOuF1hGOkR+r7Uh1408tQbAKaT5n1LE=
+github.com/libp2p/go-libp2p-routing-helpers v0.7.5 h1:HdwZj9NKovMx0vqq6YNPTh6aaNzey5zHD7HeLJtq6fI=
+github.com/libp2p/go-libp2p-routing-helpers v0.7.5/go.mod h1:3YaxrwP0OBPDD7my3D0KxfR89FlcX/IEbxDEDfAmj98=
 github.com/libp2p/go-libp2p-testing v0.12.0 h1:EPvBb4kKMWO29qP4mZGyhVzUyR25dvfUIK5WDu6iPUA=
 github.com/libp2p/go-libp2p-testing v0.12.0/go.mod h1:KcGDRXyN7sQCllucn1cOOS+Dmm7ujhfEyXQL5lvkcPg=
 github.com/libp2p/go-libp2p-xor v0.1.0 h1:hhQwT4uGrBcuAkUGXADuPltalOdpf9aag9kaYNT2tLA=
@@ -609,7 +601,6 @@ github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/
 github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk=
 github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
 github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
-github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
 github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
 github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
 github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8=
@@ -851,7 +842,6 @@ go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC
 go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE=
 go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0=
 go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8=
-go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
 go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
 go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
 go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
@@ -865,13 +855,11 @@ go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
 go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
 go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU=
 go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM=
-go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
 go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
 go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
 go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
 go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
 go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
-go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
 go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ=
 go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI=
 go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
diff --git a/go.mod b/go.mod
index 1cfb5621d2..04de2c6e0c 100644
--- a/go.mod
+++ b/go.mod
@@ -18,21 +18,20 @@ require (
 	github.com/filecoin-project/go-clock v0.1.0
 	github.com/fsnotify/fsnotify v1.7.0
 	github.com/google/uuid v1.6.0
-	github.com/hashicorp/go-multierror v1.1.1
 	github.com/hashicorp/go-version v1.7.0
 	github.com/ipfs-shipyard/nopfs v0.0.14
 	github.com/ipfs-shipyard/nopfs/ipfs v0.25.0
-	github.com/ipfs/boxo v0.28.0
+	github.com/ipfs/boxo v0.28.1-0.20250305005235-c9ecc529063e
 	github.com/ipfs/go-block-format v0.2.0
 	github.com/ipfs/go-cid v0.5.0
 	github.com/ipfs/go-cidutil v0.1.0
-	github.com/ipfs/go-datastore v0.7.0
+	github.com/ipfs/go-datastore v0.8.2
 	github.com/ipfs/go-detect-race v0.0.1
-	github.com/ipfs/go-ds-badger v0.3.1
-	github.com/ipfs/go-ds-flatfs v0.5.1
-	github.com/ipfs/go-ds-leveldb v0.5.0
-	github.com/ipfs/go-ds-measure v0.2.0
-	github.com/ipfs/go-ds-pebble v0.4.2
+	github.com/ipfs/go-ds-badger v0.3.4
+	github.com/ipfs/go-ds-flatfs v0.5.5
+	github.com/ipfs/go-ds-leveldb v0.5.2
+	github.com/ipfs/go-ds-measure v0.2.2
+	github.com/ipfs/go-ds-pebble v0.4.4
 	github.com/ipfs/go-fs-lock v0.0.7
 	github.com/ipfs/go-ipfs-cmds v0.14.1
 	github.com/ipfs/go-ipld-cbor v0.2.0
@@ -41,10 +40,10 @@ require (
 	github.com/ipfs/go-ipld-legacy v0.2.1
 	github.com/ipfs/go-log v1.0.5
 	github.com/ipfs/go-log/v2 v2.5.1
-	github.com/ipfs/go-metrics-interface v0.0.1
-	github.com/ipfs/go-metrics-prometheus v0.0.3
+	github.com/ipfs/go-metrics-interface v0.3.0
+	github.com/ipfs/go-metrics-prometheus v0.1.0
 	github.com/ipfs/go-test v0.2.1
-	github.com/ipfs/go-unixfsnode v1.9.2
+	github.com/ipfs/go-unixfsnode v1.10.0
 	github.com/ipld/go-car v0.6.2
 	github.com/ipld/go-car/v2 v2.14.2
 	github.com/ipld/go-codec-dagpb v1.6.0
@@ -56,12 +55,12 @@ require (
 	github.com/libp2p/go-doh-resolver v0.5.0
 	github.com/libp2p/go-libp2p v0.41.0
 	github.com/libp2p/go-libp2p-http v0.5.0
-	github.com/libp2p/go-libp2p-kad-dht v0.29.1
+	github.com/libp2p/go-libp2p-kad-dht v0.30.2
 	github.com/libp2p/go-libp2p-kbucket v0.6.5
-	github.com/libp2p/go-libp2p-pubsub v0.12.0
+	github.com/libp2p/go-libp2p-pubsub v0.13.0
 	github.com/libp2p/go-libp2p-pubsub-router v0.6.0
 	github.com/libp2p/go-libp2p-record v0.3.1
-	github.com/libp2p/go-libp2p-routing-helpers v0.7.4
+	github.com/libp2p/go-libp2p-routing-helpers v0.7.5
 	github.com/libp2p/go-libp2p-testing v0.12.0
 	github.com/libp2p/go-socket-activation v0.1.0
 	github.com/multiformats/go-multiaddr v0.15.0
@@ -146,7 +145,6 @@ require (
 	github.com/gorilla/mux v1.8.1 // indirect
 	github.com/gorilla/websocket v1.5.3 // indirect
 	github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect
-	github.com/hashicorp/errwrap v1.1.0 // indirect
 	github.com/hashicorp/golang-lru v1.0.2 // indirect
 	github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
 	github.com/huin/goupnp v1.3.0 // indirect
diff --git a/go.sum b/go.sum
index 8dd94341e9..6bb2af135c 100644
--- a/go.sum
+++ b/go.sum
@@ -341,11 +341,6 @@ github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjw
 github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I=
 github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU=
 github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48=
-github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
-github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
-github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
-github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
-github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
 github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY=
 github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
 github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
@@ -367,8 +362,8 @@ github.com/ipfs-shipyard/nopfs/ipfs v0.25.0 h1:OqNqsGZPX8zh3eFMO8Lf8EHRRnSGBMqcd
 github.com/ipfs-shipyard/nopfs/ipfs v0.25.0/go.mod h1:BxhUdtBgOXg1B+gAPEplkg/GpyTZY+kCMSfsJvvydqU=
 github.com/ipfs/bbloom v0.0.4 h1:Gi+8EGJ2y5qiD5FbsbpX/TMNcJw8gSqr7eyjHa4Fhvs=
 github.com/ipfs/bbloom v0.0.4/go.mod h1:cS9YprKXpoZ9lT0n/Mw/a6/aFV6DTjTLYHeA+gyqMG0=
-github.com/ipfs/boxo v0.28.0 h1:io6nXqN8XMOstB7dQGG5GWnMk4WssoMvva9OADErZdI=
-github.com/ipfs/boxo v0.28.0/go.mod h1:eY9w3iTpmZGKzDfEYjm3oK8f+xjv8KJhhNXJwicmd3I=
+github.com/ipfs/boxo v0.28.1-0.20250305005235-c9ecc529063e h1:odNZbw2iAepQ5MMEX4Mx+Aa8ja+zNfXImZPfoM6agJw=
+github.com/ipfs/boxo v0.28.1-0.20250305005235-c9ecc529063e/go.mod h1:c3R52nMlgMsN1tADffYcogKoVRsX1RJE1TMYSpJ4uVs=
 github.com/ipfs/go-bitfield v1.1.0 h1:fh7FIo8bSwaJEh6DdTWbCeZ1eqOaOkKFI74SCnsWbGA=
 github.com/ipfs/go-bitfield v1.1.0/go.mod h1:paqf1wjq/D2BBmzfTVFlJQ9IlFOZpg422HL0HqsGWHU=
 github.com/ipfs/go-bitswap v0.11.0 h1:j1WVvhDX1yhG32NTC9xfxnqycqYIlhzEzLXG/cU1HyQ=
@@ -387,23 +382,22 @@ github.com/ipfs/go-cidutil v0.1.0 h1:RW5hO7Vcf16dplUU60Hs0AKDkQAVPVplr7lk97CFL+Q
 github.com/ipfs/go-cidutil v0.1.0/go.mod h1:e7OEVBMIv9JaOxt9zaGEmAoSlXW9jdFZ5lP/0PwcfpA=
 github.com/ipfs/go-datastore v0.1.0/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE=
 github.com/ipfs/go-datastore v0.1.1/go.mod h1:w38XXW9kVFNp57Zj5knbKWM2T+KOZCGDRVNdgPHtbHw=
-github.com/ipfs/go-datastore v0.5.0/go.mod h1:9zhEApYMTl17C8YDp7JmU7sQZi2/wqiYh73hakZ90Bk=
-github.com/ipfs/go-datastore v0.7.0 h1:a6JMuRFKYhw6XXmIVoTthF8ZFm4QQXvLDXFhXRVv8Go=
-github.com/ipfs/go-datastore v0.7.0/go.mod h1:ucOWMfbOPI6ZEyaIB1q/+78RPLBPERfuUVYX1EPnNpQ=
+github.com/ipfs/go-datastore v0.8.2 h1:Jy3wjqQR6sg/LhyY0NIePZC3Vux19nLtg7dx0TVqr6U=
+github.com/ipfs/go-datastore v0.8.2/go.mod h1:W+pI1NsUsz3tcsAACMtfC+IZdnQTnC/7VfPoJBQuts0=
 github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk=
 github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps=
 github.com/ipfs/go-ds-badger v0.0.7/go.mod h1:qt0/fWzZDoPW6jpQeqUjR5kBfhDNB65jd9YlmAvpQBk=
-github.com/ipfs/go-ds-badger v0.3.1 h1:83FktEcDg+pUsV8WLZ8rsKiMHIYNuuRFPN6AIrpwBSo=
-github.com/ipfs/go-ds-badger v0.3.1/go.mod h1:dLFJ2MtW92HZjT17jpxx4zB1s7O819Yi3ihY7mZedsM=
-github.com/ipfs/go-ds-flatfs v0.5.1 h1:ZCIO/kQOS/PSh3vcF1H6a8fkRGS7pOfwfPdx4n/KJH4=
-github.com/ipfs/go-ds-flatfs v0.5.1/go.mod h1:RWTV7oZD/yZYBKdbVIFXTX2fdY2Tbvl94NsWqmoyAX4=
+github.com/ipfs/go-ds-badger v0.3.4 h1:MmqFicftE0KrwMC77WjXTrPuoUxhwyFsjKONSeWrlOo=
+github.com/ipfs/go-ds-badger v0.3.4/go.mod h1:HfqsKJcNnIr9ZhZ+rkwS1J5PpaWjJjg6Ipmxd7KPfZ8=
+github.com/ipfs/go-ds-flatfs v0.5.5 h1:lkx5C99pFBMI7T1sYF7y3v7xIYekNVNMp/95Gm9Y3tY=
+github.com/ipfs/go-ds-flatfs v0.5.5/go.mod h1:bM7+m7KFUyv5dp3RBKTr3+OHgZ6h8ydCQkO7tjeO9Z4=
 github.com/ipfs/go-ds-leveldb v0.1.0/go.mod h1:hqAW8y4bwX5LWcCtku2rFNX3vjDZCy5LZCg+cSZvYb8=
-github.com/ipfs/go-ds-leveldb v0.5.0 h1:s++MEBbD3ZKc9/8/njrn4flZLnCuY9I79v94gBUNumo=
-github.com/ipfs/go-ds-leveldb v0.5.0/go.mod h1:d3XG9RUDzQ6V4SHi8+Xgj9j1XuEk1z82lquxrVbml/Q=
-github.com/ipfs/go-ds-measure v0.2.0 h1:sG4goQe0KDTccHMyT45CY1XyUbxe5VwTKpg2LjApYyQ=
-github.com/ipfs/go-ds-measure v0.2.0/go.mod h1:SEUD/rE2PwRa4IQEC5FuNAmjJCyYObZr9UvVh8V3JxE=
-github.com/ipfs/go-ds-pebble v0.4.2 h1:6FfU9yKpz+lTyDLwul8Oh+mEyLUQ7FWx5I82H5NSTm4=
-github.com/ipfs/go-ds-pebble v0.4.2/go.mod h1:JDK6dqKXyB45MgfTsaXKWBHqc9/J4OVsvhm1juEwug0=
+github.com/ipfs/go-ds-leveldb v0.5.2 h1:6nmxlQ2zbp4LCNdJVsmHfs9GP0eylfBNxpmY1csp0x0=
+github.com/ipfs/go-ds-leveldb v0.5.2/go.mod h1:2fAwmcvD3WoRT72PzEekHBkQmBDhc39DJGoREiuGmYo=
+github.com/ipfs/go-ds-measure v0.2.2 h1:4kwvBGbbSXNYe4ANlg7qTIYoZU6mNlqzQHdVqICkqGI=
+github.com/ipfs/go-ds-measure v0.2.2/go.mod h1:b/87ak0jMgH9Ylt7oH0+XGy4P8jHx9KG09Qz+pOeTIs=
+github.com/ipfs/go-ds-pebble v0.4.4 h1:V/QlTCjQ4cTYQUvDRbDBKVZNYaMi4QV7Du4acPoRvg0=
+github.com/ipfs/go-ds-pebble v0.4.4/go.mod h1:a4F6QyaamnD/MsgQH1KpYf5s0YvPODw6eOk9PBhLQMg=
 github.com/ipfs/go-fs-lock v0.0.7 h1:6BR3dajORFrFTkb5EpCUFIAypsoxpGpDSVUdFwzgL9U=
 github.com/ipfs/go-fs-lock v0.0.7/go.mod h1:Js8ka+FNYmgQRLrRXzU3CB/+Csr1BwrRilEcvYrHhhc=
 github.com/ipfs/go-ipfs-blockstore v1.3.1 h1:cEI9ci7V0sRNivqaOr0elDsamxXFxJMMMy7PTTDQNsQ=
@@ -450,16 +444,16 @@ github.com/ipfs/go-log/v2 v2.5.1 h1:1XdUzF7048prq4aBjDQQ4SL5RxftpRGdXhNRwKSAlcY=
 github.com/ipfs/go-log/v2 v2.5.1/go.mod h1:prSpmC1Gpllc9UYWxDiZDreBYw7zp4Iqp1kOLU9U5UI=
 github.com/ipfs/go-merkledag v0.11.0 h1:DgzwK5hprESOzS4O1t/wi6JDpyVQdvm9Bs59N/jqfBY=
 github.com/ipfs/go-merkledag v0.11.0/go.mod h1:Q4f/1ezvBiJV0YCIXvt51W/9/kqJGH4I1LsA7+djsM4=
-github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg=
-github.com/ipfs/go-metrics-interface v0.0.1/go.mod h1:6s6euYU4zowdslK0GKHmqaIZ3j/b/tL7HTWtJ4VPgWY=
-github.com/ipfs/go-metrics-prometheus v0.0.3 h1:MVgBw30nE9eKC598ZQg+LIIbgIcx46NG8KISWLCLkMo=
-github.com/ipfs/go-metrics-prometheus v0.0.3/go.mod h1:qjWVLyK+ZJrQuiyTqfgoECgKfd4b4lEtpQemAWomWc8=
+github.com/ipfs/go-metrics-interface v0.3.0 h1:YwG7/Cy4R94mYDUuwsBfeziJCVm9pBMJ6q/JR9V40TU=
+github.com/ipfs/go-metrics-interface v0.3.0/go.mod h1:OxxQjZDGocXVdyTPocns6cOLwHieqej/jos7H4POwoY=
+github.com/ipfs/go-metrics-prometheus v0.1.0 h1:bApWOHkrH3VTBHzTHrZSfq4n4weOZDzZFxUXv+HyKcA=
+github.com/ipfs/go-metrics-prometheus v0.1.0/go.mod h1:2GtL525C/4yxtvSXpRJ4dnE45mCX9AS0XRa03vHx7G0=
 github.com/ipfs/go-peertaskqueue v0.8.2 h1:PaHFRaVFdxQk1Qo3OKiHPYjmmusQy7gKQUaL8JDszAU=
 github.com/ipfs/go-peertaskqueue v0.8.2/go.mod h1:L6QPvou0346c2qPJNiJa6BvOibxDfaiPlqHInmzg0FA=
 github.com/ipfs/go-test v0.2.1 h1:/D/a8xZ2JzkYqcVcV/7HYlCnc7bv/pKHQiX5TdClkPE=
 github.com/ipfs/go-test v0.2.1/go.mod h1:dzu+KB9cmWjuJnXFDYJwC25T3j1GcN57byN+ixmK39M=
-github.com/ipfs/go-unixfsnode v1.9.2 h1:0A12BYs4XOtDPJTMlwmNPlllDfqcc4yie4e919hcUXk=
-github.com/ipfs/go-unixfsnode v1.9.2/go.mod h1:v1nuMFHf4QTIhFUdPMvg1nQu7AqDLvIdwyvJ531Ot1U=
+github.com/ipfs/go-unixfsnode v1.10.0 h1:cZPUUcYjXw2kMOgx4THw2uouw/8TBpmzZpWtPINdLvk=
+github.com/ipfs/go-unixfsnode v1.10.0/go.mod h1:hVbWqN38WOk7FHao2y0mQAwUHDq58m7plGd+W6GSq2M=
 github.com/ipfs/go-verifcid v0.0.3 h1:gmRKccqhWDocCRkC+a59g5QW7uJw5bpX9HWBevXa0zs=
 github.com/ipfs/go-verifcid v0.0.3/go.mod h1:gcCtGniVzelKrbk9ooUSX/pM3xlH73fZZJDzQJRvOUw=
 github.com/ipld/go-car v0.6.2 h1:Hlnl3Awgnq8icK+ze3iRghk805lu8YNq3wlREDTF2qc=
@@ -553,20 +547,20 @@ github.com/libp2p/go-libp2p-gostream v0.6.0 h1:QfAiWeQRce6pqnYfmIVWJFXNdDyfiR/qk
 github.com/libp2p/go-libp2p-gostream v0.6.0/go.mod h1:Nywu0gYZwfj7Jc91PQvbGU8dIpqbQQkjWgDuOrFaRdA=
 github.com/libp2p/go-libp2p-http v0.5.0 h1:+x0AbLaUuLBArHubbbNRTsgWz0RjNTy6DJLOxQ3/QBc=
 github.com/libp2p/go-libp2p-http v0.5.0/go.mod h1:glh87nZ35XCQyFsdzZps6+F4HYI6DctVFY5u1fehwSg=
-github.com/libp2p/go-libp2p-kad-dht v0.29.1 h1:RyD1RnnkXOh1gwBCrMQ6ZVfTJECY5yDOY6qxt9VNqE4=
-github.com/libp2p/go-libp2p-kad-dht v0.29.1/go.mod h1:tZEFTKWCsY0xngypKyAIwNDNZOBiikSUIgd/BjTF5Ms=
+github.com/libp2p/go-libp2p-kad-dht v0.30.2 h1:K0LJPdXynQ+u3rx6uFlrfNy0i11LE6SOCDzwAAaahys=
+github.com/libp2p/go-libp2p-kad-dht v0.30.2/go.mod h1:UV0mxF4ufh/ht05jNg5mcjOMrjK82uecgANa+GKi4y0=
 github.com/libp2p/go-libp2p-kbucket v0.3.1/go.mod h1:oyjT5O7tS9CQurok++ERgc46YLwEpuGoFq9ubvoUOio=
 github.com/libp2p/go-libp2p-kbucket v0.6.5 h1:Fsl1YvZcMwqrR4DYrTO02yo9PGYs2HBQIT3lGXFMTxg=
 github.com/libp2p/go-libp2p-kbucket v0.6.5/go.mod h1:U6WOd0BvnSp03IQSrjgM54tg7zh1UUNsXLJqAQzClTA=
 github.com/libp2p/go-libp2p-peerstore v0.1.4/go.mod h1:+4BDbDiiKf4PzpANZDAT+knVdLxvqh7hXOujessqdzs=
-github.com/libp2p/go-libp2p-pubsub v0.12.0 h1:PENNZjSfk8KYxANRlpipdS7+BfLmOl3L2E/6vSNjbdI=
-github.com/libp2p/go-libp2p-pubsub v0.12.0/go.mod h1:Oi0zw9aw8/Y5GC99zt+Ef2gYAl+0nZlwdJonDyOz/sE=
+github.com/libp2p/go-libp2p-pubsub v0.13.0 h1:RmFQ2XAy3zQtbt2iNPy7Tt0/3fwTnHpCQSSnmGnt1Ps=
+github.com/libp2p/go-libp2p-pubsub v0.13.0/go.mod h1:m0gpUOyrXKXdE7c8FNQ9/HLfWbxaEw7xku45w+PaqZo=
 github.com/libp2p/go-libp2p-pubsub-router v0.6.0 h1:D30iKdlqDt5ZmLEYhHELCMRj8b4sFAqrUcshIUvVP/s=
 github.com/libp2p/go-libp2p-pubsub-router v0.6.0/go.mod h1:FY/q0/RBTKsLA7l4vqC2cbRbOvyDotg8PJQ7j8FDudE=
 github.com/libp2p/go-libp2p-record v0.3.1 h1:cly48Xi5GjNw5Wq+7gmjfBiG9HCzQVkiZOUZ8kUl+Fg=
 github.com/libp2p/go-libp2p-record v0.3.1/go.mod h1:T8itUkLcWQLCYMqtX7Th6r7SexyUJpIyPgks757td/E=
-github.com/libp2p/go-libp2p-routing-helpers v0.7.4 h1:6LqS1Bzn5CfDJ4tzvP9uwh42IB7TJLNFJA6dEeGBv84=
-github.com/libp2p/go-libp2p-routing-helpers v0.7.4/go.mod h1:we5WDj9tbolBXOuF1hGOkR+r7Uh1408tQbAKaT5n1LE=
+github.com/libp2p/go-libp2p-routing-helpers v0.7.5 h1:HdwZj9NKovMx0vqq6YNPTh6aaNzey5zHD7HeLJtq6fI=
+github.com/libp2p/go-libp2p-routing-helpers v0.7.5/go.mod h1:3YaxrwP0OBPDD7my3D0KxfR89FlcX/IEbxDEDfAmj98=
 github.com/libp2p/go-libp2p-testing v0.12.0 h1:EPvBb4kKMWO29qP4mZGyhVzUyR25dvfUIK5WDu6iPUA=
 github.com/libp2p/go-libp2p-testing v0.12.0/go.mod h1:KcGDRXyN7sQCllucn1cOOS+Dmm7ujhfEyXQL5lvkcPg=
 github.com/libp2p/go-libp2p-xor v0.1.0 h1:hhQwT4uGrBcuAkUGXADuPltalOdpf9aag9kaYNT2tLA=
diff --git a/repo/fsrepo/migrations/fetcher.go b/repo/fsrepo/migrations/fetcher.go
index 36aa06036b..c81554c3c4 100644
--- a/repo/fsrepo/migrations/fetcher.go
+++ b/repo/fsrepo/migrations/fetcher.go
@@ -6,7 +6,7 @@ import (
 	"io"
 	"os"
 
-	"github.com/hashicorp/go-multierror"
+	"go.uber.org/multierr"
 )
 
 const (
@@ -56,7 +56,7 @@ func (f *MultiFetcher) Fetch(ctx context.Context, ipfsPath string) ([]byte, erro
 			return out, nil
 		}
 		fmt.Printf("Error fetching: %s\n", err.Error())
-		errs = multierror.Append(errs, err)
+		errs = multierr.Append(errs, err)
 	}
 	return nil, errs
 }
@@ -65,7 +65,7 @@ func (f *MultiFetcher) Close() error {
 	var errs error
 	for _, fetcher := range f.fetchers {
 		if err := fetcher.Close(); err != nil {
-			errs = multierror.Append(errs, err)
+			errs = multierr.Append(errs, err)
 		}
 	}
 	return errs
diff --git a/routing/composer.go b/routing/composer.go
index 3541fc7dd2..a100bb4985 100644
--- a/routing/composer.go
+++ b/routing/composer.go
@@ -4,12 +4,12 @@ import (
 	"context"
 	"errors"
 
-	"github.com/hashicorp/go-multierror"
 	"github.com/ipfs/go-cid"
 	routinghelpers "github.com/libp2p/go-libp2p-routing-helpers"
 	"github.com/libp2p/go-libp2p/core/peer"
 	"github.com/libp2p/go-libp2p/core/routing"
 	"github.com/multiformats/go-multihash"
+	"go.uber.org/multierr"
 )
 
 var (
@@ -124,7 +124,7 @@ func (c *Composer) Bootstrap(ctx context.Context) error {
 	errgv := c.GetValueRouter.Bootstrap(ctx)
 	errpv := c.PutValueRouter.Bootstrap(ctx)
 	errp := c.ProvideRouter.Bootstrap(ctx)
-	err := multierror.Append(errfp, errfps, errgv, errpv, errp)
+	err := multierr.Combine(errfp, errfps, errgv, errpv, errp)
 	if err != nil {
 		log.Debug("composer: calling bootstrap error: ", err)
 	}



Test patch:
diff --git a/test/dependencies/go.mod b/test/dependencies/go.mod
index b4f4a5d9bb..692ef17b1b 100644
--- a/test/dependencies/go.mod
+++ b/test/dependencies/go.mod
@@ -108,8 +108,6 @@ require (
 	github.com/gostaticanalysis/comment v1.4.2 // indirect
 	github.com/gostaticanalysis/forcetypeassert v0.1.0 // indirect
 	github.com/gostaticanalysis/nilerr v0.1.1 // indirect
-	github.com/hashicorp/errwrap v1.1.0 // indirect
-	github.com/hashicorp/go-multierror v1.1.1 // indirect
 	github.com/hashicorp/go-version v1.7.0 // indirect
 	github.com/hashicorp/golang-lru v1.0.2 // indirect
 	github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
@@ -118,22 +116,21 @@ require (
 	github.com/huin/goupnp v1.3.0 // indirect
 	github.com/inconshreveable/mousetrap v1.1.0 // indirect
 	github.com/ipfs/bbloom v0.0.4 // indirect
-	github.com/ipfs/boxo v0.28.0 // indirect
+	github.com/ipfs/boxo v0.28.1-0.20250305005235-c9ecc529063e // indirect
 	github.com/ipfs/go-block-format v0.2.0 // indirect
 	github.com/ipfs/go-cid v0.5.0 // indirect
-	github.com/ipfs/go-datastore v0.7.0 // indirect
+	github.com/ipfs/go-datastore v0.8.2 // indirect
 	github.com/ipfs/go-ipfs-util v0.0.3 // indirect
 	github.com/ipfs/go-ipld-format v0.6.0 // indirect
 	github.com/ipfs/go-ipld-legacy v0.2.1 // indirect
 	github.com/ipfs/go-log v1.0.5 // indirect
-	github.com/ipfs/go-metrics-interface v0.0.1 // indirect
+	github.com/ipfs/go-metrics-interface v0.3.0 // indirect
 	github.com/ipfs/kubo v0.31.0 // indirect
 	github.com/ipld/go-codec-dagpb v1.6.0 // indirect
 	github.com/ipld/go-ipld-prime v0.21.0 // indirect
 	github.com/ipshipyard/p2p-forge v0.4.0 // indirect
 	github.com/jackpal/go-nat-pmp v1.0.2 // indirect
 	github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect
-	github.com/jbenet/goprocess v0.1.4 // indirect
 	github.com/jgautheron/goconst v1.7.1 // indirect
 	github.com/jingyugao/rowserrcheck v1.1.1 // indirect
 	github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af // indirect
@@ -158,10 +155,10 @@ require (
 	github.com/libp2p/go-flow-metrics v0.2.0 // indirect
 	github.com/libp2p/go-libp2p v0.41.0 // indirect
 	github.com/libp2p/go-libp2p-asn-util v0.4.1 // indirect
-	github.com/libp2p/go-libp2p-kad-dht v0.29.1 // indirect
+	github.com/libp2p/go-libp2p-kad-dht v0.30.2 // indirect
 	github.com/libp2p/go-libp2p-kbucket v0.6.5 // indirect
 	github.com/libp2p/go-libp2p-record v0.3.1 // indirect
-	github.com/libp2p/go-libp2p-routing-helpers v0.7.4 // indirect
+	github.com/libp2p/go-libp2p-routing-helpers v0.7.5 // indirect
 	github.com/libp2p/go-msgio v0.3.0 // indirect
 	github.com/libp2p/go-netroute v0.2.2 // indirect
 	github.com/libp2p/go-reuseport v0.4.0 // indirect
@@ -286,7 +283,6 @@ require (
 	gitlab.com/bosi/decorder v0.4.2 // indirect
 	go-simpler.org/musttag v0.12.2 // indirect
 	go-simpler.org/sloglint v0.7.2 // indirect
-	go.opencensus.io v0.24.0 // indirect
 	go.opentelemetry.io/auto/sdk v1.1.0 // indirect
 	go.opentelemetry.io/otel v1.34.0 // indirect
 	go.opentelemetry.io/otel/metric v1.34.0 // indirect
diff --git a/test/dependencies/go.sum b/test/dependencies/go.sum
index 01d7464f44..52dfcb5e89 100644
--- a/test/dependencies/go.sum
+++ b/test/dependencies/go.sum
@@ -86,7 +86,6 @@ github.com/catenacyber/perfsprint v0.7.1 h1:PGW5G/Kxn+YrN04cRAZKC+ZuvlVwolYMrIyy
 github.com/catenacyber/perfsprint v0.7.1/go.mod h1:/wclWYompEyjUD2FuIIDVKNkqz7IgBIWXIH3V0Zol50=
 github.com/ccojocar/zxcvbn-go v1.0.2 h1:na/czXU8RrhXO4EZme6eQJLR4PzcGsahsBOAwU6I3Vg=
 github.com/ccojocar/zxcvbn-go v1.0.2/go.mod h1:g1qkXtUSvHP8lhHp5GrSmTz6uWALGRMQdw6Qnz/hi60=
-github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
 github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
 github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/charithe/durationcheck v0.0.10 h1:wgw73BiocdBDQPik+zcEoBG/ob8uyBHf2iyoHGPf5w4=
@@ -96,7 +95,6 @@ github.com/chavacava/garif v0.1.0/go.mod h1:XMyYCkEL58DF0oyW4qDjjnPWONs2HBqYKI+U
 github.com/ckaznocha/intrange v0.1.2 h1:3Y4JAxcMntgb/wABQ6e8Q8leMd26JbX2790lIss9MTI=
 github.com/ckaznocha/intrange v0.1.2/go.mod h1:RWffCw/vKBwHeOEwWdCikAtY0q4gGt8VhJZEEA5n+RE=
 github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
-github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
 github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM=
 github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw=
 github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d h1:t5Wuyh53qYyg9eqn4BbnlIT+vmhyww0TatL+zT3uWgI=
@@ -132,10 +130,6 @@ github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDD
 github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
 github.com/elastic/gosigar v0.14.3 h1:xwkKwPia+hSfg9GqrCUKYdId102m9qTJIIr7egmK/uo=
 github.com/elastic/gosigar v0.14.3/go.mod h1:iXRIGg2tLnu7LBdpqzyQfGDEidKCfWcCMS0WKyPWoMs=
-github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
-github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
 github.com/ettle/strcase v0.2.0 h1:fGNiVF21fHXpX1niBgk0aROov1LagYsOwV/xqKDKR/Q=
 github.com/ettle/strcase v0.2.0/go.mod h1:DajmHElDSaX76ITe3/VHVyMin4LWSJN5Z909Wp+ED1A=
 github.com/facebookgo/atomicfile v0.0.0-20151019160806-2de1f203e7d5 h1:BBso6MBKW8ncyZLv37o+KNyy0HrrHgfnOaGQC2qvN+A=
@@ -216,22 +210,11 @@ github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7a
 github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
 github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
-github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E=
 github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
 github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
 github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
-github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
-github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
-github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
-github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
-github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
-github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
 github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a h1:w8hkcTqaFpzKqonE9uMCefW1WDie15eSP/4MssdenaM=
 github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk=
 github.com/golangci/gofmt v0.0.0-20240816233607-d8596aa466a9 h1:/1322Qns6BtQxUZDTAT4SdcoxknUki7IAoK4SAXr8ME=
@@ -250,13 +233,8 @@ github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed h1:IURFTjxeTfNF
 github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed/go.mod h1:XLXN8bNw4CGRPaqgl3bv/lhz7bsGPh4/xSaMTbo2vkQ=
 github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
-github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
@@ -274,7 +252,6 @@ github.com/google/pprof v0.0.0-20250208200701-d0013a598941/go.mod h1:vavhavw2zAx
 github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
 github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
 github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
-github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
 github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY=
@@ -300,11 +277,6 @@ github.com/gostaticanalysis/testutil v0.4.0 h1:nhdCmubdmDF6VEatUNjgUZBJKWRqugoIS
 github.com/gostaticanalysis/testutil v0.4.0/go.mod h1:bLIoPefWXrRi/ssLFWX1dx7Repi5x3CuviD3dgAZaBU=
 github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
 github.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw=
-github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
-github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
-github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
-github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
-github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
 github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
 github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY=
 github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
@@ -322,16 +294,16 @@ github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2
 github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
 github.com/ipfs/bbloom v0.0.4 h1:Gi+8EGJ2y5qiD5FbsbpX/TMNcJw8gSqr7eyjHa4Fhvs=
 github.com/ipfs/bbloom v0.0.4/go.mod h1:cS9YprKXpoZ9lT0n/Mw/a6/aFV6DTjTLYHeA+gyqMG0=
-github.com/ipfs/boxo v0.28.0 h1:io6nXqN8XMOstB7dQGG5GWnMk4WssoMvva9OADErZdI=
-github.com/ipfs/boxo v0.28.0/go.mod h1:eY9w3iTpmZGKzDfEYjm3oK8f+xjv8KJhhNXJwicmd3I=
+github.com/ipfs/boxo v0.28.1-0.20250305005235-c9ecc529063e h1:odNZbw2iAepQ5MMEX4Mx+Aa8ja+zNfXImZPfoM6agJw=
+github.com/ipfs/boxo v0.28.1-0.20250305005235-c9ecc529063e/go.mod h1:c3R52nMlgMsN1tADffYcogKoVRsX1RJE1TMYSpJ4uVs=
 github.com/ipfs/go-block-format v0.2.0 h1:ZqrkxBA2ICbDRbK8KJs/u0O3dlp6gmAuuXUJNiW1Ycs=
 github.com/ipfs/go-block-format v0.2.0/go.mod h1:+jpL11nFx5A/SPpsoBn6Bzkra/zaArfSmsknbPMYgzM=
 github.com/ipfs/go-cid v0.5.0 h1:goEKKhaGm0ul11IHA7I6p1GmKz8kEYniqFopaB5Otwg=
 github.com/ipfs/go-cid v0.5.0/go.mod h1:0L7vmeNXpQpUS9vt+yEARkJ8rOg43DF3iPgn4GIN0mk=
 github.com/ipfs/go-cidutil v0.1.0 h1:RW5hO7Vcf16dplUU60Hs0AKDkQAVPVplr7lk97CFL+Q=
 github.com/ipfs/go-cidutil v0.1.0/go.mod h1:e7OEVBMIv9JaOxt9zaGEmAoSlXW9jdFZ5lP/0PwcfpA=
-github.com/ipfs/go-datastore v0.7.0 h1:a6JMuRFKYhw6XXmIVoTthF8ZFm4QQXvLDXFhXRVv8Go=
-github.com/ipfs/go-datastore v0.7.0/go.mod h1:ucOWMfbOPI6ZEyaIB1q/+78RPLBPERfuUVYX1EPnNpQ=
+github.com/ipfs/go-datastore v0.8.2 h1:Jy3wjqQR6sg/LhyY0NIePZC3Vux19nLtg7dx0TVqr6U=
+github.com/ipfs/go-datastore v0.8.2/go.mod h1:W+pI1NsUsz3tcsAACMtfC+IZdnQTnC/7VfPoJBQuts0=
 github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk=
 github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps=
 github.com/ipfs/go-ipfs-delay v0.0.1 h1:r/UXYyRcddO6thwOnhiznIAiSvxMECGgtv35Xs1IeRQ=
@@ -349,8 +321,8 @@ github.com/ipfs/go-log v1.0.5/go.mod h1:j0b8ZoR+7+R99LD9jZ6+AJsrzkPbSXbZfGakb5JP
 github.com/ipfs/go-log/v2 v2.1.3/go.mod h1:/8d0SH3Su5Ooc31QlL1WysJhvyOTDCjcCZ9Axpmri6g=
 github.com/ipfs/go-log/v2 v2.5.1 h1:1XdUzF7048prq4aBjDQQ4SL5RxftpRGdXhNRwKSAlcY=
 github.com/ipfs/go-log/v2 v2.5.1/go.mod h1:prSpmC1Gpllc9UYWxDiZDreBYw7zp4Iqp1kOLU9U5UI=
-github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg=
-github.com/ipfs/go-metrics-interface v0.0.1/go.mod h1:6s6euYU4zowdslK0GKHmqaIZ3j/b/tL7HTWtJ4VPgWY=
+github.com/ipfs/go-metrics-interface v0.3.0 h1:YwG7/Cy4R94mYDUuwsBfeziJCVm9pBMJ6q/JR9V40TU=
+github.com/ipfs/go-metrics-interface v0.3.0/go.mod h1:OxxQjZDGocXVdyTPocns6cOLwHieqej/jos7H4POwoY=
 github.com/ipfs/go-peertaskqueue v0.8.2 h1:PaHFRaVFdxQk1Qo3OKiHPYjmmusQy7gKQUaL8JDszAU=
 github.com/ipfs/go-peertaskqueue v0.8.2/go.mod h1:L6QPvou0346c2qPJNiJa6BvOibxDfaiPlqHInmzg0FA=
 github.com/ipfs/go-test v0.2.1 h1:/D/a8xZ2JzkYqcVcV/7HYlCnc7bv/pKHQiX5TdClkPE=
@@ -369,11 +341,8 @@ github.com/ipshipyard/p2p-forge v0.4.0 h1:A40PW027nCZn0d/pw5ufMoxnAo9wZwrG+iuz18
 github.com/ipshipyard/p2p-forge v0.4.0/go.mod h1:hVGPP24xrRezP2+z6q8udEW36w89M+jWuWBz9meLggY=
 github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus=
 github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc=
-github.com/jbenet/go-cienv v0.1.0/go.mod h1:TqNnHUmJgXau0nCzC7kXWeotg3J9W34CUv5Djy1+FlA=
 github.com/jbenet/go-temp-err-catcher v0.1.0 h1:zpb3ZH6wIE8Shj2sKS+khgRvf7T7RABoLk/+KKHggpk=
 github.com/jbenet/go-temp-err-catcher v0.1.0/go.mod h1:0kJRvmDZXNMIiJirNPEYfhpPwbGVtZVWC34vc5WLsDk=
-github.com/jbenet/goprocess v0.1.4 h1:DRGOFReOMqqDNXwW70QkacFW0YN9QnwLV0Vqk+3oU0o=
-github.com/jbenet/goprocess v0.1.4/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4=
 github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU=
 github.com/jgautheron/goconst v1.7.1 h1:VpdAG7Ca7yvvJk5n8dMwQhfEZJh95kl/Hl9S1OI5Jkk=
 github.com/jgautheron/goconst v1.7.1/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4=
@@ -438,14 +407,14 @@ github.com/libp2p/go-libp2p v0.41.0 h1:JRaD39dqf/tBBGapJ0T38N73vOaDCsWgcx3mE6HgX
 github.com/libp2p/go-libp2p v0.41.0/go.mod h1:Be8QYqC4JW6Xq8buukNeoZJjyT1XUDcGoIooCHm1ye4=
 github.com/libp2p/go-libp2p-asn-util v0.4.1 h1:xqL7++IKD9TBFMgnLPZR6/6iYhawHKHl950SO9L6n94=
 github.com/libp2p/go-libp2p-asn-util v0.4.1/go.mod h1:d/NI6XZ9qxw67b4e+NgpQexCIiFYJjErASrYW4PFDN8=
-github.com/libp2p/go-libp2p-kad-dht v0.29.1 h1:RyD1RnnkXOh1gwBCrMQ6ZVfTJECY5yDOY6qxt9VNqE4=
-github.com/libp2p/go-libp2p-kad-dht v0.29.1/go.mod h1:tZEFTKWCsY0xngypKyAIwNDNZOBiikSUIgd/BjTF5Ms=
+github.com/libp2p/go-libp2p-kad-dht v0.30.2 h1:K0LJPdXynQ+u3rx6uFlrfNy0i11LE6SOCDzwAAaahys=
+github.com/libp2p/go-libp2p-kad-dht v0.30.2/go.mod h1:UV0mxF4ufh/ht05jNg5mcjOMrjK82uecgANa+GKi4y0=
 github.com/libp2p/go-libp2p-kbucket v0.6.5 h1:Fsl1YvZcMwqrR4DYrTO02yo9PGYs2HBQIT3lGXFMTxg=
 github.com/libp2p/go-libp2p-kbucket v0.6.5/go.mod h1:U6WOd0BvnSp03IQSrjgM54tg7zh1UUNsXLJqAQzClTA=
 github.com/libp2p/go-libp2p-record v0.3.1 h1:cly48Xi5GjNw5Wq+7gmjfBiG9HCzQVkiZOUZ8kUl+Fg=
 github.com/libp2p/go-libp2p-record v0.3.1/go.mod h1:T8itUkLcWQLCYMqtX7Th6r7SexyUJpIyPgks757td/E=
-github.com/libp2p/go-libp2p-routing-helpers v0.7.4 h1:6LqS1Bzn5CfDJ4tzvP9uwh42IB7TJLNFJA6dEeGBv84=
-github.com/libp2p/go-libp2p-routing-helpers v0.7.4/go.mod h1:we5WDj9tbolBXOuF1hGOkR+r7Uh1408tQbAKaT5n1LE=
+github.com/libp2p/go-libp2p-routing-helpers v0.7.5 h1:HdwZj9NKovMx0vqq6YNPTh6aaNzey5zHD7HeLJtq6fI=
+github.com/libp2p/go-libp2p-routing-helpers v0.7.5/go.mod h1:3YaxrwP0OBPDD7my3D0KxfR89FlcX/IEbxDEDfAmj98=
 github.com/libp2p/go-libp2p-testing v0.12.0 h1:EPvBb4kKMWO29qP4mZGyhVzUyR25dvfUIK5WDu6iPUA=
 github.com/libp2p/go-libp2p-testing v0.12.0/go.mod h1:KcGDRXyN7sQCllucn1cOOS+Dmm7ujhfEyXQL5lvkcPg=
 github.com/libp2p/go-msgio v0.3.0 h1:mf3Z8B1xcFN314sWX+2vOTShIE0Mmn2TXn3YCUQGNj0=
@@ -628,7 +597,6 @@ github.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXP
 github.com/prometheus/client_golang v1.21.0 h1:DIsaGmiaBkSangBgMtWdNfxbMNdku5IK6iNhrEqWvdA=
 github.com/prometheus/client_golang v1.21.0/go.mod h1:U9NM32ykUErtVBxdvD3zfi+EuFkkaBvMb09mIfe0Zgg=
 github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
-github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
 github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E=
 github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY=
 github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
@@ -758,7 +726,6 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5
 github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
-github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
 github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
 github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
 github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
@@ -835,8 +802,6 @@ go-simpler.org/musttag v0.12.2/go.mod h1:uN1DVIasMTQKk6XSik7yrJoEysGtR2GRqvWnI9S
 go-simpler.org/sloglint v0.7.2 h1:Wc9Em/Zeuu7JYpl+oKoYOsQSy2X560aVueCW/m6IijY=
 go-simpler.org/sloglint v0.7.2/go.mod h1:US+9C80ppl7VsThQclkM7BkCHQAzuz8kHLsW3ppuluo=
 go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA=
-go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
-go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
 go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
 go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
 go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY=
@@ -902,7 +867,6 @@ golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f/go.mod h1:AbB0pIl
 golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
-golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
 golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
 golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
 golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
@@ -938,7 +902,6 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL
 golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
 golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
 golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
@@ -1065,7 +1028,6 @@ golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3
 golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 golang.org/x/tools v0.0.0-20190321232350-e250d351ecad/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
 golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
@@ -1115,25 +1077,10 @@ google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoA
 google.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
 google.golang.org/genproto v0.0.0-20181202183823-bd91e49a0898/go.mod h1:7Ep/1NZk928CDR8SjdVbjWNpdIf6nzjE3BTgJDr2Atg=
 google.golang.org/genproto v0.0.0-20190306203927-b5d61aea6440/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
-google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
 google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
 google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio=
 google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
 google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
-google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
-google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
-google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
-google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
-google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
-google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
-google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
-google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
-google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
 google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM=
 google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
@@ -1161,7 +1108,6 @@ grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJd
 honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
 honnef.co/go/tools v0.5.1 h1:4bH5o3b5ZULQ4UrBmP+63W9r7qIkqJClEA9ko5YKx+I=
 honnef.co/go/tools v0.5.1/go.mod h1:e9irvo83WDG9/irijV44wr3tbhcFeRnfpVlRqVwpzMs=
diff --git a/test/sharness/t0119-prometheus-data/prometheus_metrics b/test/sharness/t0119-prometheus-data/prometheus_metrics
index f575bf778d..60475da439 100644
--- a/test/sharness/t0119-prometheus-data/prometheus_metrics
+++ b/test/sharness/t0119-prometheus-data/prometheus_metrics
@@ -1,3 +1,11 @@
+exchange_bitswap_response_bytes_bucket
+exchange_bitswap_response_bytes_count
+exchange_bitswap_response_bytes_sum
+exchange_bitswap_wantlists_items_total
+exchange_bitswap_wantlists_seconds_bucket
+exchange_bitswap_wantlists_seconds_count
+exchange_bitswap_wantlists_seconds_sum
+exchange_bitswap_wantlists_total
 flatfs_datastore_batchcommit_errors_total
 flatfs_datastore_batchcommit_latency_seconds_bucket
 flatfs_datastore_batchcommit_latency_seconds_count