Skip to content

Latest commit

 

History

History
253 lines (154 loc) · 11.2 KB

File metadata and controls

253 lines (154 loc) · 11.2 KB

Changelog

All notable changes to this project will be documented in this file.

Note:

Legend

The following emojis are used to highlight certain changes:

  • 🛠 - BREAKING CHANGE. Action is required if you use this functionality.
  • ✨ - Noteworthy change to be aware of.

[Unreleased]

Added

Changed

Removed

Fixed

Security

[v0.12.0] - 2026-04-24

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 --help descriptions for someguy, someguy start, and someguy ask (including per-subcommand short descriptions and correct USAGE lines)
  • README, docs/environment-variables.md, docs/metrics.md, and docs/tracing.md rewritten for clarity (active voice, removed duplicated wording)

Fixed

  • docs/environment-variables.md: replaced the self-referential default for SOMEGUY_LIBP2P_LISTEN_ADDRS with a pointer to someguy start --help so the docs cannot drift from the CLI default
  • docs/metrics.md: fixed "Prometheus Glient" typo, corrected plural/subject-verb agreement, and documented the previously-undocumented someguy_cached_addr_book_probed_peers counter
  • docs/tracing.md: corrected the example port (80908190, matching SOMEGUY_LISTEN_ADDRESS default), replaced broken headers.md links with inline descriptions, and clarified that tracing covers inbound HTTP routing requests (not "gateway" requests)

[v0.11.1]

Changed

[v0.11.0] - 2025-11-20

Added

  • Added support for IPIP-476: /routing/v1/peers/closest/{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

Removed

Fixed

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

Security

[v0.10.0]

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)

[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.

[v0.9.0]

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.

Changed

Removed

Fixed

Security

[v0.8.1]

This release includes a number of dependency updates that include bug fixes and improvements.

Changed

[v0.8.0]

Added

  • Enabled CORS for PUT requests to /routing/v1/ipns.

[v0.7.1]

Fixed

  • Fix a bug whereby, cached peers with private multiaddrs were returned in /routing/v1/providers responses, as they were not passing through sanitizeRouter.

[v0.7.0]

Added

  • Peer addresses are cached for 48h to match provider record expiration on Amino DHT.
  • In the background, someguy probes cached peers at most once per hour (PeerProbeThreshold) by attempting to dial them to keep their multiaddrs up to date. If a peer is not reachable, an exponential backoff is applied to reduce the frequency of probing. If a cached peer is unreachable for more than 48h (MaxBackoffDuration), it is removed from the cache.
  • Someguy now augments providers missing addresses in FindProviders with cached addresses. If a peer is encountered with no cached addresses, FindPeer is dispatched in the background and the result is streamed in the reponse. Providers for which no addresses can be found, are omitted from the response.
    • This can be enabled via SOMEGUY_CACHED_ADDR_BOOK=true|false (enabled by default)
    • Two additional configuration options for the cachedAddrBook implementation:
      • SOMEGUY_CACHED_ADDR_BOOK_ACTIVE_PROBING whether to actively probe cached peers in the background to keep their multiaddrs up to date.
      • SOMEGUY_CACHED_ADDR_BOOK_RECENT_TTL to adjust the TTL for cached addresses of recently connected peers.

[v0.6.0]

Added

  • Add request tracing with sampling or require token for requests with Traceparent header. See tracing.md for more details.

Changed

  • go-libp2p-kad-dht updated to v0.28.1
  • Metrics someguy_http_request_duration_seconds and someguy_http_response_size_bytes were replaced with delegated_routing_server_http_request_duration_seconds and delegated_routing_server_http_response_size_bytes from upstream boxo/routing/http/server.

[v0.5.3]

Fixed

  • default config: restore proxying of all results from IPNI at cid.contact #83

[v0.5.2]

Changed

[v0.5.0]

Added

  • Added support for IPIP-484 which allows filtering network transports (addresses) and transfer protocols (bitswap, etc) in /routing/v1/ responses. #82

Changed

[v0.4.2]

Fixed

  • go-libp2p-kad-dht v0.26.1 fixes a bug where FindPeer did not return results for peers behind NAT which only have p2p-circuit multiaddrs. #80

[v0.4.1]

Added

  • SOMEGUY_LIBP2P_LISTEN_ADDRS config environment variable for customizing the interfaces, ports, and transports of the libp2p host created by someguy. #79

Fixed

  • enabled NAT port map and Hole Punching to increase connectivity in non-public network topologies #79

[v0.4.0]

Changed

Fixed

[v0.3.0]

Changed

Fixed

  • --version now includes the release tag
  • start command supports a graceful shutdown and improved handling of interrupt signals

[v0.2.3]

Changed

  • The resource manager's defaults have been improved based on Rainbow's and Kubo's defaults. In addition, you can now customize a few options using flags, or environment variables.

[v0.2.2]

Fixed

  • The /routing/v1/peers endpoint correctly filters out private addresses.

[v0.2.1]

Fixed

  • Upgraded Boxo with fix to ensure that /routing/v1/peers endpoint accepts all variants of Peer IDs that are seen in the wild.