Peer-to-peer (P2P) networks are fascinating! P2P networks can scale to thousands, millions or even billions of individual peers collaborating without a central, coordinating entity. These peers can be run by individuals or organizations - each contributing resources towards the total capacity of the network. This book explores how!
P2P networks first became popular for file sharing use cases, but this is no longer the most popular use case. P2P networks have been used successfully for chat, voice and video calls in Skype at a global scale. P2P networks are also used in blockchain networks as well as in distributed hashtables (DHTs) and NoSQL databases. P2P networks are even being used by some media technology companies to distributed content at the edge, where their own hardware might be insufficient to serve local spikes in traffic.
Despite P2P technology actually being actively used in both consumer and enterprise software, P2P technology could be far more prevalent than it is today. Browsers could be supporting P2P communication. Application tech stacks could have built-in support for P2P topologies. Middleware products could be based on P2P technology. Modern media players could be accessing content via P2P networks.
There are probably multiple reasons why P2P technology is not as widely used as it could be. One reason probably is, that P2P techniques are not that well-described in the literature today. There are a few books available about P2P networks, but they tend to be either a bit superficial, or a bit academic in their writing style. This book is trying to alleviate that issue.
Another reason probably is, that the most popular P2P topology is the uniring topology used in Chord, Kademlia, Pastry and Tapestry. This uniring topology is not that well-suited for many use cases such as multicast, broadcast or geographically local communication. In this book I present the Polymorph polyring topology which seeks to address exactly these challenges.
Whatever the reasons are, changing the current state of affairs starts by applying our creativity and effort towards this goal. This book is intended as a first step on that path.