The InterPlanetary File System (IPFS) is a protocol and peer-to-peer network for storing and sharing data (files, images, videos, websites) in a distributed file system.
IPFS uses content-addressing to uniquely identify each file in a global namespace connecting all computing devices.
2. What is DWeb
When we currently access the web, our computers use the HTTP protocol to find information stored at a fixed location, usually on a single server.
In contrast, the DWeb (decentralized web) can find information based on its content, meaning it could be stored in multiple places at once.
In principle, this would better protect users from private and government surveillance because the data are stored in a way that is hardly accessible for third parties or authorities.
3. Content addressing and CID
A content identifier, or CID, is a label used to point to content in IPFS. It doesn't indicate where the content is stored, but it forms a kind of address based on the content itself. CIDs are short, regardless of the size of their underlying content.
CIDs are based on the content’s cryptographic hash. That means any difference in the content will produce a different CID and the same content added to two different IPFS nodes using the same settings will produce the same CID.
4. What is IPNS
A concept of content-addressing brings problem with immutability of the content. Each change in the content give a new CID.
This means that links on IPFS are permanent. To solve this problem we use the InterPlanetary Name System or IPNS.
IPNS is a decentralized version of DNS (Domain Name System). IPNS allows you to generate a link (a mutable address) which always points to the latest version of the content. So, even if you update the content (e.g. website), it will still have the same link.
5. What is DNSLink
DNSLink allow you to map a domain name (e.g. some-your-domain.com) to an IPFS address.
Because you can edit your DNS records, you can use them to always point to the latest version of an object in IPFS (remember that an IPFS object's address changes if you modify the object).
Since DNSLink uses DNS records, you can assign names/paths/(sub)domains/whatever that are easy to type, read, and remember.
6. Distributed Hash Tables (DHT)
A distributed hash table (DHT) is a distributed system for mapping keys to values.
In IPFS, the DHT is used as the fundamental component of the content routing system and acts like a cross between a catalog and a navigation system.
It maps what the user is looking for to the peer that is storing the matching content.
Think of it as a huge table that stores who has what data.
Pinning is a very important concept in IPFS.
Pinning is the mechanism that allows you to tell IPFS node to always keep some data available for other nodes.
IPFS has a fairly aggressive caching mechanism that will keep a data local for a short time after you perform any IPFS operation on it, but these data may get garbage-collected regularly.
To prevent that garbage collection, data can be pinned so they persist on that node and gets available for other nodes.
A blockchain is a growing list of records, called blocks, that are linked using cryptography.
Each block contains a cryptographic hash of the previous block, a timestamp, and transaction data.
By design, a blockchain is resistant to modification of its data.
This is because once recorded, the data in any given block cannot be altered retroactively without alteration of all subsequent blocks.
9. Ethereum Name Service (ENS) and .eth domain
The Ethereum name service (ENS) is a decentralized way to address resources.
Like DNS, which converts human-readable names to IP addresses, ENS converts human-readable names (e.g. some-your-name.eth) to Ethereum addresses.
These addresses can then be used to point to CIDs on IPFS.
Because .eth is not a registered DNS top-level domain it is normally inaccessible from DNS and so not all browsers resolve .eth domains automatically without browser extension.
10. Namecoin and .bit domain
Namecoin is an experimental open-source technology which improves decentralization, security, censorship resistance, privacy, and speed of certain components of the internet infrastructure such as DNS and identities.
Namecoin enables access websites using the .bit top-level domain. Because .bit is not a registered DNS top-level domain it is normally inaccessible from DNS and so not all browsers resolve .bit domains automatically without browser extension or gateways.
Filecoin is an open-source, public cryptocurrency and digital payment system intended to be a blockchain-based cooperative digital storage and data retrieval method.
It is made by Protocol Labs and builds on top of InterPlanetary File System, allowing users to rent unused hard drive space.
It is a decentralized storage system that aims to “store humanity’s most important information".