Anyone familiar with the InterPlanetaryFileSystem?
Its a neat protocoll, based on torrents, blockchains and git that aims to replace the internet.
In practice its a nice tool to distribute all kinds of files, websites included.
The difference is that there is no single point of failure. And it is protected against sybill attacks (for those that care).
It is based not on resource location but on resource content. I.e. if I go to www.google.de/InterestingImage.png my browser will always give me whatever is at that location, be it the google logo or necro horseporn.
IPFS uses SHA-256 hashes instead. So the resource links that take the form of easy to remember strings like QmWsmdwbd2NLgyyB7FHLCCd3Qu8F7kXk19eZAdKGyFTdqv will always point me to the file whose hash corresponds to that value. Changing even one bit will yield a completely different hash.
The closest equivalent would be I2P or GnuNet, both extremely slow (as in pre 5,6kb/s slow)
Now the interesting part, how to get started.
First go to:https://ipfs.io/docs/install/
download the binary for your platform, unpack and move to that directory. (I will assume you use Linux or a Linux-like OS during the following steps)
Inside that directory, make sure that you have set the execution rights for the .sh file, run it as sudo or su to install.
thats it, you have now installed IPFS on your computer.
Except its pretty useless as it is right now.
We need a few more steps.
First: add a repository, that will be where all the files and chunks of files will be saved.
you can do this using the following line in the Bash:
this will create an IPFS repository inside this directory (the directory should exist and you should adapt your name of course).
Then you might want to add a bootstrap, a known address from where your IPFS installation can access the whole IPFS swarm, i.e. everyone else who has IPFS.
ipfs bootstrap add /ip4/18.104.22.168/tcp/4001/ipfs/QmdkJZUWnVkEc6yfptVu4LWY8nHkEnGwsxqQ233QSGj8UP
this is the access point of ipfspics: https://ipfs.pics/
Now initalize your IPFS:
(you can skip the export PATH and bootstrap part, in which case IPFS will use the default /.ipfs directory in your home directory as repository)
Now, to enable others to access the files you have added to IPFS (no we have not yet added anything, be patient pls) start the IPFS daemon in a terminal windows which you do not need:
(you can see that IPFS is legit rocket science here)
Now you can add files to your repo, for simplicity sake we will add a whole directory instead of file by file:
ipfs add -r /home/YOURNAME/TESTDIR/ > ipfsHashes.txt
As above, replace with your username and whatever nonempty directory you want to add to IPFS.
the ">" is of course a redirect, so that all hashes are neatly saved to a textfile, making the much easier to remember.
Congratulations, you just shared some files over IPFS.
A few neat tools to make your life easier:
The chrome/firefox addon "IPFS Gateway redirect", great for accessing IPFS stuff over your browser, works if the IPFS daemon is running in the background.
The link http://localhost:5001/webui
A more noobfriendly userinterface in your browser.
And of course the website of the project: www.ipfs.io with tons of resources to familiarize yourself further.
(the mailing list is especially nice, everyone is friendly and Juan Bennet, the inventor of IPFS is often active there)
Of note is that IPFS is still in alpha-stage, 0.3 to be precise, so expect bugs.
See next post(s) for a few files I am sharing, mostly books.