Note
This release was brought to you by the Shipyard team.
Important
This is the last Kubo release with new features from the Shipyard team. Our IPFS work ends on September 30, 2026. Until then we will ship security and bug fix releases if any are needed. After that date, no one at Shipyard maintains Boxo. If you depend on Boxo, read the announcement and send us your transition questions before the end of September.
What's Changed
Added
bitswap/network/httpnet:DefaultConnectFailureBackoffconstant, the wait beforeConnectre-probes an endpoint after a failed probe.bitswap/network/httpnet:CooldownTrackertype withNewCooldownTracker,SharedCooldownTrackerand theWithCooldownTrackeroption, for controlling where per-host backoff state lives.
Changed
- ✨
bitswap/network/httpnet: removed the background ping loop that probed every connected HTTP peer withGET/HEAD /ipfs/bafkqaaaevery 5 seconds for the lifetime of the process (old: fixed 5s cadence per peer, results discarded; new: no periodic probes). Idle HTTP peers generate no background traffic. bitswap/network/httpnet: latency to HTTP peers is measured from theConnectprobe and from real retrieval responses instead of periodic pings.bitswap/network/httpnet:ConnectandPinghonor per-host cooldowns; after a failed endpoint probe,Connectdoes not re-probe the host untilRetry-After(when provided) orDefaultConnectFailureBackoffelapses (old: no backoff, re-probe on every call).bitswap/network/httpnet: per-host cooldowns live in a process-wide registry (SharedCooldownTracker) so backoff deadlines survive short-livedNetworkinstances (old: per-instance state, forgotten on every restart);Network.Stopno longer stops the registry, andWithCooldownTrackergives aNetworka private one.
Removed
bitswap/network/httpnet: HTTP 410 is no longer accepted as a successful answer to the connection probe; it was a workaround for a provider that has since shut down. 410 on real block requests still counts as a valid "content unavailable" reply.
Fixed
bitswap/network/httpnet: message senders created while a host was in cooldown no longer treat that cooldown as permanent; the request path resumes once the cooldown expires.bitswap/network/bsnet: peers already connected when Bitswap starts are now recognised. libp2p only reports connections opened after a notifier is registered, so a peer connected during node startup stayed invisible to Bitswap for the life of that connection, and no want was ever sent to it. Nodes with another way to find content usually masked this; nodes relying on an already-connected peer could wait forever.
Full Changelog: v0.42.1...v0.42.2
