>What is IPFS?
It's basically BitTorrent on steroids.
>why would one use it
* Distributed, decentralized filesharing (for now - ipfs is merely the communication protocol, and additional applications can exist on top of it).
* You can have a mutable address (i.e. always points to the latest version of a site), or a static address (points to a specific file). Yes, you can host sites over IPFS.
* Peers are found fast for new downloads since the entire content is basically one huge torrent.
* Already very fast, fast enough to stream 720p videos in realtime. Uploading and publishing are also very fast.
localhost:5001/webui gives you a web interface to upload files by drag'n'drop and explore the files you are seeding ("pinned files").
The command line functions are as follows:
>how to upload a single file
$ ipfs add ./$file
Access it at localhost:8080/ipfs/$outputted-hash
>how to upload a dir
$ ipfs add -r ./$dir
Access it at localhost:8080/ipfs/$last-outputted-hash
>how to make the thing mutable
$ ipfs name publish ./$file-or-dir-hash
Access it at localhost:8080/ipns/$output-hash-aka-peerid (it's ipNs not ipFs)
To update, publish another hash and it will be available at the same IPNS address.
To give an easier name to an ipns or ipfs site, add a TXT record to your DNS with value "dnslink=/ipfs/hash" (or ipns if it's an ipns hash).
You might want to use ipfs add -w <hash> for single files, it wraps the file in a directory which allows you to link through the directory with a readable filename for the file proper.
For publishing, the -t option, which defaults to 24h, decides how long the ipns name remains valid. You might want to use -t 9Post too long. Click here to view the full text.