DNS Seeder is the service that returns IP addresses of full nodes on a coin's network to assist in peer (node) discovery. This action is crucial when keeping all the nodes and wallets successfully synchronised and connected to the right chain, avoiding the risk of forking.
To accomplish its mission, DNS Seeder crawls a coin's network to expose a list of reliable nodes via a built-in DNS server. This list of peers is then shared with the nodes that attempt to connect to the said network.
With the next video, learn why it is important to have a DNS Seeder for a blockchain:
The main features of DNS Seeder are:
- Regularly revisits known nodes to check their availability.
- Bans nodes after enough failures, or bad behaviour.
- Keeps statistics over (exponential) windows of 2 hours, 8 hours, 1 day, 1 week and 1 month, to base decisions on.
- Very low memory (a few tens of megabytes) and CPU requirements.
- Crawlers run in parallel.
The use of DNS Seeder completely removes the need of relying on static nodes and manually adding addnode IP addresses into a coin's config file. In these two cases, it is not guaranteed that a wallet will be fully and successfully synchronised, nor it is avoided the risk of connecting to the wrong chain and, thus, forking. This is due to the fact of trying to connect to nodes that may not be online or synchronised correctly and on the right chain.
Assuming the peers.dat file is empty or does not exist, a coin's wallet will request DNS records to DNS Seeder in order to find peers that will help synchronise it on the coin’s network. DNS Seeder will then respond with 32 addresses (16 IPv4 and 16 IPv6) that are known as good and reliable connections. The number of received addresses can be larger by having the wallet performing multiple DNS requests.
Note: by default, a wallet will first check for peers on the peers.dat file, which is located on the coin’s data folder. When no peers are found there, the DNS Seeder will then be called. Peers received by DNS Seeder will be added into peers.dat. This behaviour can be altered in a coin’s wallet in order to give priority to DNS Seeder to be always called first.
DNS Seeder does its work on the background, to create the list of reliable peers that is shared with nodes attempting to connect to the network. To help users having an overview of DNS Seeder, we provide its real-time findings and results in a user friendly interface. In this section, such interface is demonstrated.
Note: we will support the demonstration of DNS Seeder’s user interface using the Merge coin. The screenshots show the contents in English. However, the service is provided on Project Merge’s website in at least 10 different languages!
The content that gets displayed details the findings of DNS Seeder on Merge’s network. This data is used by the tool when providing the peers information to a new node that aims to connect to the mentioned network.
First, a summary of all the nodes connected to Merge’s network is shared:
- Total number of nodes online.
- Number of good nodes vs the bad ones.
- Which Merge wallet version each node is using.
- Number of nodes with IPv4 vs IPv6 addresses.
Second, a world map is shown highlighting the countries the nodes are being ran from. This is based on the IP addresses of the nodes.
And, third, the details of each of the nodes connected to Merge’s network is provided. For each node, the following details are presented:
- Location of the node based on its IP address.
- Wallet version the node is using.
- Status of the node.
- The port the node is using to connect.
- Latest block the node has found on the network.
- Last date the node was scanned by DNS Seeder.
- Reliability of the node.
- IP address of the node.
Ever wondered why you have to addnode IP addresses to your coin’s config file? Why when the chain forks, everyone is looking for new addnode IP addresses? It all comes down to your network’s ability to synchronise with other nodes on the network to reach consensus. DNS Seeder makes sure that such synchronisation is successfully made, skipping the need of manually adding addnode IP addresses and avoiding the risk of having chain forks.
Merge has a professional development team that helps other projects and teams set-up and manage DNS Seeder for their cryptocurrencies. We provide competitive pricing and quick response to any support issues.