Daniel’s evolving definition of IPFS

IPFS is a modular suite of protocols and standards for organizing and moving data, designed from the ground-up with the principles of content addressing and peer-to-peer networking.

Here’s how the IPFS subsystems stack up:

Purpose Subsystem
Defining and organising the data UnixFS, DAG-CBOR, DAG-JSON https://ipld.io/, MFS
Transferring Data Bitswap, HTTP (IPFS Gateways), Graphsync, Sneakernet, and more in development
Content routing: linking between CID: IP addresses Kademlia DHT, Delegated over HTTP, Bitswap (WANT), mDSN
Addressing for data & peers https://multiformats.io/ (CIDs, multiaddr)
Bridging between IPFS and HTTP https://docs.ipfs.tech/concepts/ipfs-gateway/, Pinning API Spec
Establishing peer-to-peer connectivity https://libp2p.io/ (TCP, QUIC, WebRTC, WebTransport)
Mutability & Dynamic Naming https://docs.ipfs.tech/concepts/ipns/#mutability-in-ipfs (Interplanetary Naming System)
Purpose Part of the IPFS stack
Addressing data and peers CIDs, IPNS, DNSLink
Defining Data IPLD (UnixFS, CAR files, DAG-CBOR, DAG-JSON), MFS
Routing Data DHT, Bitswap, mDNS, Delegated HTTP Routing
Transferring/Moving Data Bitswap, IPFS HTTP Gateways
Establish connectivity between peers Libp2p (TCP, QUIC, WebRTC, WebTransport)

IPFS is a composable suite of peer-to-peer protocols for representing, routing, and transferring content-addressed data.

Representing & Addressing

Solving: How you get the CID of my 🐶 jpeg, i.e, make it content addressed

→ IPLD, CIDs, and CAR files


Solving: How I find using the CID all the peers that store it . What are the IPs and ports of the peers in the network who have this 🐶 jpeg.

→ Kademlia DHT (private/public)

Bitswap (WANT)

mDNS (local networks)

Delegated routing over HTTP