on master help sign in
further work in progress
commit58fcb663c6b659f0c2ce0c9c6074c8af9d75f82a authorMorgan Sutherland <morgan@morgansutherland.com> dateMon 14 Jan 2019, 14:33 (8 years ago) parentc4e434e
27 files changed+44−46
getting-started/azimuth.udon−1 getting-started/landscape.udon+1−3 introduction/arvo-vs-azimuth.udon+5−10 introduction/community.udon → introduction/community-tutorials.udon+4−2 introduction/contributing.udon+4−4 introduction/source.udon → introduction/source-code-overview.udon+8−24 introduction/overview.udon → introduction/technical-overview.udon learn/arvo.udon+17−1 learn/arvo/hoon/hoon-ch1-4.udon → learn/arvo/hoon/arms-and-cores.udon learn/arvo/hoon/hoon-ch2-4.udon → learn/arvo/hoon/atoms-auras-and-simple-cell-types.udon learn/arvo/hoon/hoon-ch2-8.udon → learn/arvo/hoon/cores-again.udon learn/arvo/hoon/hoon-ch2-7.udon → learn/arvo/hoon/cores.udon learn/arvo/hoon/hoon-ch2-11.udon → learn/arvo/hoon/examples.udon learn/arvo/hoon/hoon-ch1-5.udon → learn/arvo/hoon/gates.udon learn/arvo/hoon/hoon-ch1-1.udon → learn/arvo/hoon/getting-started.udon learn/arvo/hoon/hoon-ch2-1.udon → learn/arvo/hoon/hoon-programs.udon learn/arvo/hoon/hoon-ch2-2.udon → learn/arvo/hoon/hoon-syntax.udon learn/arvo/hoon/hoon-ch2-9.udon → learn/arvo/hoon/lists.udon learn/arvo/hoon/hoon-ch1-6.udon → learn/arvo/hoon/multi-gate-cores-and-doors.udon learn/arvo/hoon/hoon-ch1-2.udon → learn/arvo/hoon/nouns.udon learn/arvo/hoon/hoon-ch2-3.udon → learn/arvo/hoon/simple-one-gate-programs.udon learn/arvo/hoon/hoon-ch2-6.udon → learn/arvo/hoon/structures-and-complex-types.udon learn/arvo/hoon/hoon-ch1-3.udon → learn/arvo/hoon/the-subject-and-its-legs.udon learn/arvo/hoon/hoon-ch2-10.udon → learn/arvo/hoon/trees-sets-and-maps.udon learn/arvo/hoon/hoon-ch2-5.udon → learn/arvo/hoon/type-checking-and-type-inference.udon learn/arvo/hoon/hoon-ch3-1.udon → learn/arvo/hoon/type-polymorphism.udon learn/azimuth.udon+5−1
getting-started/azimuth.udon−1
@@ -6,4 +6,3 @@
66# Using Azimuth
77
88The primary way to interact with Azimuth, our identity platform, is through our application [Bridge](https://github.com/urbit/bridge) and the node libraries that it depends on, azimuth-js and keygen-js. Take a look at the source and play around or see our [introduction to Bridge](/getting-started/installation).
9−
getting-started/landscape.udon+1−3
@@ -5,6 +5,4 @@
55
66# Landscape
77
8−We're using Landscape, our new UI, to bootstrap a city dedicated to learning Hoon and
9−contributing to Urbit. If you'd like to know more about joining this city, visit
10−this [signup page](/landscape).
8+We're using Landscape, our new UI, to bootstrap a city dedicated to learning Hoon and contributing to Urbit. If you'd like to know more about joining this city, visit this [signup page](/landscape).
introduction/arvo-vs-azimuth.udon+5−10
@@ -4,17 +4,12 @@
44
55# Arvo vs. Azimuth
66
7−*Arvo* is the Urbit operating system. *Azimuth* is the decentralized ledger
8−that keeps track of identities that are required to use the Arvo network. *Urbit* is the holistic system composed of both Arvo and Azimuth.
7+*Arvo* is the Urbit operating system. *Azimuth* is the decentralized ledger that keeps track of identities that are required to use the Arvo network. *Urbit* is the holistic system composed of both Arvo and Azimuth.
98
10−The Arvo network is composed of virtual machines running our software stack.
11−Using a blockchain for this kind of computing is impossible: there's far too
12−much data involved in an operating system to run on top of a distributed
13−consensus mechanism. And you don't want your private information on a public
14−ledger. The Arvo network is not a blockchain.
9+The Arvo network is composed of virtual machines running our software stack. Using a blockchain for this kind of computing is impossible: there's far too much data involved in an operating system to run on top of a distributed consensus mechanism. And you don't want your private information on a public ledger. The Arvo network is not a blockchain.
1510
16−However, being a decentralized system, we need some way to cryptographically secure and authenticate your identity on the Arvo network. What keeps track of who owns any given identity? Well, simply matching something to an address is a small piece of computing, and a blockchain are wonderful for such a purpose. That's where the Azimuth comes in.
11+However, being a decentralized system, we need some way to cryptographically secure and authenticate your identity on the Arvo network. What keeps track of who owns any given identity? Well, simply matching something to an address is a small piece of computing, and a blockchain are wonderful for such a purpose. That's where the Azimuth comes in.
1712
18−We chose to build Azimuth on the Ethereum blockchain because smart contracts are well-suited for the peculiarities of the identities. Urbit identities are owned by Ethereum addresses.
13+We chose to build Azimuth on the Ethereum blockchain because smart contracts are well-suited for the peculiarities of the identities. Urbit identities are owned by Ethereum addresses.
1914
20−Azimuth and the Arvo network are parallel systems. Azimuth isn't necessarily Arvo-related; it can be used as a generalized identity system for other projects. Azimuth is the equivalent of a bank vault that storess sthe deed to your house. The Arvo network is the neighborhood that you live in.
15+Azimuth and the Arvo network are parallel systems. Azimuth isn't necessarily Arvo-related; it can be used as a generalized identity system for other projects. Azimuth is the equivalent of a bank vault that storess sthe deed to your house. The Arvo network is the neighborhood that you live in.
introduction/community.udon → introduction/community-tutorials.udonrenamed+4−2
@@ -5,9 +5,11 @@
55 ==
66;>
77
8−# Community docs
8+# Community Docs
99
10−Here are some tutorials written by members of the Urbit community. Some are a little outdated, but they may still prove useful.
10+Here are some tutorials written by members of the Urbit community. Some are a little outdated, but they may still prove useful.
11+
12+If you want to add something to this list, [shoot us an email](mailto:support@urbit.org).
1113
1214- `~master-morzod`
1315 - [Fora post](https://urbit.org/fora/posts/~2016.12.25..06.35.44..a1ec~/)
introduction/contributing.udon+4−4
@@ -7,14 +7,14 @@
77
88# Contributing
99
10−It's always a good day for pull requests! We gladly accept submissions
11−for improving our [code](https://github.com/urbit/urbit/) and
12−[documentation](https://github.com/urbit/docs/) alike.
10+We accept submissions for improving our [code](https://github.com/urbit/urbit/) and [documentation](https://github.com/urbit/docs/) alike.
11+
12+If you're interested in contributing, but don't know where to start, feel free to [send us an email](mailto:support@urbit.org).
1313
1414## Code guidelines
1515
1616Our official guide to contributing can be found
1717[here](https://github.com/urbit/urbit/blob/master/CONTRIBUTING.md),
18−which is most useful for large and low-level changes. For a good example of
18+which is most useful for large and low-level changes. For a good example of
1919preferred Hoon coding style, see
2020[ford.hoon](https://github.com/urbit/arvo/blob/master/sys/vane/ford.hoon).
introduction/source.udon → introduction/source-code-overview.udonrenamed+8−24
@@ -2,11 +2,11 @@
22 navuptwo/'true'
33 next/'true'
44 sort/'2'
5− title/'Source code'
5+ title/'Source Code Overview'
66 ==
77;>
88
9−# Source code overview
9+# Source Code Overview
1010
1111We host all our source code on GitHub at [github.com/urbit](https://github.com/urbit).
1212
@@ -56,34 +56,18 @@ important ones here:
5656 ==
5757 ;li
5858 ;h1
59− ;a/"https://github.com/urbit/constitution"
60− ;code: urbit/constitution
59+ ;a/"https://github.com/urbit/azimuth"
60+ ;code: urbit/azimuth
6161 ==
6262 ==
63− We're [bootstrapping Urbit from Ethereum](https://urbit.org/blog/2017.9-eth/). This means formally defining the Urbit governance model and public-key infrastructure formally in a simple smart contract deployed on the Ethereum blockchain. If you're into Solidity, or just want to see how this works, check out this repo. Currently getting audited.
63+ Azimuth is a general-purpose PKI that Urbit uses for network identities.
6464 ==
6565 ;li
6666 ;h1
67− ;a/"https://github.com/urbit/etherwallet"
68− ;code: urbit/etherwallet
67+ ;a/"https://github.com/urbit/bridge"
68+ ;code: urbit/bridge
6969 ==
7070 ==
71− Urbit will soon need a secure, robust frontend interface for buying and selling Urbit address space and interacting directly with the Urbit constitution smart contract. We decided to fork MyEtherWallet, which already has strong security and support for things like multisig and hardware wallet, and modify it to support Urbit. Dive in!
72− ==
73− ;li
74− ;h1
75− ;a/"https://github.com/urbit/tree"
76− ;code: urbit/tree
77− ==
78− ==
79− Tree is the main Urbit web interface written as a React/Flux app in CoffeeScript. We're working on porting this to ES6 and simplifying the architecture generally. If you're into frontend frameworks and web apps, reach out to us and we'll help you get started.
80− ==
81− ;li
82− ;h1
83− ;a/"https://github.com/urbit/talk"
84− ;code: urbit/talk
85− ==
86− ==
87− The main web interface for Urbit's distributed chat and notifications protocol. Currently, like Tree, a simple React/Flux app written in CoffeeScript. With lots of changes happening to the Talk Hoon backend app in the coming releases, our frontend Talk interface will need a lot of development and design work. We've also started the process of porting this to ES6. Ask us how you can start helping out!
71+ Bridge is an offline web application for interacting with Ecliptic, the interface to Azimuth.
8872 ==
8973==
introduction/overview.udon → introduction/technical-overview.udonrenamed

The content is the same.

learn/arvo.udon+17−1
@@ -5,4 +5,20 @@
55
66# Arvo
77
8−Arvo is the
8+Arvo is a clean-slate system software stack defined as a deterministic computer. An encrypted P2P network, %ames, runs on a functional operating system, Arvo, written in a strict, typed functional language, Hoon, which compiles itself to a combinator interpreter, Nock, whose spec gzips to 340 bytes.
9+
10+## [Hoon](docs/learn/arvo/hoon)
11+
12+Hoon is a high-level, statically typed, functional programming language, custom-designed for use with Urbit. For a functional language it has a surprisingly imperative style, and mastering it doesn't require knowing any advanced mathematics.
13+
14+The [Hoon Tutorials](docs/learn/arvo/hoon/getting-started) are the best place to start if you want to learn Urbit.
15+
16+## [Nock](docs/learn/arvo/nock)
17+
18+Nock is the low-level functional programming language that is interpreted by Vere. You don't need to know Nock to write Hoon, or even to work on most parts of Vere. But if you want to understand the foundations of Urbit and are mathematically-inclined, dive right in.
19+
20+## [Vere](docs/learn/arvo/vere)
21+
22+The Nock runtime system, written in C.
23+
24+Keep reading if you're planning to work on the Urbit interpreter, you're a language implementation geek, or you don't really understand anything until you've seen the actual structs.
learn/arvo/hoon/hoon-ch1-4.udon → learn/arvo/hoon/arms-and-cores.udonrenamed

The content is the same.

learn/arvo/hoon/hoon-ch2-4.udon → learn/arvo/hoon/atoms-auras-and-simple-cell-types.udonrenamed

The content is the same.

learn/arvo/hoon/hoon-ch2-8.udon → learn/arvo/hoon/cores-again.udonrenamed

The content is the same.

learn/arvo/hoon/hoon-ch2-7.udon → learn/arvo/hoon/cores.udonrenamed

The content is the same.

learn/arvo/hoon/hoon-ch2-11.udon → learn/arvo/hoon/examples.udonrenamed

The content is the same.

learn/arvo/hoon/hoon-ch1-5.udon → learn/arvo/hoon/gates.udonrenamed

The content is the same.

learn/arvo/hoon/hoon-ch1-1.udon → learn/arvo/hoon/getting-started.udonrenamed

The content is the same.

learn/arvo/hoon/hoon-ch2-1.udon → learn/arvo/hoon/hoon-programs.udonrenamed

The content is the same.

learn/arvo/hoon/hoon-ch2-2.udon → learn/arvo/hoon/hoon-syntax.udonrenamed

The content is the same.

learn/arvo/hoon/hoon-ch2-9.udon → learn/arvo/hoon/lists.udonrenamed

The content is the same.

learn/arvo/hoon/hoon-ch1-6.udon → learn/arvo/hoon/multi-gate-cores-and-doors.udonrenamed

The content is the same.

learn/arvo/hoon/hoon-ch1-2.udon → learn/arvo/hoon/nouns.udonrenamed

The content is the same.

learn/arvo/hoon/hoon-ch2-3.udon → learn/arvo/hoon/simple-one-gate-programs.udonrenamed

The content is the same.

learn/arvo/hoon/hoon-ch2-6.udon → learn/arvo/hoon/structures-and-complex-types.udonrenamed

The content is the same.

learn/arvo/hoon/hoon-ch1-3.udon → learn/arvo/hoon/the-subject-and-its-legs.udonrenamed

The content is the same.

learn/arvo/hoon/hoon-ch2-10.udon → learn/arvo/hoon/trees-sets-and-maps.udonrenamed

The content is the same.

learn/arvo/hoon/hoon-ch2-5.udon → learn/arvo/hoon/type-checking-and-type-inference.udonrenamed

The content is the same.

learn/arvo/hoon/hoon-ch3-1.udon → learn/arvo/hoon/type-polymorphism.udonrenamed

The content is the same.

learn/azimuth.udon+5−1
@@ -5,4 +5,8 @@
55
66# Azimuth
77
8−[PLACEHOLDER]
8+Azimuth is a general-purpose public-key infrastructure (PKI) on the Ethereum blockchain, used as a decentralized ledger for Urbit identities that we call *points*. Having a point is necessary to use the Urbit network, which makes it important to have a neutral ledger to determine who owns what.
9+
10+Azimuth is not, however, part of the Urbit stack. Azimuth is a parallel system that be used as a generalized identity system for other projects. Azimuth "touches" the Urbit ecosystem when a point is used to boot a virtual computer on the Urbit network for the first time. When that happens, the point considered *linked* to Azimuth and the point’s full powers are available for use. Once a point is linked, it cannot be unlinked.
11+
12+A metaphor might make the relationship between these two systems to understand: Azimuth is the bank vault that stores the deed to your house. The Urbit network is the neighborhood that you live in.