Bootstrapping node

A bootstrapping node, also known as a rendezvous host, is a node in an overlay network that provides initial configuration information to newly joining nodes so that they may successfully join the overlay network. Bootstrapping nodes are predominantly found in decentralized peer-to-peer (P2P) networks because of the dynamically changing identities and configurations of member nodes in these networks.

Overview
When attempting to join a P2P network, specific discovery or membership protocols (or other configuration information) may be required, and, if a newly joining node is unaware of these protocols, the newly established joining node will not be able to communicate with other nodes and ultimately join the network. Furthermore, these protocols and configuration requirements may dynamically change as the infrastructure and membership of the P2P network evolves. Therefore, there is a need to be able to dynamically inform a newly joining node of the required protocols and configurations.

Identifying a bootstrapping node
Several methods may be used by a joining node to identify bootstrapping nodes:


 * A joining node may have been pre-configured with the static addresses of the bootstrapping nodes. In such a case, the bootstrapping node addresses cannot change, and therefore should be fault-tolerant members of the network, which are not able to leave the network.


 * Alternatively, the bootstrap node can be identified via a DNS service, where a domain name resolves to one of the bootstrapping nodes' addresses. This allows the bootstrapping nodes' addresses to change as needed.

Configuration information provided
The objective of the bootstrapping node is to provide newly joining nodes with sufficient configuration information so that the new node may then successfully join the network and access resources, such as shared content. Discovery protocol information can instruct the new node how to discover peers on the network. Membership protocol information can instruct the new node how to request-to-join and subsequently join peer groups on the network. Other configuration information, such as overlay network dependent instructions, may be provided. An example of overlay dependent instructions is instructing a new node how to obtain a zone of a CAN. Further configuration information may be designed for P2P network admission control, used when joining a network that supports trust management, and include such things as encryption/signature protocols or admission policies.

Networks that use bootstrapping nodes

 * Distributed hash tables
 * CAN
 * Chord
 * IPFS
 * Kademlia
 * Pastry
 * Tapestry


 * Cryptocurrency
 * Bitcoin
 * Ethereum
 * Litecoin