How IPFS Works
How IPFS Works | Steve Allen
In this video, Steve Allen describes how IPFS Imports, Names, Finds and Fetches content.
At a high level, the talk covered the following concepts:
- Chunking – When an object is added to IPFS, it is chunked up into smaller parts, each part is hashed, and a CID is created for each chunk. This DAG building process has two main parameters, the leaf format and the chunking strategy.
- UnixFS – When you add a file to IPFS, it might be too big to fit in a single block, so it needs metadata to link all its blocks together. UnixFS is a protocol-buffers-based format for describing files, directories, and symlinks in IPFS. This data format is used to represent files and all their links and metadata in IPFS. UnixFS creates a block (or a tree of blocks) of linked objects.
- IPLD – A meta-format for understanding, encoding, and decoding Merkle-linked data. IPLD works to make it possible to define a data model and make it possible to link together different types of Merkle-linked data.
- Content IDentifiers (CIDs) – These are self-describing hashes used to describe everything stored in IPFS, essentially a hash with some metadata.
- Paths – Paths are recursive unlike URLs and can refer to previous blocks.
- IPNS – Public keys are mapped to a path, and you use your private key to sign it- as you modify this content, you can use IPNS to point to a new version of a previous piece of content that is signed by your private key.
- Routing & DHT – Content on IPFS uses a combination of a CID and routing systems that help identify the set of peers you can get the content from with a distributed routing table (or Distributed Hash Table).
- Kademlia – Kademlia is a distance metric + query algorithm that helps users find the peers with the most accessible pieces of data.
- Bitswap – Using wantlists of data, or CIDs, that specific users are looking for, and checks peers that a node is connected to first for those CIDs before querying the rest of the DHT.
More IPFS Concepts
You can also find this content in IPFS Docs
Because IPFS is a system that hopes to change how we use the Internet, it comes with many new concepts: