Hi there!

Lately we have been bumping up against the limitations of DNS as a protocol for learning about the p2p network. As a proposal for how to address this, I have written a new network crawler and seed:

https://github.com/mikehearn/httpseed

It implements a standard DNS seed with a minimal embedded DNS server (you can find one running at dnsseed.vinumeris.com) and also has the following extra features:

To provide all these features Cartographer relies heavily on libraries and is written in a concise new language called Kotlin, so it fits in about 650 lines of code. Kotlin is easy to learn for anyone who knows Scala or Java, so it should be straightforward to hack on and there is no chance of any buffer/heap exploits in the DNS, HTTP or Bitcoin protocol stacks.

In the new year I will probably write a BIP describing the protocol. For now you can see the definition here or just read the textual forms from the links above. It's pretty self explanatory. I hope that in future other DNS seeds will start supporting this protocol too, as it has many advantages.

Future versions might include data like how long the peer has been around, node keys if we add auth/encrypt support to the p2p protocol and so on.