Commit Graph

507 Commits

Author SHA1 Message Date
Philip Monk
da15339c3b Merge remote-tracking branch 'origin/lf/agent-clay-fe' into philip/agent-clay 2022-11-01 22:08:56 -07:00
Philip Monk
301158c40a clay: use single-weft wafts when possible 2022-10-23 14:52:32 -07:00
Philip Monk
efa78b5fa7 pill: update 2022-08-19 15:54:26 -08:00
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
9c7c776fd8 clay: fix stack while building directories 2022-05-15 02:27:49 -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
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
5acc69da25
pill: solid, brass 2022-01-26 21:50:08 -08: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
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
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
Joe Bryan
10b996e323 pill: all 2021-10-05 12:54:39 -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
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
Fang
deade98d02
dist: update pills and jams 2021-09-27 13:52:22 +04:00
Ted Blackman
cac8fd1226 bin/solid.pill 2021-09-26 17:18:47 -04:00
Fang
c9f8e56ecc
pill: update 2021-09-26 22:06:41 +04:00
Fang
4ed2a5914b
eyre: bind most specific endpoint first
This sticks to the old behavior, which was briefly lost in recent
changes.
2021-09-25 17:44:31 +04:00
Fang
369a6b7a47
eyre: allow overwriting existing bindings
Previously, if trying to bind to an endpoint that was already bound to,
eyre would reject it. This doesn't play very nicely in a softdist world
where uninstalled apps might not get a chance to clean up, and apps
might re-bind simply for being re-installed.

Here we change eyre to overwrite an existing binding if it conflicts
with the new one to be added.
2021-09-25 00:54:24 +04:00
Fang
ce09681b0a
clay: avoid migrating during boot
We set the "have we migrated yet" flag to true during boot, because
we're starting out in a post-migration world.

Also fixes a state version number.
2021-09-24 20:55:28 +04:00
Liam Fitzgerald
1ac0465da7 gall: ignore reload for dead agents
Fixes a bug where even if an agent was dead, if its source was modified,
then gall would still attempt a scry for its cage.
2021-09-13 08:43:57 +10:00
Ted Blackman
5f4c02c6d2 bin/solid.pill 2021-08-27 18:38:20 +03:00
Ted Blackman
453c2900da bin/solid.pill 2021-08-27 17:39:20 +03:00
Liam Fitzgerald
845abffcc1 pill: update solid 2021-08-23 13:36:17 +10:00
Liam Fitzgerald
f8455ad5b5 pill: update solid 2021-08-23 12:08:41 +10:00
janeway
fa894b9690 glob: update to 0v758lj.uf0s5.0nh3m.gunn6.942gj 2021-08-19 15:25:15 -07:00
janeway
6ab7f53fff glob: update to 0v4.e52ik.udm4j.6aus5.02b25.vomaj 2021-08-18 18:12:52 -07:00