The Urbit Thread - Why you shuold use Urbit, and so should your mom

Shoggoth

kiwifarms.net
What the fuck is Urbit and why is it the solution for everything?
Or - why you should use Urbit, and so should your mom.

Urbit is an ambitious project by one absolute madman (Mencius Moldbug aka Curtis Yarvin) to reinvent the Internet from scratch.

In Yarvin's conception, which I accept and will refer to from hereon, the Internet has failed in its purpose.

The internet was supposed to be a peer to peer network where you'd talk to other operators. It has become a wasteland of clients who all access servers in a manner very similar to terminals and mainframes of old. Total fail.

The three main ways in which the Internet has failed:
  • Data are pwned.
  • The system is pwned.
  • Identity is pwned.

Data:
It is clear that we do not own our data. We are more like data cows for big spy conglomerates. Our data is locked in. From the content we produce to our contacts and metadata (muh feeds, muh tags). Most protocols are not open, too.

System:
The web sucks. Modern software sucks. Everything is bloated. You couldn't read your operating system's kernel if you wanted to, because it's too freaking long. Critical parts of infrastructure can turn out to be a library maintained by a thankless developer for over a decade. Not a stable model.

Identity:
Not only do we not own our data, we don't own our identity. We have no control over how our data is stored and handled. Data breaches and hacks are common. But worse is that we trust any of the services which proxy our identity with it, i.e. if service is discontinued for any reason, by either the service itself or because it got taken down (KF, Gab, Parler) the identity goes with it.

This is such a big mess that Yarvin has decided to throw it all out and go back to basics. How would a computer designed by smart Martians would look like?

Urbit encompasses many aspects. It is an identity model, a network for said identities, a formal spec, a virtual machine (VM), an operating system, set of protocols and an application suit.

By starting from a minimal and axiomatic specification, Urbit can remain small and simple. This solves the system problem.
By providing an identity model and network, the identity problem is solved.
By fixing identity and the system and some careful design you can solve the problem with data.

I won't go too much into technical details in this overview because there's a lot to cover anyway.

Urbit is a personal server (personal as in personal computer) which unifies services, data and identity. It is not a social network, a secret club, or functional programming hour with moldbug (unless you want it to be).

The names of everything are stupid. You get used to it.

The components of Urbit:
  • VM: The Urbit VM is called Nock. It is formally specified and very simple to understand. You can write your own Knock implementation in an afternoon if you know how to program.
  • Higher level programming language: Hoon. Like Urbit's C, but looks like it was written by a guy on acid. He probably was on acid.
  • Operating system: Does everything you'd expect an OS to do. Includes network stack, file system, application sandbox, web server, gatewawy, and Lanscape, a social agent
  • Urbit executable: Urbit is a static executable. Stupidly easy to run, zero dependencies or orchestration.
  • Landscape: When you run an Urbit process, by navigating to localhost:8080 you can access a web client for Urbit's social functions. As of April 2021 it supports DMs, groups (aggregates of channels), channels of three types: chat (like discord, slack, w.e.), index (link dump, similar to HN) and notebook (text publishing in markdown, embeds images, etc.)
  • Identity: Every process running on the Urbit network is tied to a cryptographically signed identity with which all communications are signed and verified. Routing is source independent, i.e. it does not matter which machine it came from, by way of which machines, but *who sent it*. Ownership of the Urbit identities is managed and transferred on the Ethereum network. It's like a NFT, but actually useful and worth a damn. This is used only to get your Urbit keys, nothing more. The identity is artificially scarce and costs ETH which prevents bots, Sybil attacks, sock puppets and other annoyances.
  • Peers: The Urbit network is a fully peer to peer network with no centralized authority or identity management. Every peer on the network is a server. When you join a group, you communicate with someone else's server. When people join your group, they talk to your server. *You* are serving them content. On the axis of platform/publisher, on the Urbit network *everyone* is a publisher. Every message is published by a unique identity.
  • Hierarchy: this is a bit involved, but there's a hierarchy of identities on Urbit, Galaxies (256), Stars (~65k), Planets (~4e9) (Moons and Comets). Higher hierarchies have extra responsibilities in terms of routing communications and distributing software updates. They also have the power to censure, but theoretically as long as one Star is willing to sponsor your planet, you're okay. I don't think that's a problem.

"Okay retard," I hear you say, "That's a perfectly good reason not to use Google services, Twitter or Facebook, but what about the Fediverse?"

The Fediverse doesn't essentially solve any of the three issues with the modern Internet. It makes them smaller, yes, but you still sign on to someone else's server. You can't migrate your data across instances, you can't migrate your identity across services (pleroma, mastodon, peertube will all need separate accounts), and self hosting is a fuck. It's complex and resource intensive. It also leaks your IP if you do it at home, and you still need DNS.

Discord is run by tranny jannies who shut down a good-boy server, any Fedi solution requires signing on to someone's server. Learn from Null's experience .

Any corner you can run to can be taken down unless you're location independent. Urbit, being completely portable can be run on a RPi from your room or from a VPS just the same. Your entire state is frozen in a single directory. Just move it to another machine and run from there. With no centralized authority in the network and no means to effectively take a peer out of the network from the outside, you can finally communicate freely.

Urbit's future:
It's true that in terms of features the Fediverse probably has Urbit beat, but that's temporary. In the meanwhile, Urbit is constantly improving. Some features coming in the future:
  • Video and audio streaming (i.e. chats)
  • Activity feeds of your subscriptions
  • BTC wallet integration. This is pretty huge. ~faggot-morzod will be able to send ~nul BTC at the click of a button. (edit: by end of this month https://urbit.org/blog/interplanetary-commerce/)
  • Some solution to ridiculous ETH gas fees.
For more information see https://subject.network/posts/state-urbit-spring-2021/

Running Urbit:
Pretty simple, follow the instructions, shouldn't take more than 5 minutes.
(edit) Alternatively, use this bundle. Yes, it's an Electron app, but if you don't want to bother with the CLI at all, it takes care of everything for you. Pretty fool proof.


Buying Urbit identities:
You can try the network out with a junk anon identity (a comet), but comets are considered plebs, beneath trash, and not taken seriously by peers. Fully fledged members of the network are Planets. I bought mine on urbit.live . The ETH gas prices are pretty terrible, but you can get away with a planet+gas under 100$.

Hosting Urbit:
You can run Urbit on your PC. Some run it on a raspberry pie. Some on a VPS. Pick a solution right for you, but if you decide to join the network, it's better if the host will remain online. Whatever you do, don't run the same identity at the same time on two different locations. Good luck fixing a split brain.

Privacy and discoverability:
Due to its p2p nature, and groups being able to be private, everyone can exist on Urbit in parallel and not even know who's doing what and where. It's one of the neater things about it. No one can poke their nose into your business, see what's going on, and tattle to media/hosting/NGOs. Your grandma, bless her heart, can be on the cats group, sharing pictures of mittens, while you're in Spandrell's group shouting in the Shouting Box about niggers. You can share funny pictures and no one outside the group of recipients will know.

The community:
There is no "Urbit community", although there's an Urbit Community group as a sort of gateway for new users. Public groups can choose to publicize themselves on the index group. There are groups on a selection of topics, from weeb music to sleep quality, from political extremism to a group dedicated to hosting on raspberry pies.
There are intelligent and interesting people on Urbit, from monks and musicians to CEOs and political extremists.

I think we're going in a direction where we'll have to end up self-hosting. The smallest level of self hosting is individual, and with Urbit it's stupidly easy, and simple to use. The only current pain point is acquiring the identity itself.

Urbit is fun, it works, and as the tech world will get worse in the coming years, I think it will become more important. It's a bit in the virgin land state at the moment, but it's also the easiest phase to put a stake in.

Further reading:

Why self host:

Urbit:

Yarvin on Urbit, read only if you have the energy for it
https://www.unqualified-reservations.org/2011/10/personal-cloud-computing-in-2020-or-not/ - more to the point
https://graymirror.substack.com/p/tech-solutions-to-the-tech-problem - more meandering

Yarvin on technical aspects of Urbit, requires even more energy

Media:
Landscape, the Urbit web client (older picture, bit more polished now)

1618076662226.png



The Stack podcast

Interviews
 
Last edited:

lemmiwinks

кремлеботы
True & Honest Fan
kiwifarms.net
Any corner you can run to can be taken down unless you're location independent. Urbit, being completely portable can be run on a RPi from your room or from a VPS just the same
Does moldbug or whoever have any ideas about infrastructure? Is there a plan for a wireless mesh or something?
If someone is pissed off at you and powerful enough that it necessitates basically reinventing the wheel (rather than an individual or small group using freely available federated services), they probably can and will attack you via infrastructure next.
Is there any spec for future infrastructure?

To be clear, I am not shitting on UrBit
Urbit. I think it is a worthwhile project for the people building it, if only for the learning experience.

Edit: to correct stylization of UrBit.
 
Last edited:

Medulseur

The latest and gayest.
kiwifarms.net
What advantage does this have over federated networks?

Edit: Disregard. My tired old eyes are failing me.
 

Shoggoth

kiwifarms.net
Does moldbug or whoever have any ideas about infrastructure? Is there a plan for a wireless mesh or something?
If someone is pissed off at you and powerful enough that it necessitates basically reinventing the wheel (rather than an individual or small group using freely available federated services), they probably can and will attack you via infrastructure next.
Is there any spec for future infrastructure?

To be clear, I am not shitting on UrBit. I think it is a worthwhile project for the people building it, if only for the learning experience.
Urbit (not UrBit. Like Orbit. From planet Urth) isn't a hobby project or an experiment, although it started out as one. Currently communication happens on top of the Internet, but it doesn't have to be. It's hard to attack Urbit via infrastructure as far as I know, although if you take out the Galaxies and Stars things will be bad. Still, there would eventually be 65k stars. The entire point is that it doesn't matter where and on what machines you run the nodes. That's the aspect of location independence I mentioned. It's a very resilient solution
What advantage does this have over federated networks?

Edit: Disregard. My tired old eyes are failing me.
De nada, I'm glad you ended up finding the answers in the post. I hope they are satisfactory.
 

Shoggoth

kiwifarms.net
Why do I need a new OS and programming language to shitpost on the internet?
It's not on the internet, it's on the Urbit network. It just happens to use the Internet as a transfer layer, but the network doesn't leak out to the internet.
You don't have to learn anything about the OS, Nock or Hoon to use it, like you don't need to learn C# to use Windows. You can just use it and it works well.
If you do want to learn it, though, it's pretty small and can fit reasonably in your head, unlike the current mess which is modern software.
 

byuu

Non-binary they/them
kiwifarms.net
It's not on the internet, it's on the Urbit network. It just happens to use the Internet as a transfer layer, but the network doesn't leak out to the internet.
You don't have to learn anything about the OS, Nock or Hoon to use it, like you don't need to learn C# to use Windows. You can just use it and it works well.
If you do want to learn it, though, it's pretty small and can fit reasonably in your head, unlike the current mess which is modern software.
That does not answer my actual question.
 

Shoggoth

kiwifarms.net
I keep meaning to get into this, but my main question is whether or not it's flooded with trannies and/or social justice dropouts like fedi and scuttlebutt is.
Nope. Most of the crowd is libertarian to extremely right wing
That does not answer my actual question.
Doesn't it? It's not really on the internet so I parsed your question incorrectly. I tried to lay out the rationale - the internet is fucked. You can't fix it, you need a new network and new model, one where location doesn't matter, you can't be banned, and where identity is first class and not something provided to you by a corporate entity.
 

Coolio55

<(0_0<) <(0_0)> (>0_0)> KIRBY DANCE
kiwifarms.net
This sounds interesting but I fucking hate nock and hoon.
This could all probably be succeeded by some sort of doldoc transfer protocol (DDTP).
 

byuu

Non-binary they/them
kiwifarms.net
Doesn't it? It's not really on the internet so I parsed your question incorrectly.
I tried to lay out the rationale - the internet is fucked. You can't fix it, you need a new network and new model, one where location doesn't matter, you can't be banned, and where identity is first class and not something provided to you by a corporate entity.
And why does this require a new OS and PL?
I'm not asking if I have to learn it or how small it is.
I'm simply asking why a networking protocol needs its own OS and PL.
 

Shoggoth

kiwifarms.net
This sounds interesting but I fucking hate nock and hoon.
This could all probably be succeeded by some sort of doldoc transfer protocol (DDTP).
You get used to it. Or don't bother with them at all. They are not required for using Urbit.
The amount of autism from a single person to do all of this is absolutely impressive.
Made all the more impressive by the fact that shit works.
And why does this require a new OS and PL?
I'm not asking if I have to learn it or how small it is.
I'm simply asking why a networking protocol needs its own OS and PL.
Because it's not just a networking protocol.
To be completely location independent your state must be recreatable and portable as well.
I'm not saying it couldn't be implemented in another language, but by doing everything clean slate you solve "the system is pwnd" problem. It is formally specified and easy to understand. You target a formally specified VM and not some messy architecture. Everything is small and simple.
The design also supports sending code updates over the air (instead of binary), compiling and running them safely. Sandboxing is trivial on Urbit, for example.
Does it really need a new OS and PL? Probably not. Does it help the solution along? I think so.
 

byuu

Non-binary they/them
kiwifarms.net
I'm not saying it couldn't be implemented in another language, but by doing everything clean slate you solve "the system is pwnd" problem.
I'm not sure what you mean by that. Going by your OP's system section:
The web sucks. Modern software sucks. Everything is bloated. You couldn't read your operating system's kernel if you wanted to, because it's too freaking long. Critical parts of infrastructure can turn out to be a library maintained by a thankless developer for over a decade. Not a stable model.
How does running code portably on a VM solve any of that?
We already do that. It's called JavaScript and it's everything wrong with the web.

If it's Turing complete you can write crappy bloated software for it.
If it's used by more than ten people someone will write crappy bloated software for it.
 

Kosher Dill

Potato Chips
True & Honest Fan
kiwifarms.net
Why should I prefer this over running a plain old HTTP server on my PC (or a Pi or whatever), with a dynamic DNS service pointing some domain to it?

I'm not entirely clear on how presence is managed by stars and galaxies (the documentation is uniformly impenetrable), but it seems to boil down to something similar.
 

Shoggoth

kiwifarms.net
I'm not sure what you mean by that. Going by your OP's system section:

How does running code portably on a VM solve any of that?
We already do that. It's called JavaScript and it's everything wrong with the web.

If it's Turing complete you can write crappy bloated software for it.
If it's used by more than ten people someone will write crappy bloated software for it.
While true that crappy software will always be written for Turing complete systems, I think Urbit's small implementation and axiomatic underpinnings help mitigate it to an extent.
Running on a portable VM solves a lot of the data and a bit of the identity problem, not the system problem. The system solution facilitates that.
The other part of portability which JS lacks and Urbit doesn't is state portability. The sate of the entire VM is independent of the host machine and can always be recreated. Some languages like Common Lisp allow you to create an image, but that image is obtuse, i.e. you couldn't recreate it, only load it.
Why should I prefer this over running a plain old HTTP server on my PC (or a Pi or whatever), with a dynamic DNS service pointing some domain to it?

I'm not entirely clear on how presence is managed by stars and galaxies (the documentation is uniformly impenetrable), but it seems to boil down to something similar.
Because it's not just a plain old HTTP server? It's running multiple services, has a built in p2p network, and requires no management or maintenance. How much bother would it be for you to serve your own chat, publishing, index, groups, chess, bitcoin wallet and make sure you're on the same page with all your peers? I don't want to be a sysadmin or develop and enforce protocols or network coherency.

Overview of some more Urbit developments:
 

Shoggoth

kiwifarms.net
Some serendipitous endorsements by other users:
Being the cynic I am, I'm more inclined to believe the "solution" will be RealID and everything will simply be digitally signed on upload so you know who it came from.
This is one of the ideas behind Urbit ID. They are scarce and unique, and every upload is digitally signed by the uploading ID. This isn't bad for the purposes of social communication and collaboration when your name isn't directly tied to your ID.
Bullshit. Platform is owned by whoever hosts it. Sure, you can ask the host to grant you backdoor access or to delete content you disapprove of, but don't be surprised when the only thing you get will be the finger.
This is why the best platform is no-platform and self host everything. That way you aren't at the mercy of the host, or effected by their own personal situation
 

Kosher Dill

Potato Chips
True & Honest Fan
kiwifarms.net
I'm trying to understand Ames better here.

Is all communication direct P2P (possibly relayed by a galaxy) or is there any sort of caching/redistribution/torrenting going on?
Is it possible to communicate with planets in other galaxies?
If galaxies manage presence for planets, who does the same for galaxies? How do I look up the IP of a galaxy if I don't know it or it changes?
 

Shoggoth

kiwifarms.net
Is all communication direct P2P (possibly relayed by a galaxy) or is there any sort of caching/redistribution/torrenting going on?
direct p2p. galaxies only provide a sort of DNS
Is it possible to communicate with planets in other galaxies?
yes. galaxies help manage the network and serve as root dns nodes, they aren't like countries. The entire network is visible.
If galaxies manage presence for planets, who does the same for galaxies? How do I look up the IP of a galaxy if I don't know it or it changes?
Galaxies form a senate. It's a gentleman's club. They manage each other. There are a few galaxies which are hardcoded so you can always find them, like zod.urbit.org.
 

Jones McCann

“O brave new world that has such people in it.”
kiwifarms.net
I'm not smart enough to understand any of this but it looks interesting, haven't seen anything like the programming language either.
Code:
|=  [email protected]                                               ::  1
=/  [email protected]  1                                          ::  2
|-                                                      ::  3
^-  (list @)                                            ::  4
?:  =(end count)                                        ::  5
  ~                                                     ::  6
:-  count                                               ::  7
$(count (add 1 count))
 
Top