Understand the basic concepts of a peer-to-peer architecture, unstructured and structured network topologies. Get to know simple hash functions and how they can be used to implement hash tables for fast array access to map keys to values. Learn about distributed hash tables and consistent hashing schemes to partition keyspaces efficiently. Implement a basic, distributed key-value store.
Examples
Exercises
Context
Peer-to-peer computing is a decentralized method of computing in which participants share resources, such as processing power or data storage, with one another without the need for a centralized server. In this architecture, each participating computer, or "peer," can act as both a client and a server, allowing for a more distributed and democratic approach to computing. Peer-to-peer architectures are used in a variety of applications, such as Napster, BitTorrent, Bitcoin, Ethereum, IPFS and more.
Bitcoin - Open source P2P money
IPFS Powers the Distributed Web
An overlay network is a virtual network built on top of a physical network. In an overlay network, each node typically only knows a subset of its peers. Usually, a single node establishes direct socket communication (using Network Socket ) with other nodes in the network. Operations such as storing or retrieving data then involves contacting multiple nodes.
In an unstructured network topology, nodes form random connections to each other. Often, gossip protocols (also known as epidemic protocols) are used to spread information reliably. Another major use case is the Border Gateway Protocol (RFC4271: BGP-4), which forms the core of our internet structure.