on master help sign in
Merge pull request #631 from urbit/glossary-azimuth

adds azimuth glossary

commitb49061839c05d3915eb34c6034e3b1fa865b85bb authorrmariani <robert@tlon.io> dateThu 5 Sep 2019, 14:05 (7 years ago) parent43134203ec2cec
4 files changed+156−34
reference/glossary.md → reference/arvo-glossary.md+37−32 reference/azimuth-glossary.md+117 reference/cheat-sheet.md+1−1 reference/troubleshooting.md+1−1
reference/glossary.md → reference/arvo-glossary.mdrenamed+37−32
@@ -1,14 +1,18 @@
11+++
2−title = "Glossary"
2+title = "Arvo Glossary"
33weight = 3
44template = "doc.html"
55+++
6+
67Urbit is renowned for its exotic terminology. Here's a simple overview
78from the strange words within.
89
910As Dijkstra put it: "The purpose of abstraction is not to be vague, but
1011to create a new semantic level in which one can be absolutely precise."
1112
13+This glossary only covers terms the Arvo side of the project. You can find the
14+Azimuth glossary [here](../azimuth-glossary)
15+
1216### application
1317
1418Also known as an “app,” an _application_ is a Hoon program that can hold state.
@@ -23,14 +27,14 @@ enclosing [core](#core) itself as the subject.
2327There are two kinds of arms: _dry_ and _wet_. Most arms are
2428dry.
2529
26−##### dry
30+#### dry
2731
2832 normal, `++`, polymorphic by means of _variance_
2933
3034 For a dry arm, we ask: is the new payload compatible with the old
3135 payload (against which the core was compiled)?
3236
33−##### wet
37+#### wet
3438
3539 unusual, `+-`, polymorphic by means of _genericity_
3640
@@ -67,7 +71,7 @@ More in-depth information on Arvo can be found
6771
6872Below are Arvo modules, which are called "vanes".
6973
70−##### Ames
74+#### Ames
7175
7276 The networking vane. Ames handles all things UDP. Here live the protocols for
7377 discovering and interacting with other urbits. It’s also the name for the Urbit
@@ -78,7 +82,7 @@ Below are Arvo modules, which are called "vanes".
7882 More in-depth information on Ames can be found
7983 [`here`](@/docs/learn/arvo/ames.md).
8084
81−##### Behn
85+#### Behn
8286
8387 The timing vane. Behn allows for applications to schedule events, which are
8488 managed in a simple priority queue. For example, Clay, the Urbit filesystem,
@@ -87,7 +91,7 @@ Below are Arvo modules, which are called "vanes".
8791
8892 Behn is located in `/home/sys/vane/behn.hoon` within your urbit.
8993
90−##### Clay
94+#### Clay
9195
9296 The filesystem and typed revision-control vane. Think of Clay as a
9397 continuously synced git. It handles file-change events and maps them from Urbit
@@ -103,7 +107,7 @@ Below are Arvo modules, which are called "vanes".
103107 of the architecture can be found
104108 [`here`](@/docs/learn/arvo/clay.md).
105109
106−##### Dill
110+#### Dill
107111
108112 The terminal-driver vane. You run your urbit in your Unix terminal, and
109113 Unix sends every event -- such as a keystroke or a change in the dimensions of
@@ -122,7 +126,7 @@ Below are Arvo modules, which are called "vanes".
122126 More in-depth information on Dill can be found
123127 [`here`](@/docs/learn/arvo/dill.md).
124128
125−##### Eyre
129+#### Eyre
126130
127131 The web-server vane. Anything HTTP-related lives here. Unix sends HTTP messages
128132 though to Eyre, and Eyre produces HTTP messages in response.
@@ -136,7 +140,7 @@ Below are Arvo modules, which are called "vanes".
136140 More in-depth information on Eyre can be found
137141 [`here`](@/docs/learn/arvo/eyre.md).
138142
139−##### Ford
143+#### Ford
140144
141145 The build-system vane. Ford is capable of sequencing generic asynchronous
142146 computations. Its uses include linking source files into programs, assembling
@@ -151,7 +155,7 @@ Below are Arvo modules, which are called "vanes".
151155 More in-depth information on Ford can be found
152156 [`here`](@/docs/learn/arvo/ford.md).
153157
154−##### Gall
158+#### Gall
155159
156160 The application-management vane. Userspace apps -- daemons, really -- are
157161 started, stopped, and sandboxed by Gall. Gall provides developers with a
@@ -176,11 +180,12 @@ optional constant.
176180
177181An atom type is _warm_ or _cold_ based on whether the constant exists.
178182
179−##### warm
183+
184+#### warm
180185
181186 If the constant is `~` (null), any atom is in the type.
182187
183−##### cold
188+#### cold
184189
185190 If the constant is `[~ atom]`, its only legal value is `atom`.
186191
@@ -296,11 +301,11 @@ code head the _battery_ and the data tail the _payload_. All code-data
296301structures in normal languages (functions, objects, modules, etc.)
297302translate to cores in Hoon.
298303
299−##### battery
304+#### battery
300305
301306 The code-containing head of a core.
302307
303−##### payload
308+#### payload
304309
305310 The data-containing tail of a core.
306311
@@ -362,11 +367,11 @@ in the core) with the argument, and then compute the arm.
362367
363368The payload of a gate has a shape of `[sample context]`.
364369
365−##### sample
370+#### sample
366371
367372 The argument tuple.
368373
369−##### context
374+#### context
370375
371376 The subject in which the gate was defined.
372377
@@ -424,7 +429,7 @@ such app that uses Hall.
424429
425430_More information on Hall can be found [here](@/docs/learn/arvo/hall.md)._
426431
427−##### circle
432+#### circle
428433
429434 A circle is the “audience” of your messages -- who can receive them. It can be
430435 thought of as a chat channel, but this is a little too narrow. More
@@ -447,7 +452,7 @@ The Hoon source file is located in `/home/sys/hoon.hoon` within your urbit.
447452
448453_More information can be found in the [hoon](@/docs/learn/hoon/_index.md) section._
449454
450−##### Mint
455+#### Mint
451456
452457 _Mint_ is the Hoon compiler function. Mint takes the subject type and the
453458 expression source (a [hoon](#a-hoon), for example) and produces the product
@@ -549,12 +554,12 @@ head-first for either a face named "foo" or a core with an arm of
549554"foo". If a face is found, the result is a leg, if a core is
550555found, the result is the product of the arm.
551556
552−##### leg
557+#### leg
553558
554559 a subexpression, or subtree of the
555560 [subject](#nock-subject).
556561
557−##### wing
562+#### wing
558563
559564 a search path into the subject, composed of
560565 limbs. Search occurs from right to left (`a.b` means `b` within `a`).
@@ -574,28 +579,28 @@ In [Nock](#nock) and [Hoon](#hoon), a _noun_ is an atom or a cell.
574579Nock is a Turing-complete, non-lambda combinator interpreter. It's
575580Urbit's low-level programming language. Nock is functional and typeless.
576581
577−##### noun
582+#### noun
578583
579584 an _atom_ or a _cell_.
580585
581−##### atom
586+#### atom
582587
583588 any natural number, including zero.
584589
585−##### cell
590+#### cell
586591
587592 any ordered pair of nouns.
588593
589594
590−##### subject
595+#### subject
591596
592597 a noun - the data against which a _formula_ is evaluated.
593598
594−##### formula
599+#### formula
595600
596601 a noun - a function at the nock level.
597602
598−##### product
603+#### product
599604
600605 a noun - the result of evaluating a formula against a subject.
601606
@@ -676,7 +681,7 @@ whose number is its bottom half. So the planet `~firbyr-napbes`,
676681`48.879`, whose parent is `~mun`, `0xef`, `239`. The galaxy at the address of
677682`0` is `~zod`.
678683
679−##### pier
684+#### pier
680685
681686 A ship's _pier_ is its Unix directory. For planets, the name of the pier is
682687 usually the planet name.
@@ -691,7 +696,7 @@ validate untrusted network data.
691696
692697Here's some common structure terminology:
693698
694−##### bunt
699+#### bunt
695700
696701 A bunt is the default value of a [structure](#structure). It's also a verb;
697702 to _bunt_ a structure is to produce the bunt of that structure. For example,
@@ -705,7 +710,7 @@ Here's some common structure terminology:
705710 ''
706711 ```
707712
708−##### icon: The type of the mold's range
713+#### icon: The type of the mold's range
709714
710715_See [mold hoons](/docs/reference/hoon-expressions/rune/buc/)._
711716
@@ -725,7 +730,7 @@ a [`hoon`](#a-hoon).
725730
726731Runes have two syntactic forms, _tall_ and _flat_:
727732
728−##### tall
733+#### tall
729734
730735 multiple lines, no parentheses, two or more spaces between tokens
731736
@@ -736,7 +741,7 @@ Runes have two syntactic forms, _tall_ and _flat_:
736741 4
737742 ```
738743
739−##### flat
744+#### flat
740745
741746 one line, parentheses, one space between tokens
742747
@@ -797,7 +802,7 @@ All types are assembled out of base types defined in `++type`.
797802does type-inference on a program, it assembles complex types out
798803of the simpler built-in types.
799804
800−##### nest
805+#### nest
801806
802807 `nest` is an internal Hoon function on two types which performs a type
803808 compatibility test. `nest` produces yes if the
reference/azimuth-glossary.mdnew file+117
@@ -0,0 +1,117 @@
1++++
2+title = "Azimuth Glossary"
3+weight = 4
4+template = "doc.html"
5++++
6+
7+
8+Azimuth is a general-purpose public-key infrastructure (PKI) on the Ethereum blockchain, used as a platform for Urbit identities. You need an Azimuth identity to use the Arvo network. All identity-related operations are governed at this layer For more information, see the [Azimuth documentation](https://urbit.org/docs/concepts/azimuth/).
9+
10+This glossary is intended to familiarize you with Azimuth-related terminology. To brush up on terminology related to Arvo, check out the [Arvo glossary](../arvo-glossary).
11+
12+### Azimuth identity
13+
14+An Azimuth identity, previously known as a _point_, is a non-fungible Ethereum token ([ERC-271](https://medium.com/@brenn.a.hill/noobs-guide-to-understanding-erc-20-vs-erc-721-tokens-d7f5657a4ee7)) that represents a digital identity. The ERC-721 standard, having been made specifically to provide a smart-contract interface for non-fungible assets, allows Azimuth identity ownership to be take advantage of existing third-party tools and systems.
15+
16+#### Planet
17+
18+An Azimuth identity to be used as a personal identity. Issued by stars.
19+
20+#### Star
21+
22+An Azimuth identity meant to be used as network infrastructure. Issued by galaxies, issues planets.
23+
24+#### Galaxy
25+
26+An Azimuth identity meant to be used as top-level network infrastructure, with governance powers. Issues stars.
27+
28+### Bridge
29+
30+A tool that's the primary way to interact with Azimuth and manage your identities. It can be accessed at bridge.azimuth.network.
31+
32+### Master Ticket
33+
34+Think of your master ticket as a very high-value password. The master ticket is the secret code from which all of your other secrets are derived. Technically, your master ticket is seed entropy. You should never share it with anyone, and store it very securely. This ticket can derive all of your other keys: your ownership key and all of the related proxies.
35+
36+### Multipass
37+
38+Multipass is a planned feature of an Azimuth point that can be used as a universal, real-world identity. It will be able to hold money and have packets routed to it. See this [blog post](https://urbit.org/posts/azimuth-as-multipass/) for more information.
39+
40+#### Network Explorer
41+
42+A Bridge-based interface for browsing Azimuth identities. You can do things such as see which ships are on which parties, and much more.
43+
44+### Ownership Address
45+
46+The Ethereum address that owns a point. As the owner, it can perform all possible operations for that point.
47+
48+### Party
49+
50+Also called an _invite tree_. A host starts a party and all individuals invited to this tree have the ability to share remaining, unclaimed invites with others; when an invite is sent to someone, they become a full member of the party and themselves have the ability to invite. So parties grow like a tree.
51+
52+#### Party Host
53+
54+The ship that generates the party. It's most often a star.
55+
56+#### Guest List
57+
58+The names of planets invited to the same party, as viewed by a party host.
59+
60+#### Invite Cohort
61+
62+The names of planets invited to the same party, as viewed by a guest/planet in a party.
63+
64+#### Sending Invites
65+
66+The action of giving someone a planet using Bridge.
67+
68+#### Code
69+
70+Activation code from an email that allows you to claim an invite
71+
72+#### Birth Time
73+
74+When a ship is claimed from an invite
75+
76+### Passport
77+
78+The Passport is a folder of files one downloads that contains the secrets of your point and should be stored securely. As long as you own the passport, you own the point. The master ticket is stored in the Passport.
79+
80+### Proxy Address
81+
82+An Ethereum address that's allowed to perform a specific subset of the operations the owner of the point can perform. Useful for allowing some control over a point while keeping its ownership address in cold storage. Below, the specific kinds of proxy addresses are listed.
83+
84+#### Management Proxy Address
85+
86+An Ethereum address used for managing a point. This means it can only configure public (aka networking) keys, and perform sponsorship-related operations (requesting sponsor changes & approving/rejecting those).
87+Use cases:
88+- Keeping this handy so you can put the ownership/master ticket in a super safe place
89+- Allowing someone to manage your ship (by setting/deriving networking keys, managing sponsorship)
90+- Allowing a smart contract to manage sponsorship ops (ie star service smart contract)
91+
92+#### Network Keys
93+
94+Your public key contains Authentication and Encryption addresses, and also have Revision, Continuity Era, and Crypto Suite versions. Resetting Network Keys increases the revision number on the key. A main use case would be if your Network Keys were compromised, so you can use your Management Address to re-derive your Network Keys to another revision.
95+
96+#### Spawn Proxy Address
97+
98+An Ethereum address used for spawning children of a point. It can only perform the spawn operation (creating child points) and can do nothing else.
99+
100+Use cases:
101+- Keeping this handy so you can put the ownership/master ticket in a super safe place
102+- Allowing a smart contract to spawn on your behalf (delegated sending/invites, planet sale)
103+
104+#### Voting Proxy Address
105+An Ethereum address used for voting as a point.
106+
107+Use cases:
108+- Keeping this handy so you can put the ownership/master ticket in a super safe place
109+- Delegating your voting rights to someone else
110+
111+#### Transfer Proxy Address
112+
113+An Ethereum address that's allowed to transfer ownership of a point. Generally not used outside of transfers-in-progress. Using a transfer proxy allows one to give the recipient the power to take ownership of a point, rather than being given it. This "control check" is a strong safety mechanism commonly used in many (Ethereum-based) cryptographic assets.
114+
115+### Sponsorship
116+
117+Azimuth registers hierarchical dependence of identities on other identities; planets depend on stars, and stars depend on galaxies. Applications that use Azimuth can use this to set up things like network topology. In Arvo's case, the sponsor promises to provide software updates and peer discovery.
reference/cheat-sheet.md+1−1
@@ -1,6 +1,6 @@
11+++
22title = "Cheat sheet"
3−weight = 4
3+weight = 5
44template = "doc.html"
55+++
66
reference/troubleshooting.md+1−1
@@ -1,6 +1,6 @@
11+++
22title = "Hoon Errors"
3−weight = 5
3+weight = 6
44template = "doc.html"
55+++
66Ideally your Hoon works perfectly the first time. But...