Urbit / Posts

~2016.7.20 Update

First, a huge thank you to everyone who helped make our crowdsale a success. It's an amazing feeling to realize that the Internet is fully capable of funding and programming its own replacement. The world both knows enough about it, and cares enough about it.

It will still be a lot of work to make Urbit a polished product for ordinary humans, and organizing this work remains a tremendous responsibility. But now we're confident that it can be done.

Now that the public has a serious stake in Urbit, we can't really keep up our old habit of working in the dark and occasionally releasing mysterious beautiful things. We'll keep up with these monthly updates, on or about the 20th of each month.

As always, you can see the beating pulse of Urbit development at urbit.org/stream.

General status

The work required to pull off the sale definitely drained the energy of our two strongest engineers, Philip (~wictuc-folrex) and Anton (~fyr).

Rather than remain on the path to total burnout we decided to push back the issuing of stars. Our goal is to activate invites on August 12th, 2016. Apologies for the delay, and the short notice.

Great renaming, rekeying, and new ames

If you bought a star, you might notice that while our invitation server (the womb) is up, it's not currently configured to let you create a star.

Our first major release, which comes with a continuity breach (complete network reboot where all ships are recreated), needs to (a) fix the ship naming algorithm “@p”, giving everyone (including us) new names; and (b) replace the somewhat risible cryptosuite A (RSA and other horrors) with the competent cryptosuite B (Curve25519, Ed25519, AES).

Not only will this let star buyers collect their stars (they don't need to, but it might be fun), but all planet owners will now claim their new planets via the womb. If you have an old ticket, the womb will convert it into a new invitation.

We had planned to run the great renaming today, but about a week or so ago we found ourselves reconsidering. This isn't because the new crypto and @p code isn't ready -- it is (largely because it's the work of Ray, ~raplys-lornex). But...

1: Anton needed a break and the womb is his code. For a piece of critical infrastructure, it's also a little under-documented and under-tested. Hoon as a typed language makes you lucky. Urbit is still a testnet, but we're a little tired of relying on luck.

2: Slipping the great renaming lets me (Curtis, ~tasfyn-partyv) resuscitate and integrate my rewrite of the %ames network module, which was mostly completed and then put aside six months ago (so that I could do things that didn't involve writing code). New %ames is sorely needed, because right now there's a network bug that actually sinks (permanently disables) ships, and we basically can't debug anything in the area because we'd be debugging old code.

People have also expressed some concern about the fact that %ames is sending mysterious UDP messages which aren't documented in any way (the whitepaper has some protocol description, but it's still not quite comprehensive. Actually, %ames is a pretty clean system overall and shouldn't be hard to turn into the kind of literate, stable Hoon code the future should be made of. But again, documenting obsolete code kind of sucks.

Finally, we have an idea (half Anton's, half mine) about how to actually end the unfortunate tradition of continuity breaches, by providing a “rough start” model which lets you create a working ship with just the private key. Needless to say, it would be very exciting to actually stop rebooting the universe, permanently.

So it's a pretty good fit to push the renaming and the new network protocol out into a single Great Inception, which currently seems like it should happen in early August. I certainly can't wait to pick my new, permanent Urbit name! But as always, we ship no code before its time. We will keep you up to date on our progress.

Other near-term goals

The short-term focus remains self-hosting and onboarding. Ray is currently working on building a simple message board on top of tree, so that Urbit can be its own phpBB as well as its own IRC. Persistent IRC (ie, :talk) is extremely useful, but we need long-form discussion. Reddit is pretty good, but not quite right -- and an ounce of self-hosting is worth a pound of SaaS.

Basically, we don't intend to work on user-level features that we don't use ourselves for quite some time, if not ever. Self-hosting is the path to maturity, always and everywhere.

Medium-term goals

Our medium-term focus is expanding the attack surface of Urbit as an open-source project in every possible way. We want to completely dispel the aura of mystery.

There are two general paths toward this: teaching and documentation. On the teaching front, I think you'll like the new, super-easy Urbit learning series I started here. More Urbytes are forthcoming.

On the documentation front, Urbit has a large volume of basically undocumented and undescribed code at the Hoon and Arvo levels. This is incredibly shitty from the perspective of an open-source project, especially because neither I nor anyone has the kind of obsessive attachment to random details that you'd expect in an under-documented system.

We need the community to own the technical decisions in Hoon and Arvo. Urbit can't be a real open-source project until we truly open this attack surface.

The right way to solve this, I think, is to “document into existence” -- producing design documents from the existing codebase, reviewing these designs collectively, then converging the actual code with them. The key areas to attack are Arvo itself and the vanes. The first area I want to do this with is the new %ames.

There is an excuse for not having done this already: premature documentation is a serious evil. When you're figuring out how a system should work at all, documenting it is counterproductive. But Urbit is past this point. It needs to settle down and become a grownup.


Many thanks to those who have been providing the fantastic stream of PRs we have been getting. We've had great help on all parts of the stack, from the front-end to the C interpreter to Arvo vanes.

We'd love to help you get involved. Come join us on :talk!

Keep in touch / office hours

:talk is always a great place to come and ask questions. Going forward someone from Tlon will be available in :talk from 12PM - 3PM PDT each weekday.

r/urbit is also a good place for any kind of discussion.

For anything else you can always get in touch with us via [email protected].