Skip to content

SOMEGUY_HTTP_BLOCK_PROVIDER_ENDPOINTS as routing proxy for trustless gateways #109

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
lidel opened this issue Apr 25, 2025 · 1 comment · Fixed by #110
Closed

SOMEGUY_HTTP_BLOCK_PROVIDER_ENDPOINTS as routing proxy for trustless gateways #109

lidel opened this issue Apr 25, 2025 · 1 comment · Fixed by #110
Labels
help wanted Extra attention is needed kind/enhancement A net-new feature or improvement to an existing feature P2 Medium: Good to have, but can wait until someone steps up

Comments

@lidel
Copy link
Member

lidel commented Apr 25, 2025

Summary

Allow someguy to act as delegated router for trustless gateway endpoints that don't have own /routing/v1/providers/{cid} (by probing the statically configured endpoint).

Value for ecosystem

Simplify integration of existing storage systems (e.g. ipfs-cluster's Kubo nodes running NoFetch gateway, or simpler hosting like S3 buckets hosting static blocks) into everything that accepts addictional delegated routing endpoints (boxo/helia, kubo/rainbow, inbrowser.link/verified-fetch).

Potentially helps with:

Implementation

Add SOMEGUY_HTTP_BLOCK_PROVIDER_ENDPOINTS that accepts list of gateway origins, similar to how existing SOMEGUY_PROVIDER_ENDPOINTS works.

The difference is that the way those endpoints are queried, is HEAD /ipfs/cid?format=raw with Accept: application/vnd.ipld.raw, and if result of the probe was HTTP 200 (OK), then a peer results with /tls/http multiaddr is returned.

When SOMEGUY_HTTP_BLOCK_PROVIDER_ENDPOINTS are defined, use them in addition to other routing systems when returning results for /routing/v1/providers/{cid}.

@guillaumemichel guillaumemichel added help wanted Extra attention is needed P2 Medium: Good to have, but can wait until someone steps up kind/enhancement A net-new feature or improvement to an existing feature labels Apr 29, 2025
@lidel
Copy link
Member Author

lidel commented May 6, 2025

Results need to have PeerIDs.

We may generate PeerIDs from the hostname of each endpoint, or have a sibling optional SOMEGUY_HTTP_BLOCK_PROVIDER_PEERIDS which if present, will be a comma separated list of PeerIDs to use for each "http provider" (in the same order).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed kind/enhancement A net-new feature or improvement to an existing feature P2 Medium: Good to have, but can wait until someone steps up
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants