ipfs / kubo

An IPFS implementation in Go
https://docs.ipfs.tech/how-to/command-line-quick-start/
Other
16.2k stars 3.03k forks source link

Serve Trustless IPFS HTTP Gateway API via libp2p (experimental) #10049

Closed aschmahmann closed 1 year ago

aschmahmann commented 1 year ago

Description

The trustless gateway specification allows retrieval of blocks and certain types of DAGs over HTTP.

Some tooling has already been built that leverages the trustless gateway API to move data around (https://github.com/little-bear-labs/ipfs-chromium, https://github.com/ipfs/bifrost-gateway, https://github.com/filecoin-project/lassie, helia-enabled service worker, etc.).

While some of these tools use HTTP itself, it would also be nice if they could use the same semantics but without the requirements of CA certs (+ domain names), public IP addresses, etc. To enable this we can use HTTP over libp2p.

This proposal is to start by enabling an optional server for Trustless Gateway over libp2p, and future issues may tackle support for client support as well.

The relevant pieces are:

BigLep commented 1 year ago

2023-08-29 conversation on testing this: We need a bridge from HTTP/1.1 that passes it to libp2p stream layer. We'll be running conformance a second time in trustless mode against this proxy port.