I'm a software developer and I have a problem. Folks keep talking about using blockchains for data, but there isn't a nice, simple solution to do this with BCH.

"Storing ALL data on the blockchain is bad", they say, "but it's OK to use a blockchain (e.g. BCH) as an anchor."

"Keep the data offchain", they say, "and IPFS (https://ipfs.io/) is a good way to do this."

And then the conversation stops and the crickets take over...

Unfortunately, this lack of data "utility" gets in the way of writing web applications, because if you're using a web browser, you expect to get/publish your data via HTTP. Right now (based on my impressions and limited research over the past two years), it seems like everything with IPFS is "roll your own" and HTTP/IPFS gateways are "out there".

Nowadays, the SPV infrastructure for BCH using HTTP is pretty good, so treating the blockchain as a graph of transactions is really working pretty well, even for small-ish chunks of data (ala https://bitcoinfiles.com/). So as a webapp developer, using browser clients with an embedded wallet or wallet plugin for user actions and intents is an intriguing way to do stuff. However, file and asset transfer (publishing/retrieving) is still not very well-served, which is where I come back to IPFS.

I'd like to do "the right thing" in BCH-land, which for this I am defining as anchoring data on BCH and storing on IPFS, but I'd like to guarantee that files I have uploaded via IPFS are always available over HTTP and I'd be willing to pay to do that instead of having to run my own server (just like I'm willing to pay AWS for S3 data storage). So this comes down to a list of questions: