IPFS 0.8 Is Released
go-ipfs v0.8 and ipfs-desktop 0.14.0 brings some interesting new features to the Interplanetary File System including the ability to ask remote services to pin data and faster local pinning.
"IPFS and libp2p in 2020" with Molly Mackinlay at CSCON: Molly Mackinlay explains what IPFS is and why it's cool in this 32 minutes long video.
The Interplanetary File System (IPFS) is a system for storing and transfering verifiable, content-addressed data in a peer-to-peer network. You can imagine a combination of a large git tree and huge BitTorrent swarm to get an idea of how it works. That's not what it is, but is very roughly how it works.
One difference between git and IPFS is that the data stored on IPFS is not necessarily persistent. It is possible to make data persist on your own IPFS node by "pinning" it. go-ipfs, the GO implementation of the file system server part of IPFS, supports remote pinning as of version 0.8.0. You can now ask remote services to pin your data for you using a authenticated API but you can't expect random strangers to do that for no reason. There is simply no incentive to pin some random strangers data since IPFS does not have any crypto-currency, or any other payment system, built into it. The new remote pinning feature is therefore mostly useful for remote IPFS servers under your control or the control of someone you've paid or made some deal with.
Enter Filecoin (FIL)
Filecoin is a crypto-currency based storage system built using the IPFS libraries. It is a separate storage network which works pretty much the same way with one notable exception: Filecoin has a digital currency called FIL and a system for paying "miners", or storage providers, to permanently store (pin) data.
Your obvious question now may be: So how do I get on board the crypto-currency train by mining Filecoin? The easy answer is probably: You don't. A close-up inspection of the "General hardware requirements" reveals that you need several computers with a 8+ core CPU and 128 GiB RAM and, preferably, a fast 256 GiB NVMe drive for swap and a minimum of a 1 TiB NVMe disk for storage cache. The computers will also need a "powerful" graphics card. One "miner node" needs a primary "storage miner" and several "workers" (see example architecture). You can not just re-purpose some old laptop or NAS you have lying around in a corner, you will have to invest in several shiny new high-end computer systems if you want to participate.
The IPFS storage software for servers is available as a GO implementation called
go-ipfs. Remote pinning (=persistent storage) and some other new pinning features is the big high-light in go-ipfs 0.8.
"Pins" can now have names and they can be searched by name, CID or status.
There's a new API for remote pinning and new series of
ipfs pin remote are available to manage remote pins.
The code for pinning files on local nodes has been re-worked so and made a lot faster. This is specially noticeable when pinning or unpinning a large number of files.
It is possible to secure DNSLink names with HTTPS using some trickery that's not very strait forward so you will want to read the documentation if that is something you want to do.
go-ipfs is available for Linux, Windows and macOS. Source and binaries are available from github.com/ipfs/go-ipfs/releases.
There's also a new version of the ipfs desktop client available. It is written using electron and the latest version uses electron 11.x. It comes with go-ipfs 0.8. It does not offer much new in terms of features, but it does have a lot of bug-fixes since the last release in October 2020.
The IPFS desktop client can be acquired from a different GitHub releases page at github.com/ipfs-shipyard/ipfs-desktop/releases/. You will likely have to download it and install it manually, there is a very slim chance that you will find it in your favorite Linux distributions repositories unless you are using something called "Arch" or "Guix".