IPFS
- It’s a file system with content-based addressing. Instead of domains, you use the content as the domain. Because content can be very long, we run a small program on it to produce a unique identifier based on that content (a hash). These identifiers are long enough that the possibility of two pieces of content creating the same one is virtually impossible.
- Files are automatically deduplicated.
- It chunks, hashes, and organizes blobs in a smart way.
- Once something is added, it can’t be changed anymore.
- At the heart of everything is the concept of content identifiers (CIDs).
- A CID isn’t just a hash of a file—it’s a combination of the hash, metadata about how the content is hashed, details about encoding, and instructions for interpreting the data.
- They provide portability and openness.
- Keeping files available is a challenge. If the nodes storing a file go down, it’ll disappear from the network.
- Filecoin’s idea was to help with this by adding incentives to the equation.
- Content addressing enables robust data integrity checks and efficient networking: systems can verify they received exactly what they asked for and avoid downloading the same content twice. The linked data part lets you link to stuff by its hash. You can build very big graphs with these primitives.
IPLD
- Data model for IPFS
- Everything is a node. Nodes have types.
- The data structure is a Merkle Tree.
- Makes it easy to have interoperability of data. Useful for distributed databases.
- Bridges content addressing and distributed systems.
LibP2P
- Modular peer-to-peer networking layer.
- Used across the decentralized ecosystem.
- Many implementations of each module.