Commit Graph

273 Commits

Author SHA1 Message Date
Philip Monk
d578159791
ames: fix assertion bug and add debug info
If we receive the naxplanation before the nack, the assertion in the gte
direction fails.  The intent of the assertion is to make sure top of the
live queue never falls behind current.state, so it was simply in the
wrong direction.
2020-01-14 08:34:12 -08:00
Fang
ae8a57ca25
gall: (list path) in %fact and %kick
Instead of providing a (unit path), allows for (list path), which better
supports the "update to path and subpath cases".

For example, if /things wants updates about everything, and
/things/specific wants updates about the specific thing, they'll both
need to receive a %fact when the specific thing changes.
Previously, these would have been two separate moves. Now, gall handles
the multi-targeting for you.
2019-12-23 13:37:32 +01:00
Fang
ea7c1db61c
various: use =/ in place of =+ ^-
Also faceless =; where appropriate.
2019-12-21 14:29:14 -03:30
Fang
21ac0e513b
hoon: parse =; without face
Allows for =;([a=@ b=@] ...) and similar constructions.

Also affects =/ and =^.
2019-12-21 14:20:11 -03:30
Jared Tobin
103e375417
Merge branch 'ford-safe' (#2117)
* origin/ford-safe:
  ford: clear build results on +load

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-20 13:22:23 -03:30
Jared Tobin
ee0de1a657
Merge branch 'm/clay-u' (#2119)
* origin/m/clay-u:
  clay: implement %u care

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-19 14:09:52 -03:30
Jared Tobin
eee651042c
Merge branch 'm/eth-sending' (#2094)
* origin/m/eth-sending:
  eth-sender: do proper nonce reading
  zuse: implement eth rlp decoding
  zuse: correctly encode leading zeroes in rlp data
  zuse: lightly restructure encode:rlp:ethereum
  static gall: update send-txs
  ethio: implement +request-batch-rpc-loose

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-19 11:20:06 -03:30
Fang
3808f02287
clay: implement %u care
Previously, it would always produce ~, regardless of the path asked
about.

Now, it produces a loobean, based on whether or not a file exists at the
specified path.
2019-12-18 21:02:38 +01:00
Philip Monk
1a7658bd91
ph: fix tests by spamming blocks regularly 2019-12-18 11:53:36 -03:30
Philip Monk
de2d0f3014
gaze: reflect changes to eth-watcher 2019-12-18 11:38:56 -03:30
Philip Monk
3d30b3b73c
jael: only advance lifes
This matches the semantics of rifts and makes it more forgiving of
misordered updates.
2019-12-18 11:31:14 -03:30
Philip Monk
16d98e5eda
jael: stop ship-to-ship 2019-12-18 11:19:41 -03:30
Philip Monk
18c3e7253b
jael: add "eager" mode to avoid hitting nodes as much 2019-12-18 10:58:00 -03:30
Ted Blackman
9fb37543ec ford: clear build results on +load 2019-12-18 00:25:27 -05:00
Fang
1647d760d1
zuse: implement eth rlp decoding
Also updates existing tests to check both en- and decoding.
2019-12-14 21:39:54 +01:00
Elliot Glaysher
44f6a90a4c
hoon: fix typo in +put:in
This fixes +put:in so that it works without the correct jet.  There's a
mismatch where the hoon code is wrong and the jet is correct, so that
when we try to run this on alternate interpreters which may not have the
+in jets, things won't work.
2019-12-13 21:00:21 +08:00
Jared Tobin
aff97bf150
Merge branch 'm/eth-apps' (#2084)
* origin/m/eth-apps:
  claz: clean up head of app file
  static gall: update claz
  ethio: add +get-next-nonce
  zuse: update %eth-get-transaction-count
  zuse: include all relevant azimuth addresses
  ethio: implement +batch-read-contract-strict
  ethio: fail request-rpc more properly
  static gall: update gaze

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-12 16:27:04 +08:00
Ted Blackman
d77fb0f685
ames: add %sift to trace by ship 2019-12-12 15:55:32 +08:00
Fang
a16fbd20ae
zuse: update %eth-get-transaction-count
It apparently now requires a second argument indicating the block to get
the result at.
2019-12-11 17:32:33 +01:00
Philip Monk
68279d91e4
gall: remove message type from wire
%leave over the network didn't work because we included the message type
in the wire from gall, so the duct for the initial %watch and the %leave
were different.  We need to know the message type so we can route the
acknowledgment as %poke-ack, %watch-ack, or no-op.

This moves this piece of information to a piece of state, where we queue
up the message types per [duct wire].  Ames guarantees that
acknowledgments will come in order.

This also includes an easy state adapter.  The more interesting part of
the upgrade is that we likely have outstanding subscriptions with the
old wire format.  The disadvantage of storing information in wires is
that it can't be upgraded in +load.  So, here we listen for updates on
the old wire format, and when we get them we kill the old subscription,
so that it will be recreated with the new wire format.

As an aside, this is a good example of what we mean when we say
subscriptions may be killed at any time, so apps must handle this case.

Finally, this fixes the "attributing" ship to ~zod for agent requests.
This information was ignored for agent requests, but including it causes
spurious duct mismatches.
2019-12-10 19:32:26 +08:00
Ted Blackman
bee0b5803a
ames: don't crash on missing queued larval event 2019-12-05 17:04:24 +08:00
Jared Tobin
f23bbd1cec
Merge branch 'pkova/master' (#1991)
* pkova/master:
  zuse: implement json number to @rd parsing

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-05 16:38:57 +08:00
Philip Monk
5406f06092
ames: don't overwrite lane if already direct
This is why basically all packets are going through the galaxies right
now.  Most of the time, the flow right now is:

* talking to ~dopzod but don't know where it is, so ask ~zod to forward,
  which it does

* ~dopzod responds both directly (on the origin lane) and through ~zod

* (if NAT, the direct response doesn't get back, but the one through
  ~zod does. Then you respond directly to ~dopzod because their lane
  piggybacked on the response. ~dopzod responds both directly and
  through ~zod, and the story picks up the same as if you weren't behind a
  NAT)

* now you have a direct lane to ~dopzod, so all is well.

* now the duplicate response from ~dopzod through ~zod comes in (takes a
  little longer because it's bouncing off ~zod), resetting your lane to
  "provisional"

* since your lane is provisional, you send your next packet both
  directly and through ~zod

* GOTO 2

This change says "if I already have a direct lane, don't overwrite it
with a provisional one". This way, the only way the direct lane can be
overwritten is if they stop responding on it (cleared on "not
responding; still trying").

I also added |- to +send-blob to make |ames-verb %rot less confusing.
2019-12-05 16:05:06 +08:00
Jared Tobin
73cffdb28f
(re)release: v0.10.0
Updates brass pill.
2019-12-05 02:25:00 +08:00
Ted Blackman
b3f757d88b
ames: send larval crashes to dill 2019-12-05 02:23:13 +08:00
Ted Blackman
4c9cc1542a
ames: dequeue failed larval timer 2019-12-05 02:23:13 +08:00
Ted Blackman
c20f2391e1
ames: print and retry larval crashes 2019-12-05 02:22:27 +08:00
Jared Tobin
d310cb68bd
release: v0.10.0.rc-1
* Remove testnet configuration from %zuse
* Bump URBIT_VERSION
* Update Landscape builds
* Update all pills
2019-12-04 19:41:43 +08:00
Philip Monk
ba5e7d9090
dojo: set prompt on watch 2019-12-03 17:18:09 -08:00
Philip Monk
38197fc79d
gen: add comments on new generators 2019-12-03 16:41:29 -08:00
Philip Monk
17db094d61
publish: set permissions on %serve 2019-12-02 22:29:12 -08:00
Philip Monk
3b9bcf64b0
arvo: remove unneeded top-level mock 2019-12-02 20:52:59 -08:00
Philip Monk
ef29349ec9
pill 2019-12-02 20:28:07 -08:00
Philip Monk
6d648fcba6
ping: rewrite to handle sponsor breaches/changes
The old version of ping hung when your sponsor breached while you had an
outstanding poke.  I believe it would do the same if your sponsor
changed and the old sponsor didn't respond to you.

This explicitly subscribes to Jael for updates to our sponsorship tree,
and kicks the pings of any ships that change rift and any changed
sponsors.
2019-12-02 20:09:36 -08:00
Philip Monk
93d3edbf73
pill 2019-12-02 20:09:36 -08:00
Philip Monk
19c5ad4c9b
Merge remote-tracking branch 'origin/jam-cue-rock' into philip/merg 2019-12-02 13:57:57 -08:00
Philip Monk
096273cf4a
gall: add state upgrade for %pack 2019-12-02 03:20:34 -08:00
Philip Monk
0431c3c073
Merge remote-tracking branch 'origin/jam-cue-rock' into rc 2019-12-02 02:08:37 -08:00
Philip Monk
64e8318657
hoon: zpgl -> zpld for consistency 2019-12-02 01:36:00 -08:00
Philip Monk
e3005eaffa
ames: clear out-of-order messages from packet queue 2019-12-02 00:41:50 -08:00
Philip Monk
aaf7b3b42e
ames: don't crash in +on-take-wake 2019-12-01 16:00:32 -08:00
Philip Monk
7149ceacc3
pill 2019-12-01 00:38:04 -08:00
Philip Monk
689b829a1d
Merge remote-tracking branch 'origin/master' into rc 2019-11-30 21:54:36 -08:00
Philip Monk
0eaad536a0
eth-watcher: keep timers going 2019-11-30 19:38:43 -08:00
Philip Monk
f30daf5af2
azimuth-tracker: send new-style eth-watcher poke 2019-11-30 17:39:31 -08:00
Philip Monk
2926ad8040
pill 2019-11-30 16:28:03 -08:00
Philip Monk
eee435f9f4
ames: ping all ancestors 2019-11-30 14:57:35 -08:00
pkova
133cbbb6ae zuse: implement json number to @rd parsing 2019-11-28 13:11:44 +02:00
Ted Blackman
793cb81995 update solid pill 2019-11-28 00:21:46 -05:00
Philip Monk
138cbb5d2e
ames: clean up printfs 2019-11-27 16:58:26 -08:00