Cartographer



Summary:

Recently, there have been limitations faced by DNS as a protocol for learning about the p2p network. In response to this, a new network crawler and seed has been written that implements a standard DNS seed with a minimal embedded DNS server. This seed can serve seed data using gzipped, timestamped digitally signed protocol buffers over HTTP, which will fix authentication, auditability, malware false positives, and extensibility. In addition, it can also serve data in JSON, XML, and HTML for ease of use with other tools, such as web browsers. Results can be restricted using query parameters, and crawl speed can be specified in terms of successful connects per second. The Cartographer heavily relies on libraries and is written in a concise new language called Kotlin, which fits in about 650 lines of code. It's 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. A client for it is in bitcoinj master branch.One may find the definition of the protocol here, or just read the textual forms from the links above. The author hopes that in the future, other DNS seeds will start supporting this protocol too, as it has many advantages. Future versions might also 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.


Updated on: 2023-06-09T15:07:47.290235+00:00