When evaluating decentralized networks considering how it handles node churn is a critical step. Hard drives can fail and a storage node can permanently go offline at any time. A storage network’s redundancy strategy must store data in a way that provides high probability access, even though any given number of individual nodes may go into an offline state. Some decentralized networks try to address this durability issue by simply replicating the data several times across their network, but that comes at a great cost, increasing bandwidth consumption by 100% for every replication instance (See
Replication is bad for decentralized storage).
Storj provides a better approach to data durability. By utilizing erasure codes to create data redundancy, Storj delivers eleven 9s of durability.
If a storage node goes offline or if data gets deleted or corrupted, the erasure coded pieces enable Storj to recover or repair that data using the file’s remaining pieces stored across the network. On top of that, Storj has an automated audit and repair process that continually checks the status of its storage nodes and stored data and makes repairs as necessary.
The audit and prepare process maps where the pieces of a file are stored. And as part of its ongoing status audits, if it detects that a storage node has been offline for a certain period of time, that node gets evicted from the network. If at any point the storage nodes associated with a file drops to a predetermined threshold, the repair process will automatically reconstruct the file using the fastest available 23 pieces. It will then split that reconstructed file back into at least 80 erasure coded pieces and redistribute them to an equal number of nodes across the network, ensuring its ongoing availability and durability.
In addition to the built-in automated audit and repair, Storj also makes a significant effort to simply reduce overall node churn through an economy that incentivizes storage node operators to stay online with high-performing availability.