IPFS (InterPlanetary File System) is a protocol and network for storing and sharing data in a content-addressed way. Instead of “fetch from this host,” you ask for this hash — whoever serves the bytes must prove they match the CID (content identifier).
A CID points at a specific chunk of data (often a Merkle DAG node). Change one byte → new CID. That makes caching, verification, and deduplication natural — and makes “mutable websites” require extra layers (IPNS, DNSLink, signed update feeds).
This is different from HTTP URLs where the same path can silently return different content tomorrow.
IPFS nodes garbage-collect what nobody asks for unless you pin it — declare “keep this DAG.” Without pins (your own node or a pinning service), data can disappear when caches expire.
“On IPFS” is not a promise of forever; it is a promise of verifiable content while someone pays attention to storage and distribution.
A gateway speaks HTTP on one side and IPFS on the other — handy for browsers that do not embed kubo/js-ipfs. Trust model: you trust the gateway operator for TLS and availability; the CID still constrains the bytes.
Running your own node gives more control and helps the network — at the cost of ops (disk, bandwidth, updates).
Projects often pair IPFS with chains (store hash on-chain, payload on IPFS). IPFS itself is peer transfer + content IDs — Module 6 separates chain state from file networks clearly.