helia icon indicating copy to clipboard operation
helia copied to clipboard

[🏆 Golden path scenario] Browser-authored content retrievable through the ipfs.io gateway via a pinning service

Open BigLep opened this issue 1 year ago • 2 comments

Done Criteria

A user can author content in their browser via Helia and have it retrievable by another machine through the ipfs.io gateway by relying on pinning services (but not preload nodes).

Why Important

This is a common usecase that users hit. Failure here feeds the narrative that "IPFS doesn't just work".

Notes

  1. This feedback has come in multiple places (e.g., HackFS). A public collection point is https://discuss.ipfs.tech/t/how-to-retrieve-content-uploaded-via-helia-using-the-ipfs-gateway/16582?u=sgtpooki
  2. "retrievability from the ipfs.io gateway" is used as a popular "stand in" for other nodes on the network.
  3. Discoverability of the content created in the browser so that the ipfs.io gateway can discover it will happen with a pinning service. We’re not relying on other mechanisms like:
  4. To make this path solid, we will support both:
    1. Pin.origins - The Helia node can send its relayed address in origins if:
      1. DCUtR is supported in js-libp2p
      2. pinning service speaks
        1. the relay protocol
        2. DCUtR
        3. A libp2p transport supported from the browser like WebTransport, WebRTC, or WSS
    2. PinStatus.delegates - This assumes the pinning service returns multiaddrs that the browser can dial (WebTransport, WebRTC, or WSS)
  5. Per https://ipfs-shipyard.github.io/pinning-service-compliance/, at least a couple of pinning services seem compliant to rely enough on this (web3.storage and 4everland).
  6. Per above, this isn't a pure Helia issue. Tracking the usecase needs to go somewhere though, so I'm putting it Helia for now so we can link against it.
### Tasks
- [x] Helia pinning service library: https://github.com/ipfs/helia-remote-pinning/issues/1
- [ ] Helia pinning service example: https://github.com/ipfs-examples/helia-examples/issues/86
- [ ] TESTING???  How do we make sure we don't regress here?

BigLep avatar Sep 07 '23 05:09 BigLep