Create a more fluent transition between people having the client running and not

Very often someone posts a URL for ipfs in the following format:

http://127.0.0.1:8080/ipfs/QmcniBv7UQ4gGPQQW2BwbD4ZZHzN3o3tPuNLZCbBchd1zh

It would make more sense to provide all URLs of IPFS in the format of one central proxy, like:

http://ipfs.io/ipfs/QmcniBv7UQ4gGPQQW2BwbD4ZZHzN3o3tPuNLZCbBchd1zh

Which is being rewritten/rerouted locally to 127.0.0.1 if someone has the client running locally.

Or even better is rerouted in general to the most local IPFS proxy as listed on the ipfs public-gateway-checker (Sorry, I was not allowed to paste 3 links in the document).

This would actually allow to create websites and link to files in IPFS, without the issue of them constantly having broken links.

The obvious argument against doing this, is the centralized aspect of it. But maybe there is smart way of doing this. Paired with some eject routine, to have a temporary solution.

It is just such a petty that default links do not work for anyone. And do not even link towards a resource that explains what is going on.

We looked into this, sadly not feasible because of many reasons:

  • http:// will be replaced with https:// because of HSTS header on ipfs.io – a different name would have to be used, and have no HSTS.
  • Sharing http:// without HSTS flag will introduce a privacy leak (everyone can see CID you shared because request went in cleartext), and open a bigger surface for MITM (no TLS tunel, so anyone along the way can swap the payload, not just the gateway and governments)
  • http:// with hostname other than localhost is not a Secure Context, which means websites will break because of missing Web APIs and mixed-content errors.

Bummer. But alternative ideas are welcome :slight_smile:

Brave browser already supports these :
ipfs://QmcniBv7UQ4gGPQQW2BwbD4ZZHzN3o3tPuNLZCbBchd1zh

I can’t imagine anything neater than that .