While this course will mainly focus on IPFS, there are a number of proposed solutions to blockchain-based and decentralized storage. The general architecture remains quite similar between them, so it will help to review how these systems operate before comparing them.
In order to optimize storage and retrieval of files, data is broken down into tiny packets which can each be stored on a different node.
Each shard is encrypted to anonymize and sterilize the data before public storage.
In order to uniquely track each shard or file, a hash signature is created that represents each unit of storage uniquely. This will be used to verify that nodes are storing the correct files at the correct addresses.
In a decentralized network, it’s important to have multiple redundant versions of each file. This allows nodes to join and leave the network as they see fit without the file being unavailable.
Shards are then distributed across the network to a group of nodes to maximize availability.
In a truly decentralized network, a ledger or blockchain can be used to record when and where files are stored, and to ensure that parties are held accountable for breaches of trust.
In the next section, we’ll cover in more detail how IPFS implements this functionality.