Problem:
IPFS is a great system. It has been around for quite a time now. In practice there’s a substantial problem regarding file availability: if you post a file and your node goes down, and if nobody pinned it, well, it might be unavailable for other users.
Solution:
Most file coins have little more added value than putting an incentive on users willing to share their storage. But they reinvent the wheel, most of time in a less efficient way.
Our proposal is to use Stellar to incentive IPFS node owners to pin specific files.
Details:
- several gateways would allow users to upload files to IPFS
- users open an account on one gateway (“gateway origin”) and credit few XLM on it
- at this stage, file is dependent to the gateway, if it goes down, the file might be unavailable
- user posts a bid in XLM he is willing to pay for anyone pinning his file for 1 day, plus number of nodes he targets (minimum 3, maximum 10)
- IPFS nodes can query open bids (they get file size, minimum period, bid in XLM, and XLM/MB as normalized indication)
- if one node hits the bid, then he pins the file (this process can be automatic, nodes owners stating just what is their offer in XLM/M?.
- once a IPFS node has pinned a file, “gateway origin” requests IPFS network to check on daily frequency whether the file is available at least on nodes that have contracted. If it’s OK, nodes are paid by debit on user account. If KO then another bid is shown.
- when user unpin/delete his file, contracts are canceled
Eventually we can add following features:
- minimum pinning period with financial sanction if full period has not been covered (payment in arrears does not occur)
- get the average XLM/MB level for last 24 hours
Architecture:
- several gateways implementing their own UI to upload file to their server (running IPFS and Stellar)
- shared database between these gateways (gateways are identified and limited in number, so no need to setup a complex stuff) to keep track of bids, contracts
- stellar as payment network
- IPFS as storage system
Tasks:
- make a gateway MVP
- define the API to request live bids, hit them, etc…
These tasks are currently ongoing.
Name
ISFS (Inter Stellar File System) would be a first thought choice, since it integrates Inter Planetary File System and Stellar, but since InterStellar Exchange already exists, we would go for other names.
Misc:
StellarZac underlined to me, that @MikeFair already had an idea to make Stellar closer to IPFS; but my search on slack only resulted with 2 files he posted (using web browsers to upload files on IPFS). If someone has more insights on the discussion...