shrub/pkg/arvo
Philip Monk 89b9977ac8 azimuth: fetch snapshot on boot
Previously, the initial Azimuth snapshot was stored in Clay and shipped
in the pill.  This causes several problems:

- It bloats the pill
- Updating the snapshot added large blobs to Clay's state.  Even now
  that tombstoning is possible, you don't want to have to do that
  regularly.
- As a result, the snapshot was never updated.
- Even if you did tombstone those files, it could only be updated as
  often as the pill
- And those updates would be sent over the network to people who didn't
  need them

This moves the snapshot out of the pill and refactors Azimuth's
initialization process.  On boot, when app/azimuth starts up, it first
downloads a snapshot from bootstrap.urbit.org and uses that to
initialize its state.  As before, updates after this initial snapshot
come from an Ethereum node directly and are verified locally.

Relevant commands are:

- `-azimuth-snap-state %filename` creates a snapshot file
- `-azimuth-load "url"` downloads and inits from a snapshot, with url
  defaulting to https://bootstrap.urbit.org/mainnet.azimuth-snapshot
- `:azimuth &azimuth-poke-data %load snap-state` takes a snap-state any
  way you have it

Note the snapshot is downloaded from the same place as the pill, so this
doesn't introduce additional trust beyond what was already required.
When remote scry is released, we should consider allowing downloading
the snapshot in that way.
2022-06-30 23:22:50 -07:00
..
app azimuth: fetch snapshot on boot 2022-06-30 23:22:50 -07:00
gen clay: don't require head of foreign desks 2022-05-17 17:06:03 -07:00
lib various: make all files build correctly 2022-05-14 22:49:10 -07:00
mar Merge branch 'master' into next/landscape 2022-06-03 10:48:39 -05:00
sur azimuth: fetch snapshot on boot 2022-06-30 23:22:50 -07:00
sys azimuth: fetch snapshot on boot 2022-06-30 23:22:50 -07:00
ted azimuth: fetch snapshot on boot 2022-06-30 23:22:50 -07:00
tests clay: update tests 2022-05-20 20:03:34 -07:00
.gitattributes gitattributes: export-ignore additions [ci skip] 2020-02-01 17:40:27 +04:00
.ignore Write top-level pier code; hook up Ames and Behn. 2019-07-31 19:34:14 -07:00
desk.bill Merge branch 'master' into naive/roller 2021-10-26 20:46:32 +02:00
LICENSE.txt Pull in latest v0.8.0.rc changes 2019-07-16 15:59:39 -07:00
README.md %home -> %base 2022-03-06 11:55:55 -05:00
sys.kelvin clay: bump kelvin, refactor 2022-04-06 00:18:23 -07:00
TESTING.udon Pull in latest v0.8.0.rc changes 2019-07-16 15:59:39 -07:00

Arvo

A clean-slate operating system.

Usage

To run Arvo, you'll need Urbit. To install Urbit and run Arvo please follow the instructions in the getting started docs. You'll be on the live network in a few minutes.

If you're doing development on Arvo, keep reading.

Documentation

Find Arvo's documentation on urbit.org.

Development

To boot a fake ship from your development files, run urbit with the following arguments:

urbit -F zod -A /path/to/arvo -c fakezod

Mount Arvo's filesystem allows you to update its contents through Unix. To do so, run |mount in dojo. It is most common to |mount /=base=.

To create a custom pill (bootstrapping object) from the files loaded into the base desk, run .my/pill +solid. Your pill will appear in /path/to/fakezod/.urb/put/my.pill.

To boot a fake ship with a custom pill, use the -B flag:

urbit -F zod -A /path/to/arvo -B /path/to.pill -c fakezod

To run all tests in /tests, run -test %/tests in dojo. To run only the tests in /tests/some/path, use -test %/tests/some/path.

Maintainers

Most parts of Arvo have dedicated maintainers.

  • /sys/hoon: @pilfer-pandex (~pilfer-pandex)
  • /sys/zuse: @pilfer-pandex (~pilfer-pandex)
  • /sys/arvo: @joemfb (~master-morzod)
  • /sys/vane/ames: @belisarius222 (~rovnys-ricfer) & @philipcmonk (~wicdev-wisryt)
  • /sys/vane/behn: @belisarius222 (~rovnys-ricfer)
  • /sys/vane/clay: @philipcmonk (~wicdev-wisryt) & @belisarius222 (~rovnys-ricfer)
  • /sys/vane/dill: @fang- (~palfun-foslup)
  • /sys/vane/eyre: @fang- (~palfun-foslup)
  • /sys/vane/gall: @philipcmonk (~wicdev-wisryt)
  • /sys/vane/jael: @fang- (~palfun-foslup) & @philipcmonk (~wicdev-wisryt)
  • /app/acme: @joemfb (~master-morzod)
  • /app/dns: @joemfb (~master-morzod)
  • /app/aqua: @philipcmonk (~wicdev-wisryt)
  • /app/hood: @belisarius222 (~rovnys-ricfer)
  • /lib/hood/drum: @fang- (~palfun-foslup)
  • /lib/hood/kiln: @philipcmonk (~wicdev-wisryt)

Contributing

Contributions of any form are more than welcome! Please take a look at our contributing guidelines for details on our git practices, coding styles, how we manage issues, and so on.

You might also be interested in: