Skip to content

Latest commit

 

History

History
57 lines (37 loc) · 1.88 KB

File metadata and controls

57 lines (37 loc) · 1.88 KB

Rostra: Technical Architecture

Lightweight event DAGs

In Rostra all data is propagated in forms of Events. The events are a tiny fixed-sized packet, that is being signed over by the author. Cryptographic hash of the Event is an EventId and uniquely identifies the event.

Among some other minor things, Event includes EventIds of up to two previous Events

Thanks to this the history of all past events of the given user forms a dag, that can be traversed (and replicated) from the newer to the older events. Among other benefits, this allows seamless multi-device use - any disjoint parts of the history can get "stitched together" with any newer event pointing to both.

The Event also includes ContentHash - a cryptographic hash of the actual payload carried.

This defers the need to download the bulk of data, and allows selective (incremental, partial, etc) data replication.

Network architecture

Rostra utilizes Pkarr as a sovereign distributed naming/identity system, and iroh-net as a p2p transport layer.

Any Rostra node can connect with any other node, and identity's connectivity information and latest state can be bootstrapped using Pkarr, after which nodes can communicate using Iroh's built-in discovery mechanism.

Rostra node can be "full" (download and store data) or "light" (no persistence), potentially with a variety of storage policies.

A single user/identity can run multiple nodes for a combination of:

  • privacy
  • availability
  • multi-device use

Events and their content are synchronized in real-time, based on the social graph information.

Points of Interest

To understand the inner workings in more details, here are some POIs (might go stale over time):