Repository navigation
Releases
Releases · ipfs/ipfs-check
v0.11.2
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 ipfs-check. If you depend on ipfs-check, read the announcement and send us your transition questions before the end of September.
Changed
- Updated to boxo v0.42.2 (from v0.42.1).
- Every check dials the HTTP endpoints it reports on. boxo now remembers a failed probe for a minute, across the whole process. That would make a later check of the same host repeat the old failure without dialing. ipfs-check opts out of it.
- HTTP providers no longer get a background request every 5 seconds while a check runs. Latency now comes from the connection probe and from real block responses.
Full Changelog: v0.11.1...v0.11.2
v0.11.1
Changed
- Updated to boxo v0.42.1 (from v0.42.0), go-libp2p v0.49.0 (from an unreleased v0.48.1 snapshot) and go-unixfsnode v1.10.6 (from v1.10.5).
Fixed
- A provider whose HTTPS endpoint is announced on an IPv6 address (
/ip6/.../tcp/443/tls/http) is checked instead of being written off. The IPv6 literal was not bracketed when the endpoint became a URL, so the browser and CORS probes went to a host and port that do not exist and the provider read as unusable from a browser.
Security
- The go-libp2p bump carries a fix for CVE-2026-57497, a memory exhaustion in webtransport-go's buffering of unknown capsules.
Full Changelog: v0.11.0...v0.11.1
v0.11.0
Added
- ✨ Every provider now says whether a web browser can retrieve from it, and whether a Service Worker can. Four kinds of address count: Secure WebSockets (
/tls/ws,/wss), WebTransport, WebRTC Direct, and HTTPS trustless gateway endpoints (/tls/http,/https). A plain/wsaddress, or a bare/tcpor/quic-v1one, is unusable from a browser however well it serves everyone else, and a provider offering only those is now flagged instead of passing as fully working. Service Workers get a second line because they have no WebRTC, so a WebRTC Direct peer is reachable from a browser tab but not from a Service Worker (#85, #25). - Both answers report what was reached, not what was advertised. Browser-usable libp2p addresses are dialed on their own, and HTTPS endpoints are asked for a block the way a page would ask, carrying an
Originheader. An expired certificate, a port that never answers and a missingAccess-Control-Allow-Originheader therefore all read as "no"./dnsaddrrecords are resolved first, including chained ones, since they hide the transport behind a TXT record. - Providers with an HTTPS endpoint get a
CORSline of their own, since an endpoint can answer a block request perfectly and the browser still discards the bytes without anAccess-Control-Allow-Originheader. When that header is the only thing in the way, the provider is labelledNo CORSrather than the vaguerNo Browser, because the fix is one response header. - The results make a provider a browser cannot use obvious at a glance: an amber card and a
No Browser,No Service WorkerorNo CORSbadge, and a note above the list when no working provider can be reached from a browser at all. Two new FAQ entries explain what the checks mean and how to make a node reachable. - ✨ The web UI now surfaces every check failure as a clear, styled message with a Retry button instead of spinning forever or printing a raw error. It aborts a stalled backend after the requested timeout plus a 5 second leniency, and separately reports an unreachable backend (wrong URL, dead domain, CORS), an HTTP error response (with the backend's message), and a response it cannot parse. Every failure message also links to running your own self-hosted backend.
- README documents how to self-host the backend, including the CORS headers it sends and how to keep the UI embeddable in an iframe.
Changed
- Updated to boxo v0.42.0 (from v0.41.0) and go-libp2p-kad-dht v0.42.1 (from v0.41.0), whose
dht.Newno longer takes a context. - The
/checkendpoint sends liberal CORS headers (Access-Control-Allow-Origin: *, plusAccess-Control-Allow-MethodsandAccess-Control-Allow-Headers) and answersOPTIONSpreflight, so any frontend or self-hosted deployment can call it cross-origin.
Fixed
- A peer check that connected but reported no connection address no longer replaces the whole result with "response could not be displayed".
Full Changelog: v0.10.0...v0.11.0
v0.10.1
What's Changed
- upgrade vole to v0.0.1 by @gammazero in #142
- feat: handle backend failures with retry by @lidel in #143
- update dependencies by @gammazero in #144
Full Changelog: v0.10.0...v0.10.1
v0.10.0
What's Changed
Full Changelog: v0.9.2...v0.10.0
v0.9.2
What's Changed
- upgrade to boxo v0.39.0 by @gammazero in #138
- chore: bump actions; add changelog by @lidel in #136
Full Changelog: v0.9.1...v0.9.2
v0.9.1
What's Changed
- Update go-libp2p-kad-dht to v0.36.0 by @gammazero in #119
- update dependencies by @gammazero in #127
- modernize code by @gammazero in #128
- Dockerfile uses go1.26 by @gammazero in #129
Full Changelog: v0.9.0...v0.9.1
v0.9.0
v0.8.0
v0.7.0
What's Changed
- ci: uci/update-go by @web3-bot in #101
- feat: ipfs-check can be embedded as iframe by @SgtPooki in #102
- feat: display peer agent version in diagnostics by @lidel in #105
- feat: non-blocking accelerated DHT initialization by @lidel in #103
- chore: update deps by @lidel in #104
- fix: small race fixes by @lidel in #106
Full Changelog: v0.6.0...v0.7.0

