Commit Graph

6062 Commits

Author SHA1 Message Date
Jōshin
1ef958ea25
khan: use +en-beam / +de-beam, wide form 2022-03-02 15:07:38 -06:00
Jōshin
02d796cddb
arvo: remove redundant * 2022-03-02 15:07:10 -06:00
Jōshin
e4b6fe6ad3
test: 1162 2022-03-02 13:25:10 -06:00
Jōshin
91d390d529
khan: update docs 2022-03-02 13:23:06 -06:00
Jōshin
340f4d5b6c
khan: %fard/%arow use $cage, not $vase
Threads should eventually take and produce $cage instead of $vase. Since
%khan is likely to be used by third parties, we write to the eventual
intended API. We ignore the mark on the input $cage (it is safe to
always specify %noun), and we always use %noun as the output mark.

%fyrd now makes more sense. It was previously discarding the type of the
output %arow and re-encoding the raw noun as a vase of the output mark;
it is now performing mark conversion from the mark of the output $cage
to the originally requested output mark.
2022-03-02 13:07:52 -06:00
Yaseen
a57cb822a3
Merge branch 'urbit:master' into story 2022-03-02 12:03:44 -05:00
lukechampine
53a0c87cdb ames: add sendkeys-packet 2022-03-02 00:56:57 -05:00
lukechampine
df6318acd0 ames: fix comet self-attestation handling 2022-03-02 00:52:48 -05:00
lukechampine
1044d42a15 ames: don't enqueue blobs sent to unknown comets 2022-03-02 00:46:18 -05:00
Jōshin
f5fb214939
khan: initial state version is %0 2022-03-01 23:38:55 -06:00
Jōshin
6ce6e4f504
khan: structural slap, not general slam 2022-03-01 19:34:56 -06:00
Jōshin
2e9b4f5a94
khan: better wire production
runs afoul of a likely hoon bug and/or use case for dependent hoon.
2022-03-01 19:33:54 -06:00
DaneBettis
ad2e6975af changes in response to code review 2022-03-01 21:27:33 +00:00
DaneBettis
ee46c6a0dd vere: add %nara %hela hints, add a hoon test module for hints
nara: swedish for near, provides a trace from the start of the nearest virtualization
      to the statement wrapped by the nara hint.

hela: swedish for whole, provides a trace from the start of the event
      to the statement wrapped by the hela hint.

The eventual goal is to present these traces in a way that is most salient & useful to developers
and in a way that is aesthetically pleasing as the bout hint is useful and nice looking.

For this pull request the goal is to provide the actual functionality in code that we can feel
safe and comfortable adding to the master branch. To this end, I've added a trivial set of tests for
nara and hela in pkg/arvo/tests/run/hints.hoon - they only prove that invoking these hints will not
crash the runtime, but I'm open to ideas for how I can test these hints further.
2022-03-01 21:24:11 +00:00
Yaseen
591c19b9a9 story: rename generators 2022-02-25 18:27:54 -05:00
Yaseen
70afcbd642 clay: fix bug in fuse
Co-authored-by: Philip Monk <phil@pcmonk.me>
2022-02-25 16:34:44 -05:00
Yaseen
c1a8d527fa story: fix output formatting in +story-log 2022-02-25 16:28:17 -05:00
Jōshin
a9442040be
khan: alignment 2022-02-25 11:16:47 -08:00
Jōshin
224a363780
test: fix failure introduced by random tids 2022-02-25 11:08:09 -08:00
Liam Fitzgerald
b4da246f01 strandio: add +keen gate 2022-02-24 12:03:07 -06:00
fang
027d80b90c
Merge branch 'lf/content-dist-rc' into m/scry-vane 2022-02-23 16:18:17 -06:00
Liam Fitzgerald
f1c24c07dd ames: refactor to remove unused state 2022-02-23 16:00:56 -06:00
Liam Fitzgerald
c16aaae201 ames: correct behaviour for %yawn 2022-02-23 16:00:56 -06:00
Liam Fitzgerald
479e060e32 ames: add +load for remote scry 2022-02-23 16:00:56 -06:00
Liam Fitzgerald
5baa1b8318 ames: add fast retransmit 2022-02-23 16:00:55 -06:00
Liam Fitzgerald
4be4e9a7a0 ames: fix keen ducts 2022-02-23 16:00:55 -06:00
fang
aaa759268e clay: clean up REVIEW comments 2022-02-23 16:00:55 -06:00
fang
cdff1d91fa clay: scry files at aeons, not timestamps
Turns out we can simply find the corresponding aeon in the nako.
2022-02-23 16:00:55 -06:00
fang
2adc52e03a clay: retry with ames on empty scry response 2022-02-23 16:00:55 -06:00
Liam Fitzgerald
5f5092168f ames: fix sig + data catenation 2022-02-23 16:00:55 -06:00
Liam Fitzgerald
22f3e49823 ames: add |yawn, fix duct wrangling 2022-02-23 16:00:31 -06:00
fang
6b85022a61
clay: properly cancel scry timers and/or requests
Use the correct wires when cancelling the scry request and/or its
timers.

Note that we may produce more %rests and %yawns than strictly necessary,
but these no-op cleanly in those cases.
2022-02-23 15:41:19 -06:00
fang
d8dca44bd2
clay: refactor request wire construction 2022-02-23 15:40:16 -06:00
Joe Bryan
ff3bb495d8 hoon: updates %mcgl with an hygienic expansion 2022-02-22 20:39:30 -05:00
Yaseen
33aa0c8fa7 story: generators: fix case check 2022-02-22 18:33:38 -05:00
Yaseen
5f421d577a story: fix scry path in |story-set 2022-02-22 18:11:55 -05:00
Yaseen
38a2e9d74a story: generators: add desk existence everywhere 2022-02-21 22:13:15 -05:00
Yaseen
4eb7e623cd story: generators: fix case scry 2022-02-21 22:10:22 -05:00
Jōshin
d771a4b9ef
khan: randomize tids
tid was accidentally getting set to the name of the output mark. As we
don't currently support cancelling threads, there is no reason to
maintain the originally-intended correspondence between tid and conn
request-id.

Take the opportunity to clean up indentation somewhat.
2022-02-19 02:18:49 -08:00
Yaseen
a149dc6c40 story: generators: add check for invalid case 2022-02-18 22:30:24 -05:00
~nallux-dozryl
ab35dd4028
Merge branch 'urbit:master' into master 2022-02-19 09:04:02 +08:00
Yaseen
c02f59818e story: fix generator bugs 2022-02-18 18:51:37 -05:00
Yaseen
05784fcee3 story: check for storyfile existence and use case from beak where appl. 2022-02-18 18:20:17 -05:00
Yaseen
4b04da5a9a story: make |story-{set,remove} use $cash instead of $case 2022-02-18 17:49:17 -05:00
Yaseen
3d006d60ad clay: add scry for case existence check 2022-02-18 17:43:38 -05:00
Yaseen
9d85401832 story: add generator help text 2022-02-18 17:40:55 -05:00
fang
2969b1aae1
clay: clean up REVIEW comments 2022-02-17 21:17:45 +01:00
fang
02dec3ef5b
clay: scry files at aeons, not timestamps
Turns out we can simply find the corresponding aeon in the nako.
2022-02-17 21:14:52 +01:00
fang
98c6c77ebb
Merge branch 'next/arvo' 2022-02-17 20:32:26 +01:00
fang
b91e3f425e
clay: retry with ames on empty scry response 2022-02-17 20:10:38 +01:00
Liam Fitzgerald
ecb2de63b0 Merge remote-tracking branch 'origin/m/scry-vane' into lf/content-dist-rc 2022-02-17 12:46:09 -06:00
fang
7c0f05f8c3
clay: hook up /back-index %wake
And make sure we handle the timer error case safely.
2022-02-17 16:08:48 +01:00
fang
d6b5633c99
clay: allow for lobe-only need
This can occur after upgrade, or when receiving a %delta blob. We do not
know the path or commit timestamp of a file that resolves to the blob,
so we simply fall back to old ames-style blob-by-lobe fetching.
2022-02-17 16:02:57 +01:00
fang
3473033492
clay: scry when doing file requests outside %sing
In +work, we simply want to fetch file data, regardless of what the
overarching request is. (In fact, %sing would likely never hit this path
anyway.)

In order to be able to make the scry request, we track the timestamp of
the commit that contains a blob we're missing, and scry for that %da
revision.

There's two edge cases where we cannot immediately know the timestamp
that are currently assumed broken. Fix soon.
2022-02-17 15:44:16 +01:00
fang
dd4a115e51
clay: avoid %v scries, cancel scry timer correctly
%v requests are already handled specially for the ames case. We should
continue to respect that, only doing those kinds of requests over ames.

Also cancels the scry timer after receiving a response, instead of not
doing that.
2022-02-17 15:40:44 +01:00
Liam Fitzgerald
6bd6029f57 ames: use finger trees for packet storage 2022-02-16 15:35:59 -06:00
Jōshin
470ae80d4b
khan: cleanup 2022-02-15 22:32:52 -08:00
Jōshin
0e185b66ed
test: fix 2022-02-15 22:32:43 -08:00
Liam Fitzgerald
6688b9e6ad deq: add finger tree datastructure 2022-02-15 16:56:29 -06:00
fang
fb4b3c7196
clay: update straggler state version number 2022-02-15 22:35:53 +01:00
fang
e036c96b61
ted: add -keen thread for simple remote scries
Produces a (unit (cask)), as per %tune.
2022-02-15 20:36:35 +01:00
Liam Fitzgerald
a36dc3aaff ames: per-lane congestion control 2022-02-15 08:47:38 -06:00
fang
0375e0a53f
clay: remove dist-upgraded flag
Ancient version upgraders beware! If you're coming from a home-based
arvo, you must first upgrade to the version prior to this, or else
you'll be in trouble!
2022-02-15 01:02:19 +01:00
fang
c02274dfdd
clay: sync files using remote scry
When clay wants to download blobs from a foreign ship, it attempts doing
this using the new remote scry protocol.

If it doesn't receive a response within ~m1, it falls back to using the
old ames-based syncing instead. We remember this "prefer ames" state for
the specific ship for an hour, after which we'll begin trying the scry
flow again.

Compiles, but untested. Some TODOs and REVIEWs remaining herein.

We intentionally leave the dist-upgraded flag in state to avoid
cluttering the diff here. The next commit will remove it.
2022-02-15 00:51:54 +01:00
Jōshin
6aa72069e3
arvo: introduces $crag
Also strips out `$` from khan top-level comment.

There are arguments for keeping $crag in lull, and on the other side for
moving $cast to arvo. This seemed like the most reasonable approach.
2022-02-14 12:46:31 -06:00
Ted Blackman
b2051fcc2b fine: WIP second list for performance 2022-02-14 10:34:26 -06:00
Jōshin
6d275fe9f3
khan: move =/ down 2022-02-14 09:09:55 -06:00
Jōshin
6c443191a7
khan: name $cast type 2022-02-13 21:13:48 -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
e4f5438e88
test: tlv 2022-02-13 20:37:34 -06:00
Jōshin
22ef135323
test: missing mark cases, further cleanup 2022-02-13 20:30:36 -06:00
Jōshin
a1621ed2d4
test: cleanup 2022-02-13 19:58:36 -06:00
Jōshin
76911c6784
test: cleanup 2022-02-13 19:56:29 -06:00
Jōshin
27b6b4f706
test: %fyrd fail case 2022-02-13 13:09:39 -08:00
Jōshin
286c909283
test: refactor, strip out inner %fard call 2022-02-13 12:54:21 -08:00
Jōshin
18e2d751a5
test: remaining %fard failures 2022-02-13 12:51:43 -08:00
Jōshin
5750f5f0f6
test: %khan full run, %fyrd 2022-02-13 12:02:13 -08:00
Jōshin
1d487a758b
test: full run, happy path 2022-02-13 07:33:03 -08:00
yosoyubik
1dd5fca11c roller: bug fix in looking for sending diff 2022-02-12 14:36:40 +01:00
yosoyubik
72794870c8 roller: include signing address in sending txs 2022-02-12 14:02:50 +01:00
Jōshin
d7608019f2
khan: cleanup, namespace 2022-02-11 22:18:15 -08:00
Jōshin
c0423adea6
khan: parameterized types, nested implementation
%fyrd is now implemented in terms of %fard, and likewise %avow in terms
of %arow. State is tracked via wire rather than in a global map.

Unit tests adjusted to match.
2022-02-11 21:58:09 -08:00
Liam Fitzgerald
e97d99275b ames: congestion control for remote scry 2022-02-11 19:30:40 -06:00
Yaseen
61ca368f28 story: |story-set: better error message on missing desk 2022-02-11 13:08:16 -05:00
yosoyubik
403c8af519 roller: check for existence in resend nonce 2022-02-11 15:46:13 +01:00
yosoyubik
5c9fc52f47 roller: keep force flag in sending transactions 2022-02-11 14:28:27 +01:00
yosoyubik
db660b6167 roller-rpc: make force field optional 2022-02-10 20:44:50 +01:00
yosoyubik
5fd991161c roller: add support for forced transactions 2022-02-10 20:23:27 +01:00
Liam Fitzgerald
67105a854b lull: move ordered-map from zuse 2022-02-10 11:52:37 -06:00
Ted Blackman
a86664076d lull: fine congestion control data structures 2022-02-10 11:39:31 -06:00
Jōshin
ca0a861c5e
zuse: add missing assertions 2022-02-09 14:14:12 -06:00
Liam Fitzgerald
b813580b93 zuse: add ++ns:dejs:format
Adds a signed integer JSON parser, i.e. a gate of type $-(json @s)
2022-02-09 13:16:24 -06:00
Jōshin
5ff5082a5d
khan: docs, lift arg vase into (unit) 2022-02-08 12:03:00 -06:00
Jōshin
34fd7f5adf
test: wip full-run test 2022-02-08 08:44:55 -06:00
Jōshin
776604bf74
test: rewrite khan start-args unit test 2022-02-07 17:51:05 -06:00
Jōshin
8123255a62
khan: add %fard/%arow for in-arvo threads
These take and produce vases, and assign random tids (rather than
deducing them from the input duct.)

Since %fard does not require mark conversion, we make the mark/beak on
$thread-state optional (and use this to decide whether to send %avow or
%arow.) Provide a state adapter since it's possible that people have
been experimenting with this vane.

This makes the negative case of %avow/%arow kind of clunky, since there
is no content difference, but the following does not seem possible
within the Hoon type system:

    =/  gif
      ?~  p.tad
      %arow  %avow
    [hen %give gif %| p.cag tang]~
2022-02-07 17:51:05 -06:00
Yaseen
8814f31879 story: shorten recur statement in +story-log 2022-02-05 22:56:27 -05:00
Yaseen
fc5c7d53ea story: make desk an optional param in story-list 2022-02-05 22:50:10 -05:00
Yaseen
4a921ad68b story: fix |story-remove and allow it to remove a specific prose 2022-02-05 22:50:10 -05:00
Yaseen
ce0fa85e18 story: generators improvements
- use desk parameter instead of %base everywhere
- formatting clean up
- make |story-remove take a case instead of an aeon
- make desk param optional for story-set and story-log
2022-02-05 22:50:10 -05:00
Yaseen
94d55f1e33 story: misc changes 2022-02-04 12:49:10 -05:00
fang
a5b16b1673
fine: consolidate duplicate logic
Further merge cleanup.
2022-02-04 13:36:32 +01:00
fang
47feec3ecc
Merge branch 'lf/ames-notifs' into m/scry-vane 2022-02-03 22:00:24 +01:00
Jōshin
64fcd685af
zuse: comment clarifying sk bounds check 2022-02-03 13:52:09 -06:00
Jōshin
4cef7dc38b
bounds-check against sk=1
+sign:schnorr crashes on `=(0 sk)`, so the bounds checking code is not
exercised for sk=0. It also crashes on `(gte sk n.domain.c)`, which is
redundant with the size check on sk, so we remove that.
2022-02-03 13:21:21 -06:00
Jōshin
f07f759253
zuse: style cleanup, use +rep/+end 2022-02-03 12:54:27 -06:00
fang
a8574df401
ames: retrieve pk from old crypto core on load
Since we cannot scry the key out of jael during load, and the
alternative is defering this logic through the larval core in some way,
we simply include the type for the old acru interface, letting us reuse
the old core to initialize the new one.
2022-02-03 13:49:38 +01:00
Jōshin
822eb6ea08
Merge branch 'next/arvo' into jo/secp-arvo 2022-02-02 20:34:11 -06:00
fang
cb706ee8ae
dbug: update for ames' new alien-agenda 2022-02-03 00:45:16 +01:00
fang
39959942d2
ames: use +safe:as:crub instead of +veri:ed
+safe now exists to wrap that, so we should use it instead of deriving
the relevant key and calling +veri:ed directly.
2022-02-02 22:16:16 +01:00
fang
5776226a6c
lull: add acru arms for simply signing & authing
Instead of exporting keys so that caller can do this themselves, we
expose arms for signing and authenticating that produce and operate on
just the signature, without mangling it into the message.
2022-02-02 21:52:48 +01:00
fang
83e315cccd
lull: add arms to ex:acru for separate keys
We may want _just_ the encryption key, or _just_ the signing key.
2022-02-02 20:10:30 +01:00
fang
1302c5fa0b
fine: fix broken +full:keys callsite
Straggler from last commit about data type consistency.
2022-02-02 19:55:20 +01:00
Liam Fitzgerald
9dad96332b ames: remove logging 2022-02-01 20:50:02 -06:00
Liam Fitzgerald
6ee2e1626f ames: unify path format 2022-02-01 20:48:04 -06:00
Liam Fitzgerald
1eaad36d4d ames: working notifications 2022-02-01 20:30:11 -06:00
Liam Fitzgerald
7205625abf wip 2022-02-01 13:25:28 -06:00
fang
c72c187edd
fine: use $@(~ (cask)) consistently
It's what ends up in the packet, probably better than passing units and
converting them all over.
2022-02-01 12:02:47 +01:00
fang
4bea69bc7d
fine: verify life & signatures of packets & msgs
In addition to doing signing & verification consistently with each
other, we now handle the "no data" case sanely.

Still uses the wrong keys though.
2022-02-01 11:55:04 +01:00
Jōshin
4c22e2ceaa
spider: blank lines 2022-01-31 15:47:14 -06:00
Yaseen
b7e0b28220
Merge branch 'urbit:master' into story 2022-01-30 16:03:48 -05:00
Yaseen
75d6882b51 story: fix to-text arms 2022-01-30 15:59:58 -05:00
Yaseen
8787c43c83 story: cleanup 2022-01-30 15:58:35 -05:00
fang
b42dc477c5
fine: move into per-event core
This is an obviously more ergonomic factoring.
2022-01-28 23:54:01 +01:00
fang
fb72b7df7d
fine: set receiver life in request packet 2022-01-28 23:11:27 +01:00
fang
709dd75d74
fine: track pending requests for unknown peers 2022-01-28 23:09:50 +01:00
drbeefsupreme
f67962b803
helm: cleanup +poke-rekey to match #5522 2022-01-28 12:23:36 -05:00
Jōshin
ccf9110f7f
test: khan test cleanup
;;(vase ...) does a nest-check of the type of the kernel. This is
undesirable, so we instead run everything through +slum and cast the
result to +tang.
2022-01-28 09:05:37 -08:00
fang
769d10fdd4
fine: use keys from ames state instead of jael 2022-01-28 14:30:59 +01:00
Jōshin
21ea32e8ad
khan: +bear allows a full +beak 2022-01-27 22:28:30 -08:00
Jōshin
72981203c8
khan: PR feedback, wip tests 2022-01-27 22:20:31 -08:00
Hunter Miller
88e956df01 Merge branch 'next/landscape' 2022-01-27 10:24:04 -06:00
fang
4c045a9c4f
ames, fine: minimal compilable unification 2022-01-27 14:32:49 +01:00
Jōshin
7f6868a06e
khan: strip inner faces from +bear 2022-01-26 21:50:08 -08:00
Jōshin
05a11d57b3
khan: cleanup
- only store metadata in the persistent map. just enough to support
  (eventual) thread cancellation and output mark lookup.

- try to delete thread state at other failure points not covered by
  %kick.

- reflect back the passed output mark rather than form.dais. not sure
  about this one yet.
2022-01-26 20:09:36 -08:00
Jōshin
aba5c0303d
khan: del in %kick 2022-01-26 17:45:25 -08:00
Jōshin
1281e1cdbe
khan: functionally done 2022-01-26 17:41:01 -08:00
Jōshin
425bf6b011
khan: accepts thread arguments with marks 2022-01-26 16:26:30 -08:00
Yaseen
a0cc6d8980 story: make +story-log use arms from lib 2022-01-26 18:07:29 -05:00
drbeefsupreme
b5f299c02d
helm: fix |rekey to work with multikey files 2022-01-26 16:29:14 -05:00
Philip Monk
34bcd2ffcd
Merge pull request #5495 from urbit/m/whos-who
helm: bind /who.json
2022-01-26 12:47:47 -07:00
fang
d4a0f1d901
fine: correctly calculate request body size
This had missed getting updated for byte-logic.
2022-01-26 20:03:03 +01:00
Yaseen
484772e2b7 story: misc changes 2022-01-26 11:41:22 -05:00
Jōshin
8ad57d8bd2
khan: cleanup 2022-01-25 21:28:45 -08:00
Jōshin
12b4c80cf1
khan: wip threads v0
super ghetto first pass with a bunch of stuff hard-coded to prevent
sending giant vases over the wire.
2022-01-25 20:08:48 -08:00
Jōshin
fd7d315e3b
khan: wip fyrd 2022-01-25 15:37:48 -08:00
fang
af8fd67472
fine: scry using the roof, not .^ 2022-01-25 21:27:52 +01:00
Yaseen
5b512abae5 story: update |story-remove to use new types 2022-01-25 14:54:55 -05:00
Yaseen
86ef82dbe1 story: misc changes 2022-01-25 14:54:30 -05:00
fang
793c31d7f9
fine: properly sign individual packets 2022-01-24 23:51:22 +01:00
fang
ff53ae5e66
fine: supply lane where needed
Still somewhat wip, this might not be the lane behavior we want for
real.
2022-01-24 23:26:02 +01:00
fang
03b73b85bf
fine: set and handle the response bit correctly 2022-01-24 23:06:06 +01:00
fang
176aa3a45e
lull: stop hardcoding ames bit in +encode-packet 2022-01-24 21:38:55 +01:00
fang
2279764eff
fine: include header & prelude with %hoot 2022-01-24 21:01:46 +01:00
fang
b606dea970
fine: work on bytes instead of bits 2022-01-24 21:01:09 +01:00
~nallux-dozryl
dd53baa059
Fix comment indent for abs:si 2022-01-24 15:24:01 +08:00
Jōshin
30df250c7d
khan: closer to starting threads 2022-01-22 01:46:59 +00:00
Jōshin
a247113c57
khan: %done task 2022-01-22 01:46:12 +00:00
Jōshin
3cf803129d
khan: basic +call, types 2022-01-21 22:09:01 +00:00
Jōshin
575ff61fa6
khan: vane skeleton 2022-01-21 18:48:05 +00:00
Yaseen
c818d293ba story: add generator +story-log 2022-01-21 11:50:42 -05:00
fang
92aa604be0
fine: factor out the fetching of scry results
And use it to implement task-ways request handling, which we'll probably
remove in favor of peek-ways handling.
2022-01-21 14:59:54 +01:00
Yaseen
a927d31629 story: make |story-list use new types 2022-01-20 16:01:01 -05:00
Yaseen
f491aa0384 story: update |story-set to use new types 2022-01-20 15:58:05 -05:00
Yaseen
b06df068c0 story: make |story-init use new types and make overwriting optional 2022-01-20 15:56:47 -05:00
fang
2d0a6f160b
fine: reuse packet en/decoding logic from ames
Also adds some more of the core logic, but still wip.
2022-01-20 20:36:38 +01:00
yosoyubik
d62ba7d6b5 roller: fix wrong ship quota 2022-01-20 16:15:38 +01:00
fang
dd4eb87f42
ames: move packet en/decoding into lull
By moving this behavior for packets with ames-style headers into lull,
other vanes that want to do protocols in similar style (like the upcoming
%fine vane) can reuse the logic here.

Note that we parameterize the main en- and decoding functions, so that
we may pass in the "is ames" flag and protocol versions as appropriate
to the context.
2022-01-20 01:59:43 +01:00
fang
3cb3421657
Merge branch 'next/arvo' into m/scry-vane 2022-01-19 19:28:09 +01:00
yosoyubik
0c9fc76b93 eth-watcher: fix zoom-margin to account for reorgs
The previous value—used for testing—didn't consider
block reorgs, which meant that if we zoom to the latest
block that has no transactions, but that gets later replaced
by a 1-block reorg that does have a transaction, we'll miss it,
making our Azimuth state incomplete.

To fix it, we rewind the Azimuth state to the contents of the snapshot,
and then start retrieving logs from the latest one we have.
2022-01-19 17:41:05 +01:00
fang
207dc91c8c
fine: wip, add packet deserializing logic
Also stub our some flows, add todos, etc. Bit of a mess, follow-up soon.
2022-01-19 12:35:54 +01:00
yosoyubik
3d943ec201 ames: ignore missing peer-state on-publ-sponsor 2022-01-18 20:34:32 +01:00
fang
fa9c4016aa
fine: work around compiler bug 2022-01-14 13:51:02 +01:00
fang
355f05753f
fine: remote scry
Implements a WIP version of %fine, the remote scry vane. Plenty of work
remains to be done here, marked by TODOs and REVIEWs.
2022-01-14 00:22:56 +01:00
Yaseen
b37fd09fab clay: implement %base-tako scry under the %s care 2022-01-13 15:56:20 -05:00
fang
7be6950fe5
Merge branch 'm/helm-perms' into next/arvo 2022-01-13 00:36:22 +01:00
fang
0bc1f49f0f
drum: only process pokes from the local ship
No mark files exist for any of the drum marks, so trying to poke remote drums
would fail anyway, but relying on the mark system in that way seems a bit
fragile, so we add an explicit permission check.
2022-01-13 00:24:31 +01:00
fang
bde8c0b04a
helm: only process pokes from the local ship
No mark files exist for any of the helm marks (except `%helm-hi`), so trying to
poke remote helms would fail anyway, but relying on the mark system in that way
seems a bit fragile, so we add an explicit permission check.
2022-01-12 13:28:44 +01:00
jose
f158ebe312
Merge pull request #5532 from urbit/azimuth/jael-fix
jael: give new private key to subscribers on %keys new-event
2022-01-12 12:47:21 +01:00
yosoyubik
432d9674f5 jael: don't put conflicting this-su in the subject 2022-01-12 11:01:06 +01:00
Jōshin
ce05e562ed
test: schnorr bounds checking 2022-01-09 05:49:47 +00:00
Jōshin
71c59737d8
zuse: boundary assertions for schnorr
Just assert on mis-sized values.
2022-01-09 05:31:36 +00:00
Jōshin
4591fa272e
zuse: schnorr test cases
These are from:
<https://github.com/bitcoin/bips/blob/master/bip-0340/test-vectors.csv>
2022-01-09 05:28:22 +00:00
yosoyubik
fccf99e0a6 jael: refactor new-event for %keys diff
this also adds a %rerun %poke to /app/azimuth
2022-01-08 19:28:11 +01:00
yosoyubik
8535563de6 jael: give private key to subscribers on keys diff
Triggering this event has been added to /app/azimuth's +on-load
2022-01-08 09:48:28 +01:00
yosoyubik
583d5f5063 azimuth: process snapshot on-load 2022-01-07 18:13:51 +01:00
yosoyubik
1950736518 azimuth: update snapshot at block 13.958.653 2022-01-07 17:31:49 +01:00
yosoyubik
8df443bc46 azimuth: remove eth-logs 2022-01-06 16:43:28 +01:00
Yaseen
dcb8aedc09 story: amend |story-set to use the tako from appropriate desk 2021-12-30 21:01:03 -05:00
Jōshin
40fbd16036
zuse: schnorr address 2021-12-30 05:46:44 +00:00
Jōshin
cb5983c6ae
zuse: schnorr jet hints 2021-12-30 04:25:31 +00:00
Jōshin
f93457ce9c
zuse: style 2021-12-30 04:14:25 +00:00
Jōshin
0fb3dd5ed0
zuse: cleanup 2021-12-30 00:47:11 +00:00
Jōshin
022ec2867d
zuse: banish byte twiddling from schnorr
Actually it's just hidden in +sha-256l:sha now.
2021-12-30 00:42:47 +00:00
Jōshin
57ef17fc91
zuse: signatures were backwards 2021-12-29 23:58:31 +00:00
Jōshin
09294d79bc
zuse: unused ffra 2021-12-29 23:50:16 +00:00
Jōshin
4c6187787f
zuse: remove redundant flips on sig 2021-12-29 23:50:16 +00:00
Jōshin
4f1269b205
zuse: cleanup in schnorr 2021-12-29 23:50:15 +00:00
Jōshin
b296f3912e
zuse: verify:schnorr works 2021-12-29 23:50:15 +00:00
Jōshin
ab4b735471
zuse: sign:schnorr basically done
Schnorr's choice of big-endian encoding commits us to some degree of
byte twiddling; try to make this fairly seamless.
2021-12-29 23:49:54 +00:00
Jōshin
f39421c97b
zuse: flip bytes in sig
gross!
2021-12-29 19:02:51 +00:00
Jōshin
a1c548ced4
zuse: schnorrsig-sign from spec
test vectors match, but are byte-flipped. has to do a lot of endianness
twiddling.
2021-12-29 18:57:45 +00:00
Jōshin
aa3bbe165e
zuse: schnorrsig stubs 2021-12-25 08:47:43 +00:00
Joe Bryan
1657c548cc Merge branch 'master' into next/arvo
* master:
  [nix] track nixos-21.11 branch whenever niv updates, bump to include qemu-in-virtualization fix
  webterm: v1.0.0
  herm: permission checks
  herm: avoid trailing empty path segments
  pmnsh: update secp256k1 configure flags
  secp256k1: use nixpkgs provided secp256k1 and add to sources-pmnsh
  webterm: remove border, let term live in page
  theme: cleaning up a few mismatches
  webterm: handle old-style blits and belts
  build: correct lmdb static builds
  build: explicitly override h2o build platforms to support darwin
  ci: upgrade cachix/install-nix-action from v13 -> v16
  build: remove haskell related nix code and haskell.nix dependency
  webterm: update imports
  @urbit/api: move term types
  webterm: fix broken imports
  webterm: update package name for lerna
  webterm: commit missing api files
  webterm: backport
2021-12-17 23:39:04 -05:00
fang
970075bbcd
helm, docket: bind /who endpoint in helm instead
This seems like a better place.
2021-12-17 00:42:57 +01:00
Joe Bryan
e8cdafddfc arvo: refactor |mass output, make vane /whey peek optional 2021-12-16 12:21:21 -05:00
Joe Bryan
32e1ed0a15 arvo: fix type typo (s/mein/mien/g) 2021-12-16 12:15:48 -05:00
yosoyubik
1bda134280 azimuth: update /app/azimuth snapshot 2021-12-15 08:31:26 +01:00
Yaseen
077c23b9e7 story: add generator |story-init 2021-12-14 14:31:38 -05:00
Yaseen
2626c32085 story: let |story-set take a case and make it optional 2021-12-14 14:31:09 -05:00
fang
dd6b090bfa
Merge pull request #5454 from urbit/m/backport-nu-webterm
webterm: backport
2021-12-14 19:23:23 +01:00
yosoyubik
5d4a410653 roller: don't set :frequency timer on commit 2021-12-14 16:39:22 +01:00
yosoyubik
d0309abfd8 roller: get suggested gas price only for mainnet 2021-12-14 15:44:43 +01:00
yosoyubik
1b278ce104 dice: dont print %failed logs in tx-effects 2021-12-14 15:27:44 +01:00
yosoyubik
fc540bf209 roller: handle sending malformed batches 2021-12-14 15:24:25 +01:00
yosoyubik
d1a04c7c54 Merge branch 'naive/snapshot' into roller/gas-price 2021-12-14 09:41:22 +01:00
yosoyubik
4724c32d3d pill: load azimuth snapshot file with mime mark 2021-12-14 09:40:34 +01:00
yosoyubik
0c7ada2076 roller: fix response parsing from gasoracle 2021-12-13 19:16:47 +01:00
fang
fd375c1d90
herm: permission checks
Make sure herm can only be interacted with by the local ship.
2021-12-13 14:25:14 +01:00
fang
c7c601c041
herm: avoid trailing empty path segments
append /view to the existing subscription paths to "wrap" the possibly
empty path segment of the session name.
2021-12-13 14:24:20 +01:00
yosoyubik
92c498cd04 Merge branch 'naive/snapshot' into roller/gas-price 2021-12-10 18:42:55 +01:00
yosoyubik
8601b13e3f azimuth: remove unused import in snapshot mark 2021-12-10 16:59:30 +01:00
yosoyubik
f6dca03786 pill: restore solid pill 2021-12-10 16:19:59 +01:00
yosoyubik
fd2ff95989 roller: fix refuel generator 2021-12-10 13:13:14 +01:00
yosoyubik
f6ff4f108b roller: add utilities for handling low-gas batches
This adds support for handling cases where the send-batch thread failed,
mainly among them, a thread crash. One of the events that causes this
behavior is a ver low gas price for this L1 transaction.

Here we add support for manually bumping the price for such transaction,
and for increasing the default fallback gas-price, together with discarding
any malformed batch from the sending queue.
2021-12-10 11:36:45 +01:00
Jōshin
d94aa5704b
Merge branch 'master' into next/arvo
Conflicts:
	pkg/arvo/lib/azimuth.hoon

This file was turned into a symlink to pkg/base-dev/lib/azimuth.hoon on
one side of the fork, and meanwhile edited on the other side of the fork
(to update ecliptic to the new address for the WSTR fix.)

The two sides of the fork both had different outdated addresses in
base-dev's azimuth.hoon file, and Git's UI helpfully refilled the
contents of arvo's azimuth.hoon so that it showed a merge conflict with
an empty diff.

Resolved by reading out HEAD:pkg/arvo/lib/azimuth.hoon into
pkg/base-dev/lib/azimuth.hoon and manually recreating the symlink.
2021-12-10 08:24:32 +00:00
yosoyubik
c467d5aa67 Merge branch 'roller/quota-left' into naive/snapshot 2021-12-09 07:45:18 +01:00
yosoyubik
ae05bbf571 roller: don't crash if nonce not in queue 2021-12-09 07:44:53 +01:00
yosoyubik
4384f19643 azimuth: use ship as prefix for loading snapshot log 2021-12-09 07:30:08 +01:00
yosoyubik
cce14699c8 azimuth: update log message 2021-12-08 12:52:23 +01:00
yosoyubik
37adba1ba0 various: update to new udiff:point type 2021-12-08 11:23:35 +01:00
yosoyubik
1e912d1ec4 Merge branch 'roller/quota-left' into naive/snapshot 2021-12-08 11:02:23 +01:00
yosoyubik
463ca6e8db roller: set default quota to 25 2021-12-08 11:02:05 +01:00
Philip Monk
5c20b63a5a
Merge pull request #5412 from urbit/jb/safer-dojo
dojo: improve safety of mark conversion
2021-12-07 20:20:53 -08:00
Philip Monk
1ffdad8719
Merge pull request #5439 from ynx0/dev-fixes
meta: fix various issues in file tree for development
2021-12-07 19:07:34 -08:00
Philip Monk
7583d33cf1
Merge pull request #5436 from urbit/m/claz-lockup-txs
claz: better linear lockup ops support
2021-12-07 18:41:55 -08:00
yosoyubik
28dacad857 Merge branch 'roller/quota-left' into naive/snapshot 2021-12-07 17:48:30 +01:00
yosoyubik
33852ea90e roller: support private keys with leading 0x 2021-12-07 17:47:56 +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
fang
3df0efd7c6
Merge pull request #5473 from urbit/m/base-atom
pkg: include atom mark in base-dev
2021-12-06 15:11:12 +01:00
yosoyubik
d08ab43f3a lull: skip rift/life printf when booting 2021-12-06 13:47:59 +01:00
fang
4bff1df7e8
pkg: include atom mark in base-dev 2021-12-05 14:50:50 +01:00
yosoyubik
ad16155c77 azimuth: load azimuth state from state snapshot 2021-12-03 16:11:15 +01:00
fang
2c71a5d79d
azimuth: update ecliptic address
To account for the recent upgrade.
2021-12-02 21:45:39 +01:00
Liam Fitzgerald
82e8d35a2a eyre: address mark review, update pill 2021-12-02 09:06:55 -05:00
Liam Fitzgerald
6160a77eaa eyre: include mark of fact in channel json
This change greatly improves the ergonomics of working with channel JSON
in statically typed languages, as the polymorphism is moved out of the
actual diff and into the event framing.
2021-12-01 17:48:57 -05:00
Yaseen
1d111db103 story: rename generator |story-add to |story-set 2021-12-01 11:45:11 -05:00
yosoyubik
d5c44598ba roller: refactor and clean up 2021-11-28 16:37:06 +01:00
h5gq3
c742b58426
improve de-xml parser
de-xml parser fails when xml content node contains doublequotes (`doq` rule), this PR proposes to remove this restriction as high-level javascript APIs that operate on DOM don't entitize/encode doublequotes by default.
2021-11-28 12:34:10 +02:00
Yaseen
7add802ab9 story: add generator |story-remove 2021-11-26 20:53:52 -05:00
Yaseen
78468dc8ee story: add generator |story-add 2021-11-26 20:53:20 -05:00
Yaseen
808e6ce763 story: add generator +story-list 2021-11-25 17:02:29 -05:00
yosoyubik
8c8aef96aa dice: include nas when rolling over tx-effects 2021-11-25 21:22:15 +01:00
Yaseen
163ed030d4 clay: add new %s scry which gives the tako for a given beak 2021-11-25 12:48:24 -05:00
fang
14bfcc0288
claz: add upgrade poll support 2021-11-25 11:56:42 +01:00
yosoyubik
2e94a0d446 azimuth, dice: simplify index update 2021-11-24 15:31:59 +01:00
yosoyubik
528a046b51 roller: add to state ship allowance and next-slice 2021-11-23 10:55:50 +01:00
yosoyubik
144065c4fc roller-rpc: add %get-remaining-quota 2021-11-22 14:02:31 +01:00
Yaseen
8819d61ff6 symlink arvo/lib/azimuth.hoon to base-dev/lib/azimuth.hoon 2021-11-19 12:33:12 -05:00
fang
0a5bcf7464
claz: interleave transfer proxy & deposit txs
Dumb hack, but very nice for multi-tx batches.
2021-11-18 17:48:23 +01:00
fang
130761039d
claz: include linear release txs 2021-11-18 17:46:53 +01:00
Philip Monk
ff63ffd1aa
azimuth: stop processing state in %watch
Also reprocess state in +on-load for ships which currently have
unprocessed state.
2021-11-17 10:22:27 -08:00
Philip Monk
45a8d12c35
Merge remote-tracking branch 'origin/philip/hotfix' into philip/hotfix 2021-11-17 10:00:49 -08:00
yosoyubik
9430c666d2 azimuth: update state on-watch 2021-11-17 12:40:06 +01:00
Philip Monk
a58db10b94
azimuth: don't crash if timer failed 2021-11-16 21:09:10 -08:00
Philip Monk
4b328a4fa7
azimuth: make +run-logs tail-recursive
Also kick the call to +mule out of the loop.  By uncommenting the
diagnostics in u3m_fall, I measured that running through the 290k events
the azimuth snapshot required this much memory:

Head recursive, +mule in:  1.1GB
Head recursive, +mule out: 780MB
Tail recursive, +mule in:  700MB
Tail recursive, +mule out: 70MB

So this commit chooses the last one.  The most delicate part is making
sure the effects are the right order; this uses the usual idiom.

Kicking +mule out of the loop is okay because lib/naive should never
fail, and if it does then azimuth shouldn't advance until an out-of-band
solution is decided.

Addresses #5431
2021-11-16 20:03:20 -08:00
Philip Monk
78fe24f7e1
tmp: remove jamfiles 2021-11-16 15:53:55 -08:00
Philip Monk
fae27385ff
eth-watcher: remove printfs 2021-11-16 14:47:17 -08:00
Philip Monk
a2a89d3532
Merge remote-tracking branch 'origin/next/arvo' into philip/roller 2021-11-16 13:58:57 -08:00
Philip Monk
4656372b09
Merge pull request #5426 from ynx0/claybel
clay: support labels
2021-11-15 08:49:31 -08:00
Yaseen
c080eb8336 fix comment styling 2021-11-15 09:07:24 -05:00
Yaseen
ae7cf81c29
clay: keep info in stacktrace when labeling fails
Co-authored-by: Philip Monk <phil@pcmonk.me>
2021-11-15 05:32:59 -05:00
yosoyubik
0d592f67d1 Merge remote-tracking branch 'origin/philip/roller' into naive/roller 2021-11-15 05:48:57 +01:00
yosoyubik
a8ccf5c32e roller-rpc: fix typo 2021-11-15 05:44:52 +01:00
Philip Monk
8af1dd3acc
clay: refactor +wake
+wake had accumulated several layers of abstractions which were later
rendered unnecessary.  This removes those abstractions and should have
no semantic effect.
2021-11-14 19:35:32 -08:00
Yaseen
70a85ccdb0 remove unnecessary comments 2021-11-14 20:41:30 -05:00
Yaseen
17751e7890 clay: enforce referential transparency on labels 2021-11-14 16:49:17 -05:00
Philip Monk
95a8504763
Merge pull request #5423 from urbit/release/next-sys
various: release/next-sys -> next/arvo
2021-11-12 20:11:17 -08:00
Philip Monk
f20cb399f8
Merge remote-tracking branch 'origin/master' into next/arvo 2021-11-12 20:08:06 -08:00
fang
b9b1fbfb1a
Merge pull request #5310 from urbit/m/acme-base
acme: load custom cert from base desk, not home
2021-11-13 00:44:14 +01:00
Philip Monk
23980d1f64
kiln: throw away pending commits on good commits
When we receive a commit that we can apply from the source, we throw
away any skipped pending commits.  This lets us receive updates at the
current kelvin even if we heard pending commits for later kelvins.
2021-11-12 14:38:17 -08:00
Philip Monk
901bcdf7b8
kiln: don't allow bump-many for non-current kelvin 2021-11-12 14:37:54 -08:00
Yaseen
25ce97cade clay: add support for labeling commits
- add helper arm `label:de`
- update relevant code to take in arbitrary aeons
2021-11-12 15:35:06 -05:00
Philip Monk
84453c13d5
Merge remote-tracking branch 'origin/lf/fix-hardcoding' into philip/hotfix 2021-11-12 12:13:35 -08:00
Philip Monk
6665bc0986
kiln: fix |bump to not require except 2021-11-12 12:06:45 -08:00
Liam Fitzgerald
5dc60da825 kiln: fix %kiln-bump mark 2021-11-12 14:38:34 -05:00
fang
9d2936a6e7
Merge branch 'next/arvo' into m/cite-redux 2021-11-12 13:21:42 +01:00
fang
d379a38486
zuse: explicitly +cut in +cite:title, add tests 2021-11-12 13:11:40 +01:00
yosoyubik
bfcf7631d4 roller: remove network generator 2021-11-11 06:59:13 +01:00
yosoyubik
cb1567a4ac dice: remove extra p 2021-11-11 06:36:27 +01:00
Philip Monk
5f51bb0d4d
Merge remote-tracking branch 'origin/next/arvo' into philip/roller 2021-11-10 20:53:30 -08:00
yosoyubik
155e02c3cb Merge remote-tracking branch 'origin/next/arvo' into naive/roller 2021-11-11 05:50:44 +01:00
Philip Monk
74ad24acb9
kiln: don't bump on-load 2021-11-10 18:08:27 -08:00
yosoyubik
ed2d9bb482 Merge remote-tracking branch 'origin/philip/roller' into naive/roller 2021-11-10 18:44:25 +01:00
yosoyubik
da739d6e87 azimuth: add sponsorship scry 2021-11-10 18:39:43 +01:00
yosoyubik
4727b49b89 acme: point acme to /~debug 2021-11-10 18:38:13 +01:00
yosoyubik
e32b0a1956 roller: add sponsorship index 2021-11-10 17:46:22 +01:00
Joe Bryan
e5ebbe89ac
Merge pull request #5413 from urbit/jb/start
arvo: fix |start
2021-11-10 07:40:01 -08:00
yosoyubik
856d8ed8fc azimuth: use last-snap only in %default network 2021-11-10 11:47:22 +01:00