Skip to content

Releases: ipfs/someguy

v0.14.0

08 Jun 21:52
5b4eb30

Choose a tag to compare

Note

This release is brought to you by the Shipyard team.

Changed

Fixed

  • GetIPNS no 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 caps max-age to the record's remaining validity and sizes the stale-while-revalidate/stale-if-error window to fit within its EOL. An expired record, or one without an EOL validity, returns Cache-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. See docs/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/v1 responses 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

26 May 21:56
e703b8f

Choose a tag to compare

Note

This release is brought to you by the Shipyard team.

Added

  • --records-limit / SOMEGUY_RECORDS_LIMIT (default 100) caps results for Accept: application/json, matching the SHOULD-cap in HTTP Routing v1 §4.1.5. Set to 0 to disable the cap. #150
  • --streaming-records-limit / SOMEGUY_STREAMING_RECORDS_LIMIT (default 1000) caps results for Accept: application/x-ndjson. Set to 0 to disable the cap. #150

Changed

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

24 Apr 15:07
205ae37

Choose a tag to compare

Note

This release is brought to you by the Shipyard team.

Changed

Full Changelog: v0.11.1...v0.12.0

v0.11.1

16 Feb 23:57
72b6733

Choose a tag to compare

Note

This release is brought to you by the Shipyard team.

Changed

Full Changelog: v0.11.0...v0.11.1

v0.11.0

20 Nov 17:21
bcedcb2

Choose a tag to compare

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 auto placeholder is replaced with network-recommended values.
    • All endpoint flags (--provider-endpoints, --peer-endpoints, --ipns-endpoints) default to auto
    • See environment-variables.md for configuration details

Changed

Fixed

  • Fixed multiple race conditions and deadlocks in iterator implementations (#119)

Full Changelog: v0.10.0...v0.11.0

v0.10.0

15 Sep 02:14
18c461a

Choose a tag to compare

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_ENDPOINTS are configured but no SOMEGUY_HTTP_BLOCK_PROVIDER_PEERIDS are 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

Changed

  • Modernized Docker build configuration (#118)
  • Updated to Go 1.24/1.25 (#115, #118)

Full Changelog: v0.9.1...v0.10.0

v0.9.1

16 May 17:58
6cb37a4

Choose a tag to compare

Note

This release is brought to you by the Shipyard team.

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.

PRs

  • feat(metrics): add delegated routing client metrics to prometheus by @hsanjuan in #113

New Contributors

Full Changelog: v0.9.0...v0.9.1

v0.9.0

08 May 01:42
1e063a1

Choose a tag to compare

This release is brought to you by the Shipyard team.

Added

  • Added http-block-provider-endpoints and http-block-provider-peerids options 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), FindProviders returns a provider record containing a predefined PeerID and the HTTP gateway as a multiaddr with /tls/http suffix. (see example in #110)

Changed

PRs

Full Changelog: v0.8.1...v0.9.0

v0.8.1

04 Mar 14:09
7e80d9d

Choose a tag to compare

What's Changed

Full Changelog: v0.8.0...v0.8.1

v0.8.0

23 Jan 08:40
9deb78d

Choose a tag to compare

What's Changed

Full Changelog: v0.7.1...v0.8.0