<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>RSA on Mia Heidenstedt</title><link>https://heidenstedt.org/tags/rsa/</link><description>Recent
content
in RSA on Mia Heidenstedt</description><generator>
Hugo</generator><language>en</language><lastBuildDate>Fri, 23 Aug 2024 14:17:43 +0000</lastBuildDate><atom:link href="https://heidenstedt.org/tags/rsa/index.xml" rel="self" type="application/rss+xml"/><item><title>My New Public Service: PathfinderBeacon</title><link>https://heidenstedt.org/posts/2024/my-new-public-service-pathfinderbeacon/</link><pubDate>Fri, 23 Aug 2024 16:00:00 +0200</pubDate><guid>https://heidenstedt.org/posts/2024/my-new-public-service-pathfinderbeacon/</guid><description><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2024/my-new-public-service-pathfinderbeacon/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><p>In the midst of working on my project, <a href="https://github.com/i5heu/ouroboros-db">ouroboros-db</a>, I realized I needed a straightforward way to locate other nodes using the same RSA key. That&rsquo;s when <a href="https://github.com/i5heu/PathfinderBeacon">PathfinderBeacon</a> came into being and that i release to the public with these words.</p>
<h2 id="what-is-pathfinderbeacon"><a href="https://heidenstedt.org/posts/2024/my-new-public-service-pathfinderbeacon/#what-is-pathfinderbeacon">What is PathfinderBeacon?</a></h2><p><a href="https://github.com/i5heu/PathfinderBeacon">PathfinderBeacon</a> 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&rsquo;s a high chance the requests won&rsquo;t even leave your local network, thanks to the caching capabilities of your router&rsquo;s local DNS.</p>
<p>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.</p>
<h2 id="how-it-works"><a href="https://heidenstedt.org/posts/2024/my-new-public-service-pathfinderbeacon/#how-it-works">How It Works</a></h2><p>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.</p>
<p>Currently, there is an official Golang library for interacting with PathfinderBeacon, which you can find <a href="https://github.com/i5heu/PathfinderBeacon-Client-Go">here</a>. If you&rsquo;re interested in developing libraries for other programming languages, feel free to reach out, and I&rsquo;d be glad to assist and subsequently feature your work on the project repository.</p>
<h2 id="future-directions"><a href="https://heidenstedt.org/posts/2024/my-new-public-service-pathfinderbeacon/#future-directions">Future Directions</a></h2><p>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 <a href="https://github.com/i5heu/PathfinderBeacon?tab=readme-ov-file#potential-future-features-and-ideas">README</a> for more ideas.</p>
<p>So, that’s PathfinderBeacon in a nutshell—a simple, secure way to manage node addresses within distributed systems. It&rsquo;s a small project with big potential, and I&rsquo;m excited to see how it can support and simplify the management of distributed networks.</p>
<p>Thanks for reading, and I’m looking forward to constructive feedback or contributions!</p>
<p>You can find PathfinderBeacon on <a href="https://github.com/i5heu/PathfinderBeacon">GitHub</a></p>
]]></description><content:encoded><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2024/my-new-public-service-pathfinderbeacon/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><p>In the midst of working on my project, <a href="https://github.com/i5heu/ouroboros-db">ouroboros-db</a>, I realized I needed a straightforward way to locate other nodes using the same RSA key. That&rsquo;s when <a href="https://github.com/i5heu/PathfinderBeacon">PathfinderBeacon</a> came into being and that i release to the public with these words.</p>
<h2 id="what-is-pathfinderbeacon"><a href="https://heidenstedt.org/posts/2024/my-new-public-service-pathfinderbeacon/#what-is-pathfinderbeacon">What is PathfinderBeacon?</a></h2><p><a href="https://github.com/i5heu/PathfinderBeacon">PathfinderBeacon</a> 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&rsquo;s a high chance the requests won&rsquo;t even leave your local network, thanks to the caching capabilities of your router&rsquo;s local DNS.</p>
<p>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.</p>
<h2 id="how-it-works"><a href="https://heidenstedt.org/posts/2024/my-new-public-service-pathfinderbeacon/#how-it-works">How It Works</a></h2><p>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.</p>
<p>Currently, there is an official Golang library for interacting with PathfinderBeacon, which you can find <a href="https://github.com/i5heu/PathfinderBeacon-Client-Go">here</a>. If you&rsquo;re interested in developing libraries for other programming languages, feel free to reach out, and I&rsquo;d be glad to assist and subsequently feature your work on the project repository.</p>
<h2 id="future-directions"><a href="https://heidenstedt.org/posts/2024/my-new-public-service-pathfinderbeacon/#future-directions">Future Directions</a></h2><p>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 <a href="https://github.com/i5heu/PathfinderBeacon?tab=readme-ov-file#potential-future-features-and-ideas">README</a> for more ideas.</p>
<p>So, that’s PathfinderBeacon in a nutshell—a simple, secure way to manage node addresses within distributed systems. It&rsquo;s a small project with big potential, and I&rsquo;m excited to see how it can support and simplify the management of distributed networks.</p>
<p>Thanks for reading, and I’m looking forward to constructive feedback or contributions!</p>
<p>You can find PathfinderBeacon on <a href="https://github.com/i5heu/PathfinderBeacon">GitHub</a></p>
]]></content:encoded></item></channel></rss>