DNS seed node filtering

DNS seed node filtering

Posted on: February 14, 2024 14:23 UTC

The discussion originates from a scenario where a programmer shared insights following up on a previously contentious pull request (PR29149) on the Bitcoin GitHub repository.

This pull request had sparked debates regarding the DNS seed policy rules within the Bitcoin community, leading to its eventual closure amidst controversies. The programmer, despite the closure and apparent lack of interest from some supporters for an open dialogue, was motivated to explore the extent of version-based filtering across Bitcoin's network. The curiosity stemmed from ongoing discussions and suggestions within the community about the need for continuous monitoring of node versions.

To address this, the programmer embarked on gathering and analyzing data concerning the Bitcoin Core versions run by reachable nodes as advertised by individual DNS seeds over time. The analysis aimed to understand the practices of version-based filtering among these seeds. It was found that certain DNS seeds, notably, implemented stringent filters against older versions. In contrast, others like and also practiced version-based filtering but to a lesser extent. The minimum version thresholds observed during the data collection ranged from 0.9.0 for seeds such as,, and, to 0.8.6 for,, and This variation in minimum versions could suggest deliberate filtering by the first group; however, it might also be attributed to the natural scarcity of nodes running on very old versions like 0.8.6 during the data collection period.

The programmer made their findings accessible to the public, providing daily updated monitoring data through a dedicated website (here). This initiative not only sheds light on the practices of version-based filtering across Bitcoin's network but also contributes valuable insights into the distribution and adoption rates of various Bitcoin Core versions among the network's nodes.