Commit Graph

545 Commits

Author SHA1 Message Date
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
Philip Monk
ac64f44538 clay: update tests 2022-05-20 20:03:34 -07:00
Philip Monk
9b16cf5791 pill: multi-brass 2022-05-19 20:19:31 -07:00
Philip Monk
9c7c776fd8 clay: fix stack while building directories 2022-05-15 02:27:49 -07:00
Philip Monk
e6d61c0236 Merge remote-tracking branch 'origin/next/vere' into philip/tomb 2022-05-14 23:02:37 -07:00
Philip Monk
591bdf458c Merge branch 'next/arvo' into philip/tomb 2022-05-04 00:45:57 -07:00
Philip Monk
ee3951e2df clay: require non-dead files at head of remote 2022-03-25 22:15:53 -07:00
Philip Monk
07d01a0071 Merge branch 'philip/fix-uno' into philip/tomb 2022-03-25 18:11:34 -07:00
Philip Monk
6e641005a0 clay: add upgrade to %11 2022-03-25 18:02:22 -07:00
Philip Monk
0c3eee07b5 Merge remote-tracking branch 'origin/master' into philip/tomb 2022-03-25 12:21:56 -07:00
Jōshin
23c1d1720b
pill: all 2022-03-02 20:37:13 -06:00
Joe Bryan
d3804c01c0 Merge branch 'master' into next/vere
* master: (33 commits)
  groups: updating glob and version
  interface: use single sig in NotificationText
  interface: fix subscription reconnect issues
  landscape: fixing bad glob
  landscape: updating glob and version
  interface: adds `theme-color` meta tag, removes outdated safari web app meta tag
  zuse: add missing assertions
  landscape: cache marks again
  zuse: comment clarifying sk bounds check
  bounds-check against sk=1
  zuse: style cleanup, use +rep/+end
  pill: solid, brass
  interface: refine joining error cases
  group-view: fix errored rollback
  helm: cleanup +poke-rekey to match #5522
  helm: fix |rekey to work with multikey files
  test: schnorr bounds checking
  zuse: boundary assertions for schnorr
  zuse: schnorr test cases
  zuse: schnorr address
  ...
2022-03-01 17:58:48 -05:00
Jōshin
044e9015af
Merge branch 'next/arvo' into jo/khan
Conflicts:
	bin/brass.pill
	bin/solid.pill

Resolved by regenerating pills.
2022-02-13 21:00:10 -06:00
Jōshin
b277fd5e84
pill: solid, brass 2022-02-02 21:06:23 -06:00
Jōshin
4acfaba410
pill: ivory from jo/secp-arvo
arvo from commit:

    822eb6ea08
2022-02-02 20:48:15 -06:00
Jōshin
5acc69da25
pill: solid, brass 2022-01-26 21:50:08 -08:00
fang
b9491bcbb8
Merge branch 'master' into next/arvo 2022-01-13 00:36:07 +01:00
yosoyubik
432d9674f5 jael: don't put conflicting this-su in the subject 2022-01-12 11:01:06 +01:00
yosoyubik
d71074eb58 pill: update solid 2022-01-08 20:12:21 +01:00
Philip Monk
e243d5adf6
landscape,garden: make build
Boot was broken, fixing the hark-note file mark and re-adding the
hark-store library fixed it.

This lets us push a new pill, which is necessary for the fix in #5434 to
actually work.

Fixes #5501
Fixes #5502
2021-12-18 22:54:49 -08:00
yosoyubik
1bda134280 azimuth: update /app/azimuth snapshot 2021-12-15 08:31:26 +01:00
yosoyubik
4724c32d3d pill: load azimuth snapshot file with mime mark 2021-12-14 09:40:34 +01:00
yosoyubik
f6dca03786 pill: restore solid pill 2021-12-10 16:19:59 +01:00
yosoyubik
fb2c078fde pill: load azimuth snapshot as mime in file-ovum 2021-12-09 07:28:57 +01:00
yosoyubik
cce14699c8 azimuth: update log message 2021-12-08 12:52:23 +01:00
yosoyubik
0833ee9ea6 azimuth: only print number of points during init 2021-12-07 16:32:39 +01:00
yosoyubik
81eb6ae247 pill: add azimuth snapshot 2021-12-07 16:13:39 +01:00
yosoyubik
d08ab43f3a lull: skip rift/life printf when booting 2021-12-06 13:47:59 +01:00
Philip Monk
775dd72072
pill: update 2021-11-16 20:20:27 -08:00
Philip Monk
82c41c942c
pill: update 2021-11-16 15:24:06 -08:00
Philip Monk
08ab77893e
azimuth: don't start on fake ships 2021-11-09 22:36:05 -08:00
Philip Monk
8bfb4acc20
pill: set everything to mainnet for consistency 2021-11-09 00:59:40 -08:00
Philip Monk
b29579b799
pill: update 2021-11-08 20:47:27 -08:00
Philip Monk
91b38d4cea
ivory: update preboot validation format
string<->numbers didn't match the json serialization.  This makes
preboot validation succeed.
2021-11-08 20:34:32 -08:00
Philip Monk
d9276cd51c
clay: Add support for representing tombstones
This adds support for tombstoned files to clay.  It does not include any
way to actually tombstone them; that is left for later.

This allows tombstoning at the level of a file.  Precisely, this expands
+blob:clay by adding a %dead case:

    +$  blob                                              ::  fs blob
      $%  [%delta p=lobe q=[p=mark q=lobe] r=page]        ::  delta on q
          [%direct p=lobe q=page]                         ::  immediate
          [%dead p=lobe ~]                                ::  tombstone
      ==                                                  ::

Thus, we maintain the invariant that every lobe corresponds to a blob,
but now a blob may be an explicit tombstone.

Details:
- This has not been tested at all, except that it compiles and boots.
- This does not have a state adapter from master.  The only state change
  is the definition of +cach.
- Additionally, out-of-date ships may unexpectedly receive a %dead blob
  from a foreign clay which would interfere with their ability to download
  that desk.  No code changes necessary, but sponsors should avoid
  tombstoning files in %base for a while so their children can get the
  update.
- A merge will only fail if the tombstoned file conflicts with another
  change.  Note that as written, merging from a past desk *can* bring a
  tombstoned file to the head of a desk.  Possibly this shouldn't be
  allowed.

This also includes a couple refactors that were made possible by ford
fusion (since everything is synchronous now) but never got done.  In
both cases we get to remove a monad, which simplifies the code
considerably.

- refactor +merge's error handling to use !!/mule instead of threading
  through errors
- refactor all +read-* functions and related parts of +try-fill-sub to
  eagerly convert lobes to cages.

We also add support reading %a/b/c/e/f/r/x from past and foreign desks,
when possible.  Apologies that all of these are in one commit, it was
all a single chunk of work.

This is a draft until we have a way to tombstone.  I suspect we'll want
to have a mechanism of keeping track of gc roots and trace to remove,
but this PR doesn't suggest any particular strategy.
2021-11-07 22:17:02 -08:00
fang
0ec3d5111d
Merge branch 'master' into naive/roller 2021-10-26 20:46:32 +02:00
Liam Fitzgerald
ff7494f3fa various: update pills, globs, docket 2021-10-25 22:16:53 -05:00
Joe Bryan
10b996e323 pill: all 2021-10-05 12:54:39 -04:00
Joe Bryan
9a1b9b4450 Merge branch 'master' into release/next-vere
* master: (595 commits)
  grid: updating glob
  landscape: updating glob
  graph-store: clean up merge artefact
  interface: reduce %all-stats correctly
  docket: correctly en-vase a docket definition
  kiln: don't +mean the tang noun alongside the tang
  hood: scry for list of desks with empty desk name
  hood: remove needless weld
  hood: report %kids desk hash in +report-vats
  landscape: fix joining indicator in statusbar
  interface: reduce %saw-place correctly
  app-prefs: fixing logic around enabled
  pull-hook: add nice flag to kick poke
  graph-pull-hook: renegotiate subscriptions
  graph-store: Handle missing update-logs gracefully in scries
  arvo: update jamfiles
  landscape: correctly freeze graph-update-2
  jael: on rekey, update life if moon
  tmp/ jamfiles
  btc: updating glob
  ...
2021-10-05 11:33:08 -04:00
Fang
cc1189eeb7
pill: generate brass multi-desk pill 2021-09-29 17:19:24 +04:00
Liam Fitzgerald
ebe5fe68ef various: update pills, jams, docket 2021-09-29 22:53:18 +10:00
Liam Fitzgerald
ff2e1f1c6f arvo: update jamfiles, pills, dockets 2021-09-29 16:09:22 +10:00
Ted Blackman
8fef031d12 bin/multi.pill 2021-09-28 16:20:41 -04:00
Fang
7427191a21
dist: pills and jams 2021-09-28 21:37:26 +04:00
Ted Blackman
40e07253f7 bin/solid.pill 2021-09-27 20:43:18 -04:00
Ted Blackman
9c3f3e8b1f bin/multi.pill 2021-09-27 20:28:29 -04:00
Ted Blackman
3ed2f26f59 bin/multi.pill 2021-09-27 14:54:52 -04:00
Ted Blackman
9084ac16fd bin/multi.pill 2021-09-27 14:43:10 -04:00
Fang
deade98d02
dist: update pills and jams 2021-09-27 13:52:22 +04:00
Ted Blackman
733f7c5bcc bin/multi.pill 2021-09-26 22:26:28 -04:00