Releases: ipfs/someguy
Releases · ipfs/someguy
v0.14.0
Note
This release is brought to you by the Shipyard team.
Changed
Fixed
GetIPNSno longer returns an IPNS record whose EOL has already passed. An expired record is cryptographically invalid, so it is treated as not found, and when multiple routers answer the first non-expired record is returned. #154/routing/v1/ipns/{name}no longer gives a cache a freshness window that outlives the record. It capsmax-ageto the record's remaining validity and sizes thestale-while-revalidate/stale-if-errorwindow to fit within its EOL. An expired record, or one without an EOL validity, returnsCache-Control: no-store. #155/routing/v1/peers/{peerid}now serves addresses cache-first, the same way/routing/v1/providers/{cid}does. It answers from the cached address book and host peerstore before falling back to a DHT lookup, so a relay-dependent peer that is absent from peer routing but recently seen as a provider is no longer answered with an empty result. Seedocs/peer-address-caching.md. #153- A completed identify now prunes a peer's cached addresses down to its current advertised set (signed peer record or identify listen addresses) plus any live-connection address, instead of unioning forever. This stops stale certhashes, dead relay circuits, and rotated NAT ports from accumulating across provider lookups and gossip. #153
- Multiaddrs in
/routing/v1responses are returned in a stable sorted order. They previously came back in nondeterministic order, so repeated requests for the same peer or provider returned the same addresses shuffled differently. #153
Security
- The OpenTelemetry OTLP HTTP exporter now caps response bodies at 4 MiB, so a hostile or man-in-the-middle collector cannot exhaust someguy's memory (CVE-2026-39882). The gRPC exporter was never affected. #155
Full Changelog: v0.13.0...v0.14.0
v0.13.0
Note
This release is brought to you by the Shipyard team.
Added
--records-limit/SOMEGUY_RECORDS_LIMIT(default100) caps results forAccept: application/json, matching the SHOULD-cap in HTTP Routing v1 §4.1.5. Set to0to disable the cap. #150--streaming-records-limit/SOMEGUY_STREAMING_RECORDS_LIMIT(default1000) caps results forAccept: application/x-ndjson. Set to0to disable the cap. #150
Changed
- ✨ JSON responses return up to 100 providers (previously 20). NDJSON streams up to 1000 results (previously unbounded). Both caps are tunable via the new flags. #150
- boxo v0.40.0
- go-libp2p-kad-dht v0.40.0
- go-log/v2 v2.9.2
Fixed
- JSON delegated routing requests now surface close to the requested number of providers. The boxo server enforces the records limit after filtering, so records without addresses no longer shrink the response below
--records-limit. #150
Full Changelog: v0.12.0...v0.13.0
v0.12.0
Note
This release is brought to you by the Shipyard team.
Changed
- boxo v0.39.0
- go-libp2p v0.48.0
- go-libp2p-kad-dht v0.39.1
- bumped Docker workflow actions (
setup-qemu-action,setup-buildx-action,login-action,build-push-action) to latest majors - Docker image builder bumped to
golang:1.26-bookworm - clearer
--helpand docs descriptions
Full Changelog: v0.11.1...v0.12.0
v0.11.1
v0.11.0
Note
This release is brought to you by the Shipyard team.
Added
- Added support for IPIP-476:
/routing/v1/dht/closest/peers/{key}endpoint for finding DHT-closest peers (#124, #127)- Returns DHT-closest peers to a given CID or PeerID
- Accepts both CID and legacy PeerID formats (e.g.,
12D3KooW...) - Uses WAN DHT only for more reliable results
- Includes cached addresses in results when available
- Properly returns HTTP 500 when DHT is disabled
- AutoConf support: automatic configuration of bootstrap peers and delegated routing endpoints (#123). When enabled (default), the
autoplaceholder is replaced with network-recommended values.- All endpoint flags (
--provider-endpoints,--peer-endpoints,--ipns-endpoints) default toauto - See environment-variables.md for configuration details
- All endpoint flags (
Changed
Fixed
- Fixed multiple race conditions and deadlocks in iterator implementations (#119)
Full Changelog: v0.10.0...v0.11.0
v0.10.0
Note
This release is brought to you by the Shipyard team.
Added
- Automatic generation of peer IDs for HTTP block providers when not explicitly configured (#117)
- When
SOMEGUY_HTTP_BLOCK_PROVIDER_ENDPOINTSare configured but noSOMEGUY_HTTP_BLOCK_PROVIDER_PEERIDSare configured, synthetic PeerIDs will now be autogenerated. These are deterministic placeholders derived from endpoint URLs, used only for routing system compatibility with HTTP-based trustless gateways - no libp2p cryptographic operations are performed with these IDs
- When
Changed
Full Changelog: v0.9.1...v0.10.0
v0.9.1
Added
- Added exporting of routing http client metrics: the endpoint will now include
someguy_routing_http_client_*metrics when delegated routing clients are used:- Histogram: the latency of operations by the routing HTTP client
someguy_routing_http_client_latency_bucket{code,error,host,operation,le}someguy_routing_http_client_latency_sum{code,error,host,operation}someguy_routing_http_client_latency_count{code,error,host,operation}
- Histogram: the number of elements in a response collection
someguy_routing_http_client_length_bucket{host,operation,le}someguy_routing_http_client_length_sum{host,operation}someguy_routing_http_client_length_count{host,operation}
- See docs/metrics.md for more details.
- Histogram: the latency of operations by the routing HTTP client
PRs
New Contributors
Full Changelog: v0.9.0...v0.9.1
v0.9.0
This release is brought to you by the Shipyard team.
Added
- Added
http-block-provider-endpointsandhttp-block-provider-peeridsoptions to enable using a trustless HTTP gateway as a source for synthetic content routing records.- When the configured gateway responds with HTTP 200 to an HTTP HEAD request for a block (
HEAD /ipfs/{cid}?format=raw),FindProvidersreturns a provider record containing a predefined PeerID and the HTTP gateway as a multiaddr with/tls/httpsuffix. (see example in #110)
- When the configured gateway responds with HTTP 200 to an HTTP HEAD request for a block (
Changed
accelerated-dhtoption was removed and replaced with adhtoption which enables toggling between the standard client, accelerated client and being disabled- boxo v0.30.0
- go-libp2p v0.41.1
- go-libp2p-kad-dht v0.32.0
PRs
- ci: uci/copy-templates by @web3-bot in #107
- feat: enable using an HTTP block provider as a routing backend by @aschmahmann in #110
- chore: update dependencies by @lidel in #111
Full Changelog: v0.8.1...v0.9.0
