Module sc_network::discovery 
source · Expand description
Discovery mechanisms of Substrate.
The DiscoveryBehaviour struct implements the NetworkBehaviour trait of libp2p and is
responsible for discovering other nodes that are part of the network.
Substrate uses the following mechanisms in order to discover nodes that are part of the network:
- 
Bootstrap nodes. These are hard-coded node identities and addresses passed in the constructor of the
DiscoveryBehaviour. You can also calladd_known_addresslater to add an entry. - 
mDNS. Discovers nodes on the local network by broadcasting UDP packets.
 - 
Kademlia random walk. Once connected, we perform random Kademlia
FIND_NODErequests on the configured Kademlia DHTs in order for nodes to propagate to us their view of the network. This is performed automatically by theDiscoveryBehaviour. 
Additionally, the DiscoveryBehaviour is also capable of storing and loading value in the
configured DHTs.
Usage
The DiscoveryBehaviour generates events of type DiscoveryOut, most notably
DiscoveryOut::Discovered that is generated whenever we discover a node.
Only the identity of the node is returned. The node’s addresses are stored within the
DiscoveryBehaviour and can be queried through the NetworkBehaviour trait.
Important: In order for the discovery mechanism to work properly, there needs to be an
active mechanism that asks nodes for the addresses they are listening on. Whenever we learn
of a node’s address, you must call add_self_reported_address.
Structs
- Implementation of
NetworkBehaviourthat discovers the nodes on the network. DiscoveryBehaviourconfiguration.
Enums
- Event generated by the
DiscoveryBehaviour. 
Constants
- Default value for Kademlia replication factor which determines to how many closest peers a record is replicated to.