First experiments with IPFS
Installation
Im on Void Linux (musl). The installation was done on two workstations (one headless) in parallel.
$ xbps-query -Rs go-ipfs
[*] go-ipfs-0.4.10_3 Global versioned P2P merkle DAG file system
$ sudo xbps-install -Sy go-ipfs
...
go-ipfs-0.4.10_3: installed successfully.
...
$ xbps-query -f go-ipfs
/usr/bin/ipfs
/usr/share/bash-completion/completions/ipfs
/usr/share/licenses/go-ipfs/LICENSE
/usr/share/doc/go-ipfs/README.md
/usr/share/doc/go-ipfs/CHANGELOG.md
Setup
After reading some docs, i realized i need to have an IPFS daemon running.
I added a dedicated ipfs user via useradd -d /var/ipfs ipfs
, created a
directory named /etc/sv/ipfsd/
, and added the following contents to
/etc/sv/ipfsd/run
:
#!/bin/sh
export IPFS_PATH=/var/ipfs
exec chpst -u ipfs ipfs daemon --init
Dont forget to make the runfile executable.
I permanently enabled the daemon with ln -s /etc/sv/ipfsd /var/service/ipfsd
.
In Action
With the daemon active, i went to the web, searched for the next ipfs hash available, and did a successful cat of that file.
I noticed that my “Network Activity” LED on my workstation did not stop
flashing, so i checked the output of lsof(8)
to see that ipfs had
approximately 200 sockets in the ESTABLISHED
state.
A quick check with tcpdump(1)
confirmed those sockets were causing that
traffic.
The data volume in idle seemed to be around 10kB/s, both up and down. A calculation showed that this would yield around 51GB of traffic per month, while being idle.
My monthly data plan is 50GB. Currently im rarely using more than 30GB of it, but using IPFS (not just having it idle) would definitly exceed my data volume.
I cant use the “Interplanetary” FS on earth, due to my network resource constraints. Which is ironic, because tight network resource constraints are why communication in space is that difficult in the first place.
Here is an issue related to its excessive resource usage:
Although @jbenet suggests we can have this done on a higher level, a long-running actively used IPFS daemon will currently eat all memory available on a system which basically means that, without memory constraints it will not be stable.
As of writing this, these issues are not solved.
Summary
IPFS does not hold up to its name.
Crap software that sounds good in theory, but fails miserably in practice is an antipattern i’ve seen much lately.