In the midst of working on my project, ouroboros-db, I realized I needed a straightforward way to locate other nodes using the same RSA key. That’s when PathfinderBeacon came into being and that i release to the public with these words.
What is PathfinderBeacon?
PathfinderBeacon is a tool designed to make it easier to bootstrap your distributed systems using just a RSA key and one of the most robust dictionaries available: DNS. Since DNS inherently caches information at various levels, it allows PathfinderBeacon to deliver node addresses quickly and with minimal bandwidth usage. This means if multiple searches are conducted within the same network for the same room, there’s a high chance the requests won’t even leave your local network, thanks to the caching capabilities of your router’s local DNS.
You can think of it like a DDNS (Dynamic Domain Name System) service, but you only need an RSA key to write to a subdomain. The subdomain is generated from the RSA key, and there is little surface for abuse since you can only publish highly sanitized TXT records.
How It Works
Setting up is pretty simple. You either provide an RSA key or let PathfinderBeacon generate one for you. Once set, you can publish your room and node addresses, and anyone with the same RSA key can write to the same room, while anyone can read from it. This makes it easy to bootstrap your distributed systems without the need of running your own bootstrap service.
Currently, there is an official Golang library for interacting with PathfinderBeacon, which you can find here. If you’re interested in developing libraries for other programming languages, feel free to reach out, and I’d be glad to assist and subsequently feature your work on the project repository.
Future Directions
For me this project is pretty much finished since it solves the underlying problem quite effectively, but i am fascinated by this problem and i would love to develop PathfinderBeacon further, maybe even in a distributed thingy without a central server, private rooms and much more is thinkable. You can checkout the README for more ideas.
So, that’s PathfinderBeacon in a nutshell—a simple, secure way to manage node addresses within distributed systems. It’s a small project with big potential, and I’m excited to see how it can support and simplify the management of distributed networks.
Thanks for reading, and I’m looking forward to constructive feedback or contributions!
You can find PathfinderBeacon on GitHub