<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: lorenzleutgeb</title><link>https://news.ycombinator.com/user?id=lorenzleutgeb</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 30 Apr 2026 22:41:39 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=lorenzleutgeb" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by lorenzleutgeb in "HardenedBSD Is Now Officially on Radicle"]]></title><description><![CDATA[
<p>For the reason of hbsd moving, see <a href="https://bsd.network/@HardenedBSD/116437657126172879" rel="nofollow">https://bsd.network/@HardenedBSD/116437657126172879</a></p>
]]></description><pubDate>Wed, 29 Apr 2026 08:41:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47945692</link><dc:creator>lorenzleutgeb</dc:creator><comments>https://news.ycombinator.com/item?id=47945692</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47945692</guid></item><item><title><![CDATA[New comment by lorenzleutgeb in "Radicle: The Sovereign Forge"]]></title><description><![CDATA[
<p>As Radicle is written in Rust, I was hoping for a way to use Kingfisher as a library, but did not find one. So I filed <a href="https://github.com/mongodb/kingfisher/issues/189" rel="nofollow">https://github.com/mongodb/kingfisher/issues/189</a><p>Of course, it'd always be possible to invoke some binary. But I am still curious about a library.</p>
]]></description><pubDate>Fri, 23 Jan 2026 23:09:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=46739234</link><dc:creator>lorenzleutgeb</dc:creator><comments>https://news.ycombinator.com/item?id=46739234</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46739234</guid></item><item><title><![CDATA[New comment by lorenzleutgeb in "Radicle: The Sovereign Forge"]]></title><description><![CDATA[
<p>For the source code in the repository, conflicts must be merged by users (or their tools, like `mergiraf`), just like with any other Git repo containing source code.<p>What might confuse you is the mention that a collaborative object may opt in to ask the user to resolve a conflict. Well, in this case, strictly speaking, it's not a CRDT anymore of course. But none of the collaborative objects commonly used in Radicle use this escape hatch.<p>It is clear that Git itself does not give you CRDTs, but Radicle implemented CRDTs on top of Git, which is entirely possible. This is also what's explained in the Protocol Guide. I don't understand what's the misunderstanding here, sorry.</p>
]]></description><pubDate>Fri, 23 Jan 2026 21:58:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=46738519</link><dc:creator>lorenzleutgeb</dc:creator><comments>https://news.ycombinator.com/item?id=46738519</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46738519</guid></item><item><title><![CDATA[New comment by lorenzleutgeb in "Radicle: The Sovereign Forge"]]></title><description><![CDATA[
<p>Where are you quoting from?<p>Radicle implements so called "collaborative objects" (think: issues, patches, anything that multiple users collaborate on; except the source code itself) as CRDTs:
<a href="https://radicle.xyz/guides/protocol#collaborative-objects" rel="nofollow">https://radicle.xyz/guides/protocol#collaborative-objects</a></p>
]]></description><pubDate>Fri, 23 Jan 2026 19:46:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=46736925</link><dc:creator>lorenzleutgeb</dc:creator><comments>https://news.ycombinator.com/item?id=46736925</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46736925</guid></item><item><title><![CDATA[New comment by lorenzleutgeb in "Radicle: The Sovereign Forge"]]></title><description><![CDATA[
<p>In the Radicle ecosystem, quite a few people like the idea to "seed" repos that they want to support. It means that you download the repo, and also announce to other nodes that you have it available to share. Thus, you are not only incrementing some counter in a central database, but you are actually contributing to the replication of the project on the network.<p>The number of seeds then is a similar indicator as the number of stars.<p>Of course, you can also just keep a list of repository IDs.</p>
]]></description><pubDate>Fri, 23 Jan 2026 19:40:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=46736843</link><dc:creator>lorenzleutgeb</dc:creator><comments>https://news.ycombinator.com/item?id=46736843</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46736843</guid></item><item><title><![CDATA[New comment by lorenzleutgeb in "Radicle: The Sovereign Forge"]]></title><description><![CDATA[
<p>> I keep thinking about people putting secrets up in github.<p>You gave me an idea. For Radicle, we implemented a `git-remote-helper` (Git recognizes `rad://`-URIs and then wakes up the helper to handle the rest). This helper could well look at the blobs being pushed and detect secrets. Then error out and request a retry with `--force` if the user is sure.<p>To implement something like this, we'd not want to reinvent the wheel, so we'd want to consume some description of patterns that we should look for. And obviously we're not going to ask GitHub or some web server.<p>So, is there such library? In a format that is simple-ish to implement filtering for but also catches a good amount of secrets?</p>
]]></description><pubDate>Fri, 23 Jan 2026 19:31:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=46736733</link><dc:creator>lorenzleutgeb</dc:creator><comments>https://news.ycombinator.com/item?id=46736733</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46736733</guid></item><item><title><![CDATA[New comment by lorenzleutgeb in "Radicle: The Sovereign Forge"]]></title><description><![CDATA[
<p>Check <a href="https://app.radicle.xyz/nodes/seed.rhizoma.dev/rad%3Az3yQUb9HDAC7TQrUDGkQsXDsYFj9G#migrating-from-github" rel="nofollow">https://app.radicle.xyz/nodes/seed.rhizoma.dev/rad%3Az3yQUb9...</a><p>What's tricky here is to do it in a way that GitHub users properly map to Radicle identities. We will get there...</p>
]]></description><pubDate>Fri, 23 Jan 2026 19:20:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=46736589</link><dc:creator>lorenzleutgeb</dc:creator><comments>https://news.ycombinator.com/item?id=46736589</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46736589</guid></item><item><title><![CDATA[New comment by lorenzleutgeb in "Radicle: The Sovereign Forge"]]></title><description><![CDATA[
<p>A lot has changed. But also you must've checked it quite some time ago. It's not on the blockchain anymore since the "heartwood" iteration, which was announced 2023-04-18. Please take some time to re-inform yourself, even just in this HN thread (search for "RAD ", the whitespace is significant).</p>
]]></description><pubDate>Fri, 23 Jan 2026 18:10:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=46735682</link><dc:creator>lorenzleutgeb</dc:creator><comments>https://news.ycombinator.com/item?id=46735682</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46735682</guid></item><item><title><![CDATA[New comment by lorenzleutgeb in "Radicle: The Sovereign Forge"]]></title><description><![CDATA[
<p>It's a valid question, and in fact there's quite some interest in adding write features to the web app. The current version of Radicle was designed with one user per node in mind, to get things off the ground. The process of relaxing this is currently ongoing. First, to multiple users per node, which would make use-cases like the one you are sketching viable. What we'd like to avoid is to hand the key to the server, in such case, and instead generate an Ed25519 key in the browser, and sign there, with some web-compatible transport (HTTP? WebSocket?) in between. And that's just a bit more intricate than it sounds.</p>
]]></description><pubDate>Fri, 23 Jan 2026 18:08:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=46735647</link><dc:creator>lorenzleutgeb</dc:creator><comments>https://news.ycombinator.com/item?id=46735647</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46735647</guid></item><item><title><![CDATA[New comment by lorenzleutgeb in "Radicle: The Sovereign Forge"]]></title><description><![CDATA[
<p>> If the internet is down and you want to onboard someone with say, a usb thumbdrive.<p>All the data being synced is in a Git repo, which is in a directory on your filesystem we call "Radicle Storage". You can use `git bundle` or a plain `cp` to copy that directory over. You can also use plain Git to push. Note that for these use-cases there is no polished UX. You need to know what you are doing. The bigger issue will be to install Radicle.<p>> With the mirroring: does radicle have any kind of event hooks?<p>Yes. You can connect to `radicle-node` via a socket and subscribe to events. This is how Radicle CI, and in particular the Radicle CI Broker was implemented. You can implement your own event broker, it's just JSON over a socket.<p><a href="https://radicle-ci.liw.fi/radicle-ci-broker/ci-broker.html" rel="nofollow">https://radicle-ci.liw.fi/radicle-ci-broker/ci-broker.html</a></p>
]]></description><pubDate>Fri, 23 Jan 2026 17:19:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=46735052</link><dc:creator>lorenzleutgeb</dc:creator><comments>https://news.ycombinator.com/item?id=46735052</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46735052</guid></item><item><title><![CDATA[New comment by lorenzleutgeb in "Radicle: The Sovereign Forge"]]></title><description><![CDATA[
<p>There's `rad sync status` which will show you (for a particular repository) which other nodes have echoed back to you that they have received and verified the most recent state of your namespace of that repository. So, if you expect some other node to have received your changes, you can use this command to verify that.<p>When the user explicitly asks to sync, then by default the process will be considered to have completed successfully as soon as three other nodes have echoed that they have received your changes. This threshold is configurable. Further, one can define a list of nodes that they care particularly much about, in which case the process will only be considered to have completed successfully if all these nodes also signaled that they have received your changes.<p>For anything deeper than that, you'd have to resort to logs. And if you connect your node to the other one your are interested, you can get a pretty good picture of what's going on.<p>If one node "falls off" the network, then the above mechanisms will communicate that to you, or fail after a timeout.<p>With Git repositories, humans establish order explicitly. They push commits which are a DAG. The collaboration around that (mostly discussions on issues, patches) is also stored in and synced by Git, but here, humans do not have to establish order explicitly. Rather, these things, in Radicle lingo called "Collaborative Objects" are CRDTs, so they will merge automatically. Nodes also opportunistically tag operations on these CRDTs with the latest operation they know, to help a bit by establishing an order where possible.</p>
]]></description><pubDate>Fri, 23 Jan 2026 17:15:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=46734992</link><dc:creator>lorenzleutgeb</dc:creator><comments>https://news.ycombinator.com/item?id=46734992</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46734992</guid></item><item><title><![CDATA[New comment by lorenzleutgeb in "Radicle: The Sovereign Forge"]]></title><description><![CDATA[
<p>Right. Radicle nodes out of the standard distribution would be kind enough to delete. On the technological level you cannot do more (also not really less, funnily enough). But it would be possible to patch the code and remove deletion.<p>Often times I just take the "information theory perspective": You fundamentally cannot make something "more private". Once it's out, it's out. You cannot "untell" a secret. That's just not how it works.<p>But then other solutions also have this problem. Once I have `git fetch`ed from GitHub, or received that e-mail containing a patch on a mailing list, I have a copy on my filesystem. It's going to be pretty darn hard to remove it from there if I don't comply. Maybe you'd have to enforce some law.<p>In that context, it seems that people were led to believe that "removal from the server(farm)" is the same as "removal from the universe", but that's just not true.<p>Happy for any insight on how to approach this differently.</p>
]]></description><pubDate>Fri, 23 Jan 2026 17:05:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=46734881</link><dc:creator>lorenzleutgeb</dc:creator><comments>https://news.ycombinator.com/item?id=46734881</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46734881</guid></item><item><title><![CDATA[New comment by lorenzleutgeb in "Radicle: The Sovereign Forge"]]></title><description><![CDATA[
<p>Tor only (SOCKS) or Tor and clearnet is easy. Yggdrasil only is also easy (just restrict access to your tun). Yggdrasil and clearnet requires you to ensure that outgoing traffic takes the correct interface, this also applies if you want to combine with Tor. I don't know about I2P.</p>
]]></description><pubDate>Fri, 23 Jan 2026 16:52:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=46734720</link><dc:creator>lorenzleutgeb</dc:creator><comments>https://news.ycombinator.com/item?id=46734720</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46734720</guid></item><item><title><![CDATA[New comment by lorenzleutgeb in "Radicle: The Sovereign Forge"]]></title><description><![CDATA[
<p>Right. Radicle would be one way to connect all these Raspberry Pis in many pantries together, and have them replicate each others repos. It also enables others to send patches, without first having to create an account on that Raspberry Pi in your pantry. And in case your Raspberry Pi is offline, others will just as happily serve your project, with cryptographic assurance that it wasn't modified.<p>Don't get me wrong. Power to you and your Raspberry Pi! Radicle invites you to join a network of people that solve the same problem as you do, and pool resources.</p>
]]></description><pubDate>Fri, 23 Jan 2026 16:44:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=46734623</link><dc:creator>lorenzleutgeb</dc:creator><comments>https://news.ycombinator.com/item?id=46734623</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46734623</guid></item><item><title><![CDATA[New comment by lorenzleutgeb in "Radicle: The Sovereign Forge"]]></title><description><![CDATA[
<p>Currently, with Radicle still under active development, we already reach convergence times that are negligible for async collaboration (like working on code or issues). Working on a well-seeded repo, my changes sync to ~10 nodes within a tenth of a second and with ~80 nodes within 3 seconds.<p>This is obviously not fast enough for sync collaboration, like writing on a virtual whiteboard together, but that's also not what Radicle is designed for. Also, if you share larger files (e.g. you attach a screenshot to your issue) the above times might not be a good estimation anymore, but that's the exception for now.<p>It's really strange to see that people assume that peer to peer networks somehow must be slow. In my experience, since everything runs locally, working with Radicle feels <i>way</i> more snappy than any web interface, which has lots of latency on every so-odd click.<p>As the network scales, it'll of course take some care to keep the speed up, but that's known and there are a few models to take inspiration from.</p>
]]></description><pubDate>Fri, 23 Jan 2026 16:31:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=46734438</link><dc:creator>lorenzleutgeb</dc:creator><comments>https://news.ycombinator.com/item?id=46734438</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46734438</guid></item><item><title><![CDATA[New comment by lorenzleutgeb in "Radicle: The Sovereign Forge"]]></title><description><![CDATA[
<p>> is there a mirror adapter to push to a non-radicle node, such as Github or say, sourcehut?<p>You can just add a remote for another repository.<p><pre><code>    git remote add github git@github.com:example/example.git
</code></pre>
You can also create remotes with multiple push URLs, so that with one `git push`, you push to all of them at once.<p>Apart from that, it's possible to use e.g. systemd path units to run `git push` automatically whenever a repository gets updated by `radicle-node`.<p>This works reasonably well. What else would the adapter have to do?<p>> is there a mechanism to control syncs so it can be used on low-bandwidth, unreliable networks, or ad-hoc bluetooth networks?<p>No. The data itself usually is quite small, as the common use case is to send commits. It's not optimized for unreliable networks or Bluetooth in any special way yet. It would certainly be useful.<p>> is offline seeding possible or in the works?<p>That's contradictory in my mind. What do you mean? Offline in the sense of "not connected to the internet"? That works just fine. Currently, you still have to connect your node to the existing network by connecting to another known node (via IP address or a DNS name that resolves locally). There are plans to integrate DNS-SD, also via mDNS.<p>> language package managers often can reference a git or github. Would I be able to directly reference my local radicle node and have it manage (or perhaps even discover) the correct repos?<p>For now, no. It's however reasonably simple to deploy a component called `radicle-httpd`, which will expose your repos via Git over HTTP if you like. Looks like this:  <a href="https://seed.radicle.xyz/z3gqcJUoA1n9HaHKufZs5FCSGazv5.git" rel="nofollow">https://seed.radicle.xyz/z3gqcJUoA1n9HaHKufZs5FCSGazv5.git</a><p>> (Or maybe this is a different problem and package repos themselves could be decentralized and sovereign)<p>Yes. Consider things like <a href="https://www.tweag.io/blog/2020-12-16-trustix-announcement/" rel="nofollow">https://www.tweag.io/blog/2020-12-16-trustix-announcement/</a></p>
]]></description><pubDate>Fri, 23 Jan 2026 16:05:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=46734116</link><dc:creator>lorenzleutgeb</dc:creator><comments>https://news.ycombinator.com/item?id=46734116</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46734116</guid></item><item><title><![CDATA[New comment by lorenzleutgeb in "Radicle: The Sovereign Forge"]]></title><description><![CDATA[
<p>Radicle is a free software project, not a company or commercial product. Many other open source projects are also not monetizable in the narrow sense, and still manage to attract enough contributors and funding to flourish. Sometimes these projects even get adopted so widespread that multiple companies build consortia/foundations to fund the development, even if there is no direct revenue stream from that.<p>As long as someone is willing to fund the development of Radicle, the developers just will have a stronger incentive to work on it. Without any more funding, of course it will join the (very large) club of less well funded free software projects.<p>If enough people join and contribute now, and then some companies make the switch, it might well be feasible to pay a small team to continue working on it, financed by donations.<p>Just don't think about it as a commercial product, only because someone decided to use their money towards its development. If you don't like that it's not a company, then that's okay. I am just trying to give another perspective.</p>
]]></description><pubDate>Fri, 23 Jan 2026 15:53:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=46733951</link><dc:creator>lorenzleutgeb</dc:creator><comments>https://news.ycombinator.com/item?id=46733951</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46733951</guid></item><item><title><![CDATA[New comment by lorenzleutgeb in "Radicle: The Sovereign Forge"]]></title><description><![CDATA[
<p>For CI, please refer to <a href="https://radicle-ci.liw.fi/" rel="nofollow">https://radicle-ci.liw.fi/</a> and <a href="https://radicle.xyz/2025/07/23/using-radicle-ci-for-development" rel="nofollow">https://radicle.xyz/2025/07/23/using-radicle-ci-for-developm...</a></p>
]]></description><pubDate>Fri, 23 Jan 2026 15:41:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=46733808</link><dc:creator>lorenzleutgeb</dc:creator><comments>https://news.ycombinator.com/item?id=46733808</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46733808</guid></item><item><title><![CDATA[New comment by lorenzleutgeb in "Radicle: The Sovereign Forge"]]></title><description><![CDATA[
<p>First, to make this clear: The Radicle network is not dependent on any blockchain technology, you can use it without holding any cryptocurrency/token. You do not need a wallet. You just need to generate an Ed25519 keypair for yourself.<p>Radworks and RAD are still a thing, and the last vote (<a href="https://community.radworks.org/t/3698" rel="nofollow">https://community.radworks.org/t/3698</a> and <a href="https://community.radworks.org/t/3703" rel="nofollow">https://community.radworks.org/t/3703</a>) was to fund Radworks App (<a href="https://radworks.org/app" rel="nofollow">https://radworks.org/app</a>), Drips (<a href="https://www.drips.network/" rel="nofollow">https://www.drips.network/</a>), Radicle Garden (<a href="https://radicle.garden/" rel="nofollow">https://radicle.garden/</a>).<p>Radicle development is funded by the Better Internet Foundation (<a href="https://betterinternet.foundation/" rel="nofollow">https://betterinternet.foundation/</a>), previously called "Radicle Foundation".<p>RAD "tokenomics" are discussed here: <a href="https://community.radworks.org/t/3645/" rel="nofollow">https://community.radworks.org/t/3645/</a></p>
]]></description><pubDate>Fri, 23 Jan 2026 15:34:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=46733716</link><dc:creator>lorenzleutgeb</dc:creator><comments>https://news.ycombinator.com/item?id=46733716</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46733716</guid></item><item><title><![CDATA[New comment by lorenzleutgeb in "Radicle: The Sovereign Forge"]]></title><description><![CDATA[
<p>Yes. Radicle also makes it easy to run behind Tor, see <a href="https://radicle.xyz/guides/user#4-embracing-the-onion" rel="nofollow">https://radicle.xyz/guides/user#4-embracing-the-onion</a> and there are people that use it via Yggdrasil, see <a href="https://yggdrasil-network.github.io/services.html#radicle-nodes" rel="nofollow">https://yggdrasil-network.github.io/services.html#radicle-no...</a></p>
]]></description><pubDate>Fri, 23 Jan 2026 15:07:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=46733362</link><dc:creator>lorenzleutgeb</dc:creator><comments>https://news.ycombinator.com/item?id=46733362</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46733362</guid></item></channel></rss>