First time I tried IPFS on my computer was by using “ipfs companion”. As a beginner, I uploaded a few files in it, and they appear in my browsing list. Everything was going right…
On a second computer, in the same LAN, I installed “go-ipfs”.
I used ipfs get CLI commands to retrieve my previously published files. And it works!! I was thinking, great!
But I realize that it was missing indexes.
- On 1st computer, every data was using MFS (ipfs files ls)
- On 2nd computer this structure is not maintained anymore…
This was very confusing… But I didn’t care then.
To benefit from “decentralized storage” I was willing to “pin” my data on multiple nodes.
So I made experiments.
First, I tried “ipfs cluster”. It works pretty well… But as my node storage wasn’t equal on each, the smallest was limiting the whole. This configuration is good if you have nodes in different regions of earth and maintain data consistency from everyplace. It was not my personal need. I didn’t want to buy as much as same size disks to replicate data on every nodes!!
Then I tried “textile” as cafe was promising to make a more precise pin management applied. This time, data replication was better… But, protocol was hard to understand and a new problem occurs. If my swarm nodes didn’t share the same ~/.ipfs/swarm.key
I get performance troubles.
It was about DHT leaking… When my network reach a certain point, ipfs swarm peers
gets inconsistent between nodes… Nodes I didn’t know about was entering my swarm. IPNS publish was slow. In fact, nothing really works. So sharing the same swarm.key was the only mean I found to control bootstrap list
and swarm peers
. I used this configuration for a while. But adding a new node, sending this key and maintaining security process was a pain!!
At the end, my IPFS swarm was working, but impossible to easily extend.
But last January, I discovered ScuttleBot and realize it was implementing network control I was missing in IPFS. Adding “User Accounts” (as textile), but with an easier to use protocol and far more library available!!
ScuttleButt protocol is like a light ipfs, with more options, but “blob” storage limitation up to 8MB. So I decided to mix them.
With some simple bash tasks, every node is getting its SSB “friends list” and apply it to ipfs bootstrap
and ipfs swarm peers
. It was excellent!! Now I could remove my swarm.key as no more DHT leaking was happening… SO GREAT!
As I was working with Libre Money and didn’t want to wait for Filecoin… I start making some “nano chains” into ipfs (to memorize accountings) in a mutable filesystem I called zenTAG. So I was able to create an economy for my files
I am now working on a protocol fat stack over Debian to normalize it. I am welcoming anyone interested in joining my experiments.