All notable changes to this project will be documented in this file.
Note:
- The format is based on Keep a Changelog.
- This project adheres to Semantic Versioning.
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.
- 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.
- When the configured gateway responds with HTTP 200 to an HTTP HEAD request for a block (
accelerated-dhtoption was removed and replaced with adhtoption which enables toggling between the standard client, accelerated client and being disabled
This release includes a number of dependency updates that include bug fixes and improvements.
- Enabled CORS for PUT requests to
/routing/v1/ipns.
- Fix a bug whereby, cached peers with private multiaddrs were returned in
/routing/v1/providersresponses, as they were not passing throughsanitizeRouter.
- 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
FindProviderswith cached addresses. If a peer is encountered with no cached addresses,FindPeeris 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
cachedAddrBookimplementation:SOMEGUY_CACHED_ADDR_BOOK_ACTIVE_PROBINGwhether to actively probe cached peers in the background to keep their multiaddrs up to date.SOMEGUY_CACHED_ADDR_BOOK_RECENT_TTLto adjust the TTL for cached addresses of recently connected peers.
- This can be enabled via
- Add request tracing with sampling or require token for requests with Traceparent header. See tracing.md for more details.
- go-libp2p-kad-dht updated to v0.28.1
- Metrics
someguy_http_request_duration_secondsandsomeguy_http_response_size_byteswere replaced withdelegated_routing_server_http_request_duration_secondsanddelegated_routing_server_http_response_size_bytesfrom upstreamboxo/routing/http/server.
- default config: restore proxying of all results from IPNI at
cid.contact#83
- Added support for IPIP-484 which allows filtering network transports (addresses) and transfer protocols (bitswap, etc) in
/routing/v1/responses. #82
- go-libp2p-kad-dht v0.26.1 fixes a bug where
FindPeerdid not return results for peers behind NAT which only have p2p-circuit multiaddrs. #80
SOMEGUY_LIBP2P_LISTEN_ADDRSconfig environment variable for customizing the interfaces, ports, and transports of the libp2p host created by someguy. #79
- enabled NAT port map and Hole Punching to increase connectivity in non-public network topologies #79
- libp2p identify agentVersion correctly indicates someguy version
- boxo 0.21
routing/httpfixes (release notes) - go-libp2p 0.35
--versionnow includes the release tagstartcommand supports a graceful shutdown and improved handling of interrupt signals
- 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.
- The
/routing/v1/peersendpoint correctly filters out private addresses.
- Upgraded Boxo with fix to ensure that
/routing/v1/peersendpoint accepts all variants of Peer IDs that are seen in the wild.