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.
* jb/next:
vere: disable printfs on failed requests to $version/next
vere: create $pier/.bin/pace automatically
build: factor out reusable workflow, call on push and tag creation
vere: trim trailing whitespace from pace file
build: use gh action artifact to propagate version string
build: fix version path for windows pre-release
build: fix bash conditional in pre-release upload check
build: run on appropriate tags
build: cut pre-releases on appropriate tags
* next/arvo: (435 commits)
vere: backs out overly zealous path canonicalization assertions
clay: update tests
vere: bump version to 1.9-rc3
vere: bump version to 1.9-rc1
clay: add logging commands
ames: fix comet communication with breached ship
pill: multi-brass
clay: don't add lobe to wire to avoid flow leak
ames: handle +call moves if re-evolving from larva
clay: add tomb scry
clay: make trim clear ford cache
clay: progress download when receiving tombstone
clay: fetch entire latest foreign commit
clay: don't require head of foreign desks
clay: fixes
clay: tweaks from walkthrough
ames: indent
ames: start drainage timer if regressed from adult
clay: re-export page to not break apps
clay: fix stack while building directories
...
* next/vere:
urcrypt: correct parameter ordering in urcrypt_ed_veri()
u3: comment use of X macro in interpreter
u3: unify interpreter opcode information using X macro