💾 Archived View for jsreed5.org › log › 2024 › 202403 › 20240312-disappointment-in-urbit.gmi captured on 2024-06-16 at 12:44:07. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2024-03-21)
-=-=-=-=-=-=-
---
I first heard about and became interested in Urbit in late 2020. Censorship from big tech, a tumultuous election year filled with agitation and misinformation, and isolation at the height of the COVID-19 pandemic all led me to search for different communities and technologies outside the sensationalist mainstream. It was this same yearning that brought me to Gopher in January 2021, and Gemini that March.
Urbit is a fascinating project, but it doesn't particularly satisfy my desire for digital independence. There are several caveats about its design and operation that I was not aware of when I purchased my planet, and had I known about them at the time, I may have made a different decision.
It's true that your own ship keys are yours forever and cannot be revoked by any authority. But to spawn an Azimuth point (generate a ship that is not a comet) and generate the initial keys, one must make a contract call on the Ethereum blockchain. This immediately ties the existence of one's identity on the network to a blockchain--and means the generation of an immutable digital space is not independent of other technologies.
Further, the usefulness of one's keys is entirely dependent on the integrity of one's ship. If you need to reset your pier to recover from an error or fix a bad event log, you must generate new keys, making your old ones useless. This also requires a transaction on the Ethereum blockchain, which incurs a cost. Not only that, but the recommended way to perform a reset is through a Web portal, and I have seen no documentation on how to perform a reset any other way. This ties the error recovery functionality of Urbit to an online service outside the Urbit runtime or network.
Even worse, Urbit isn't really decentralized. Each Azimuth point, once spawned, can essentially be run independently, but they must initially be spawned from a sponsor higher up in the chain. Galaxies create stars, stars create planets, and planets create moons; none of these can exist without their parents in the hierarchy. Even after nodes are generated, they are dependent on that hierarchy for routing and updates: stars and planets get updates from galaxies, moons get keys and updates from planets, and so on.
I also have a few personal frustrations with Urbit. For one, Urbit is heavy. Guides exist for running a ship on a Raspberry Pi, but the software requires at least 2 GB of RAM to operate, and it can require several gigabytes of storage (into the dozens) for its event log. This makes running a ship on something like a Raspberry Pi 1 infeasible. In contrast, I can easily run a basic Gemini capsule with CGI scripts and a Misfin server on an RPi 1 and have plenty of memory left for other tasks, like a print server or home automation.
Another gripe is with Urbit's event log. Urbit touts itself as an "operating function" rather than an operating system, since the state of one's ship is a pure function of the event log. However, this means the integrity of one's presence on the network is entirely dependent on the integrity of the event log. If the log is corrupted or lost, you must reset your ship, losing all of your data in the meantime. This bothers me so much because I know of no way to maintain hot replicas of the event log--it seems Vere is only capable of writing data to a single log file in a single location, causing the ship to have no redundancy whatsoever.
Many of these issues are built into Urbit by design, such as its hierarchical system. Azimuth points are finite and not particularly plentiful, for example, so they have value and are not generated freely. The project is trying to address other issues. Urbit hopes to move away from Ethereum as the witness for Azimuth one day and store identity information within the network itself. Fully-independent nodes exist in the form of comets, which are numerous enough to be considered limitless, but they have no presence on Azimuth, cannot spawn sub-nodes, and cannot be re-keyed. I have not heard of any efforts to make the event log more resistant to failures.
Overall, I'm just not as thrilled about them as I once was. It does not fit my goals for digital independence and autonomy, and it is not stable or resilient enough to offset my frustrations. I definitely do not see Urbit becoming the new foundational paradigm in technology that its supporters envision it to be.
The bright side is that Urbit does have a lot of interesting ideas, and new ones are developed and tested all the time. I bought a planet and thus have a permanent place in the network, so I can stick around and see what comes of it. And if I really get tired of things, I can always sell my planet and get some money back.
---
[Last updated: 2024-03-12]