DEV Community

Cover image for Distributed File Storage and Peer-To-Peer Networks
Ian Iversen
Ian Iversen

Posted on • Edited on

Distributed File Storage and Peer-To-Peer Networks

The internet is a hyper-connected web of clients and servers. Clients make requests to servers and servers return files, software, data, and applications. However things have evolved quite a bit from the static client/server model. For instance, cloud computing infrastructure accounts for much of the internet’s requests and responses these days. Cloud services like Amazon Web Services (AWS) host massive warehouses filled with servers that can be rented out by users or companies. Companies like Netflix purchase server functionality from AWS, allowing Netflix to only worry about their video content and website design. All of the infrastructure, storage, and hardware concerns are left in the hands of AWS.

Image description

Cloud computing has proved itself very useful in the last decade. Netflix is only one of thousands of companies that have built successful businesses using cloud computing. But unfortunately cloud storage can be somewhat centralized. A bad scenario would look like an entire server center getting destroyed, and by extension databases and files can be lost forever. Another bad scenario could be that Amazon, Google, and Facebook know everything about you and they own that information and can do whatever they want with it. Other models have also emerged and evolved over the last two decades, namely the Torrent file sharing protocol.

The Torrent protocol, in simple terms, allows for clients to act as servers. Files stored on local machines can be requested from other local machines. The benefit of this is in the design of the torrent protocol which attempts to speed up the file download time for a user by downloading the file from multiple client machines. This is useful for very large file types and, in theory, distributes information amongst users which can defend against government censorship or corporate ownership of user data. However there aren’t many incentives currently for a person to database information for others without compensation.

Looking into the future, torrenting may rise to more prominence as local storage becomes cheaper and blockchain technology becomes more trusted. There may be a future in which cryptocurrency is rewarded to anyone willing to rent out their free gigabytes of storage to hold encrypted data that can be accessed by anyone in the world. There are many hurdles to this, more than the centralized cloud computing models we have now, but I think it’s a pretty cool thought that your computer storing other peoples data might be able to buy you a free meal once a week.

Top comments (0)