@@ -96,12 +96,19 @@ sponsorship chain and galaxy public keys are left at their bunted values.
97Like `%dawn`, `%fake` is used to initialize the other vanes. In response to a
97Like `%dawn`, `%fake` is used to initialize the other vanes. In response to a
98`%fake` `task`, Jael `%slip`s a `%init` `task` to each of Eyre, Dill, Gall,
98`%fake` `task`, Jael `%slip`s a `%init` `task` to each of Eyre, Dill, Gall,
99−Clay, and Ames, and `%give`s a `%init` `gift` to Arvo.
99+Clay, and Ames, and `%give`s a `%init` `gift` to Unix.
102### `%listen`
102### `%listen`
104−set ethereum source?
104+Sets the source that the public keys for a set of `ship`s should be obtained
105+from. This can either be a Gall app that communicates with an Ethereum node such
106+as `%azimuth-tracker`, as in the case for galaxies, stars,
107+and planets, or a ship, as in the case of a moon or comet.
109+After setting the source, Jael will then subscribe to the source for updates on
110+public keys for the given ships.
106#### Accepts
113#### Accepts
@@ -109,73 +116,29 @@ set ethereum source?
109[whos=(set ship) =source]
116[whos=(set ship) =source]
112−A `$source` is `(each ship term)`.
119+`whos` is the set of ships whose key data source is to be altered. `source` is
120+`(each ship term)`, where `term` will ultimately be treated as a handle for a
114−```
123+A `%listen` `task` with empty `whos` will set the default source to `source`.
115−++ each
124+This is the source used for all ships unless otherwise specified.
117− :: either {a} or {b}, defaulting to {a}.
119− :: mold generator: produces a discriminated fork between two types,
120− :: defaulting to {a}.
128−```hoon
126+When the `source` is a `term`, Jael looks into its state to find what source has
129− %listen
127+been previously assigned to that `term` and will henceforth obtain public keys for
130− ~& [%jael-listen whos source]:tac
128+ships in `(set ship)` from there. In practice, this is always
131− %- curd =< abet
129+`%azimuth-tracker`, but the ability to use other sources is present.
132− (sources:~(feel su hen our now pki etn) [whos source]:tac)
135−```hoon
131+When the `source` is a ship, Jael will obtain public keys for ships in `(set ship)` from
136−++ su
132+the given ship. By default, the `source` for a moon will be the planet that
137− :: the ++su core handles all derived state,
133+spawned that moon, and the `source` for a comet will be the comet itself.
138− :: subscriptions, and actions.
140− :: ++feed:su registers subscriptions.
142− :: ++feel:su checks if a ++change should notify
148− :: Change sources for ships
151− |= [whos=(set ship) =source]
153− =^ =source-id this-su (get-source-id source)
156− ..feed(default-source.etn source-id)
157− =/ whol=(list ship) ~(tap in `(set ship)`whos)
159− |- ^- (map ship ^source-id)
162− (~(put by $(whol t.whol)) i.whol source-id)
163− =. ship-sources-reverse.etn
164− %- ~(gas ju ship-sources-reverse.etn)
165− (turn whol |=(=ship [source-id ship]))
171− [hen %pass /public-keys %a %plea p.source %j /public-keys message]
172− (emit (send-message %public-keys whos))
173− (peer p.source whos)
177#### Returns
135#### Returns
137+If the `source` is a `term`, Jael will `%pass` a `%deal` `task` to Gall asking to
138+`%watch` the app given by `source` at path `/`.
140+If the `source` is a `ship`, Jael will `%pass` a `%plea` `task` to Ames wrapping
141+a `%public-keys` `task` intended for Jael on the `ship` specified by `source`.
180### `%meet`
143### `%meet`