This is a placeholder for work that will improve connectivity
by leveraging peers that expose HTTP Gateway over WebTransport with certhash.
Not ready yet, but will update this issue as relevant building blocks land in ecosystem.
High level idea
- libp2p supports webtransport (https://github.com/libp2p/specs/tree/master/webtransport)
- why it matters? it allows self-signed certificates in web browser without triggering mixed-content warning, allows for end-to-end encryption without having to get TLS cert from a CA (makes IPFS node deployment way way easier)
- webtransport listener is enabled by default in Kubo, which is ~80% of IPFS nodes
- libp2p wants to expose HTTP support over arbitrary transports (incl. webtransport)
- just like we reuse HTTP client from Chromium to fetch blocks over plain HTTP(S), we could also ook into reusing WebTransport implementation to fetch blocks [over HTTP over [lipbp2p connection [over WebTransport]]]
- when ipfs-chrome is unable to fetch CID from a gateway, it could do lookup over
/routing/v1 endpoint (https://specs.ipfs.tech/routing/http-routing-v1/, https://github.com/protocol/bifrost-infra/issues/2142) to learn about addresses of peers that speak /webtransport
Open questions
- is this worth it?
- how the client can tell a peer speaks http gateway over /webtransport?
- what would be the absolute minimum amount of libp2p we would have to reimplement here?
This is a placeholder for work that will improve connectivity
by leveraging peers that expose HTTP Gateway over WebTransport with certhash.
Not ready yet, but will update this issue as relevant building blocks land in ecosystem.
High level idea
/routing/v1endpoint (https://specs.ipfs.tech/routing/http-routing-v1/, https://github.com/protocol/bifrost-infra/issues/2142) to learn about addresses of peers that speak/webtransportOpen questions
/webtransportconnection it will grow the pie of possible sources of blocks/httplibp2p/specs#550 and add HTTP spec libp2p/specs#508/ipfs/{cid}block/car in Kubo