~

Roadmap

Increase Capability

Summary

Urbit isn't a complete system yet, and certain parts of its design that were always planned have not yet materialized. Two major capabilities we'll introduce in 2024 are:

  1. The ability to store arbitrary amounts of data, and
  2. A networked global namespace.

Urbit's first runtime was written as a 32bit architecture, meaning an Urbit node could only address 32 bits of memory, limiting data storage to 2GB. This was the case up until late 2022, and with a couple of clever hacks we were able to increase capacity to 8GB; however, this is still insufficient for numerous use-cases.

The Ares project solves this problem virtue of being written with a 64 bit architecture, and its Persistent Memory Arena (PMA) is written with demand paging from the start to ensure efficient memory management.

Urbit's global namespace allows any node on the network to bind arbitrary data to an immutable, revision-controlled path. Our implementation of the global namespace (which is heavily inspired by the Named Data Networking project) revolves around the concept of remote scry. We released the initial part of remote scry earlier this year, but further work is needed for it to become a true global namespace. When completed, it will enable:

  • A fast and scalable subscription system
  • Automatic caching of arbitrary content
  • Content distribution for a P2P network at scale
  • Links to arbitrary content

Projects

Completed

Encrypted Remote Scry

Arvo needs to encrypt scry paths and the values bound to them in order to use the remote scry protocol for private data such as group chats.

Completed

%lick: an IPC vane

The %lick vane enables communication between Urbit applications and applications operating on the host operating system.

Current

Ares: Persistent Memory Arena (PMA)

start date

2023-01-01

end date

2024-01-15

Ares has a novel scheme for ensuring copy-on-write semantics for memory pages in a way that minimizes disk write amplification when taking an incremental snapshot.

Next Up

Add %pine Query-At-Latest Protocol

duration

1-2 Months

start date

2024-04-01

Remote scry on its own doesn't let one ship determine the latest state of a publication on another ship. This is solved by adding another protocol alongside the remote scry network protocol to implement `%pine` query-at-latest requests over the network, as pure reads.

Next Up

Sticky Scry

start date

2024-06-30

Sticky scry aims to enable cross-ship subscriptions using the remote scry protocol (Fine).