IPFS explained simply – A decentralized file system for public networks
IPFS stands for InterPlanetary File System. IPFS is a decentralized, i.e. distributed, content-addressable file system and hypermedia protocol that does not use a central server, so it has no single point of failure. The result is a decentralized network that uses a peer-to-peer method to store files and make them available to all IPFS users and, via gateways, to non-IPFS users as well. In contrast to the frequently used Hypertext Transfer Protocol (http), which web servers use to transfer data and is controlled centrally, IPFS focuses on decentralization. IPFS works wonderfully if users know how IPFS is structured, installed, and used.
IPFS can be used by everyone, as mentioned. It may not be that easy for laymen but using and supporting IPFS is certainly possible for anyone who is willing to put a little effort into it. Especially if you live in a country where the free exchange of information is restricted, whether by an unstable Internet connection or government restrictions. With that in mind, this introduction to the topic may be your first step towards using IPFS.
What is IPFS used for?
IPFS is used to store and retrieve files without using a central location (server/host). Hypermedia files can be photos, videos, texts, graphics and more. These files are visible to all IPFS users as long as the hash value of an uploaded file is known, more on the hash value later. In the meantime, there are also gateways that make it possible to access the files in the IPFS network via the established http protocol, e.g. from an HTTP website, without the website visitors needing active IPFS clients.
IPFS is also used to store data more independently, securely, longer, and still openly on the network. For example, it can be very valuable for research, freedom of expression and archiving (no duplicates, no forgetting data, security of access, protection against data loss). Now to the hash values.
Hash values for IPFS
Hash values are cryptographic values which, in the case of IPFS, are generated when a file is uploaded. The hash values make it possible to identify a file or several files in a folder and any changes to said files. In this way, one can also find out for oneself which node (other active IPFS user) has copies of the file or how often the file is stored in the network. It should be noted that there is no “ledger” as with the blockchain of Bitcoin. So you can’t go and see a single list of all the data stored on the IPFS network.
When an IPFS user uploads a file to the network, a hash value is generated. If it is the first file, i.e. with an as yet unknown hash value, this file is made available in the network by the uploading party via the IPFS client. If the exact same file already exists in the network, the newly uploaded file will receive the same hash value as the existing file and will be treated as a replication. Thus, no duplicate of a file can be created. However, if the file is changed slightly and uploaded to the IPFS network, a new hash value is generated, but the older file can remain in the network. But how does a file get from person A to person B in such a decentralized way?
The Peer-To-Peer Method in IPFS
Peer-to-peer simply means nothing more and nothing less than that something gets from one person to another in the most direct way. In our case, it is files from one computer (A) to the next computer (B). So that you can understand it even better, we have prepared pictures here that make it clear to you and ideally make you aware of the difference that centralised, decentrally distributed networks can make.
The first picture shows you that all surrounding computers (network members) are connected to a central location. This means that the files stored at the central location can be destroyed under bad circumstances (picture 2) and you as a network member of the central network will lose your connection to it if the central location fails. Now let’s look at the structure of a decentralized network.
In picture 3 you can see that the distribution of the individual network participants is structured differently than in the first pictures. In picture 3, a computer is always connected to other computers, as long as the computer is online. As soon as network member A uploads a file, it takes up to 24 hours before the file is distributed in the network. To pin the file to a network member, pinning services are also used, one of which is Pinanta, whose service we used for the instructions below.
If network member A fails from the network after a certain time, the data will still be present and retrievable on the IPFS network. Let’s assume that the reproductions of the uploaded file are located at network member B and C, so network member A, when retrieving the file, receives the file tamper-free via the fastest route from network member C and not B.
Furthermore, you can easily see here that if network member B fails, the surrounding network members are not excluded from the network because the connections to other functioning network members continue to exist.
IPFS/HTTP Gateway – Image Tutorial: Uploading a File to the IPFS Network
We have selected a graphic from PayPodo, which we have subsequently stored in the IPFS network and we call up this graphic via the IPFS gateway of Cloudflare. Here we show you exactly how this works and how you can also implement it with your files.
Register with Pinata and log in. You can use the “Free Plan” option for the first steps. An update is also possible at a later date, if desired.
After logging in, click on “+ Upload”.
Click on “File”.
Click on “select a file”.
Select a file and click on “open”.
Click on “upload”.
Done! A hash value has been created for the uploaded file. This is called the CID.
And to access your file, you can use the following gateways, for example:
The last / is immediately followed by your CID. Once you have entered this in your URL bar, you have direct access to your file. So that you can also see that it really works from http websites, we show you the image uploaded in the IPFS network below. Alternatively, you can manually insert the written link below the image into your URL address bar
For an IPFS network to exist, it needs active users. The more people actively use the IPFS network, the more it grows in size and popularity. It is also possible to delete files in the network, but it is not for secret or private files. The latter is not a disadvantage of the network, but if you like, the disadvantage of being public. Nevertheless, it is possible to upload encrypted or password-protected archive files (.zip, .rar etc.) to restrict access. We hope to have given you a simple, understandable introduction to IPFS. On the IPFS website you will find much more information about the network and how to install it at your place. Have fun.