on master help sign in
adds installation guide, urbit vs. azimuth, hd wallet guide, and why urbit uses a blockchain
f9d642dRobert
using.udon → getting-started.udonrenamed

The content is the same.

using/.azimuth.udon.swp → getting-started/.azimuth.udon.swprenamed

Binary file not shown.

using/azimuth.udon → getting-started/azimuth.udonrenamed

The content is the same.

using/azimuth/managing.udon → getting-started/azimuth/managing.udonrenamed

The content is the same.

using/azimuth/using-bridge.udon → getting-started/azimuth/using-bridge.udonrenamed

The content is the same.

getting-started/installation.udonnew file+355
@@ -0,0 +1,355 @@
1+:- :~ title/'Installation'
2+ preview/'Want to get Urbit running? Look here.'
3+ ==
4+;>
5+
6+# Installation
7+
8+This guide is broken into five parts:
9+
10++ [Acquiring an Urbit Identity](#acquire)
11++ [Using Bridge](#bridge)
12++ [Installing Arvo](#arvo)
13++ [Booting Your Ship](#setup)
14++ [Basic Operations](#operation)
15+
16+_If you just want to install the Urbit OS, Arvo, and don’t need to be on the
17+Urbit network, you can skip to [Installing Arvo](#arvo)._
18+
19+
20+;=
21+ ;h3
22+ ;div(id "acquire"): Acquiring an Urbit Identity
23+ ==
24+==
25+
26+Urbit’s identity layer, called Azimuth, is a suite of contracts on the Ethereum
27+blockchain. An Azimuth address, called a *point*, functions as an identity and
28+a network address for Arvo, the Urbit OS. An instance of Arvo is called a
29+*ship*. A ship can't use the Arvo network until it's combined with a point.
30+
31+Throughout this guide, we’ll refer to "Urbit identities" and "points"
32+interchangeably.
33+
34+Points are generally not freely available, so you will need to either
35+purchase one or get one from a friend. This guide assumes you have found a way
36+to acquire a point.
37+
38+To get Urbit address space, you’ll need two things: an Ethereum address and a
39+person willing to send you the Urbit address space.
40+
41+You’ll probably want to start with a planet. Those are cheap identities for
42+everyday use. Find someone who is willing to part with a point: a friend or a
43+stranger selling address space via smart contract. Once they’ve sent the address
44+space, you can access it using our Bridge software, or any other interface for
45+the Ethereum blockchain.
46+
47+If you bought address space from Tlon, then you should have have received a .zip
48+file that contains an Ethereum address and cryptographic secrets in
49+the form of a PDF.
50+
51+Your ownership PDF contains two secrets that must be kept safe.""
52+
53+- *Master Ticket*: This is a master key that allows you to manage every aspect of
54+ your address.
55+
56+- *Ownership Seed BIP39 Mnemonic*: The master ticket encoded as a BIP39 mnemonic
57+ for compatibility with most Ethereum wallet software, including our own *Bridge*
58+ client.
59+
60+;=
61+ ;h3
62+ ;div(id "bridge"): Using Bridge
63+ ==
64+==
65+
66+Bridge is client that we built for accessing and managing your Urbit identities.
67+Like Wallet Generator, Bridge comes in the form of an offline HTML application
68+that can be run in Firefox on all platforms, and also in Chrome if you’re using
69+a Mac.
70+
71+Importantly, Bridge also automates the process of generating the key-file that
72+you will need a single time to boot your ship on the Arvo network. Once a ship
73+is booted, it isn’t booted again. It stays booted forever.
74+
75+Download bridge [here](https://github.com/urbit/bridge/releases). It runs in
76+your browser contains instructions to get the key that you need to boot your
77+urbit. We recommend using the "BIP39 Mnemonic" method to access your wallet.
78+
79+
80+;=
81+ ;h3
82+ ;div(id "arvo"): Installing Arvo
83+ ==
84+==
85+
86+Now you’re ready to install the Arvo software. You’re almost there!
87+
88+Arvo can only run on a Unix-like operating system -- Ubuntu,
89+Fedora, macOS, and FreeBSD all work well. If you’re using Windows, you’ll need
90+to get one of the aforementioned systems. Don’t worry: most of them are free.
91+
92+We have different installation instructions for different platforms. To install
93+Arvo, run the Bash commands that are listed for your operating system.
94+
95+On any platform, you can check your Arvo installation by running the `urbit`
96+command. Installation was successful if you get a block of output that begins
97+with the line below:
98+
99+```
100+Urbit: a personal server operating function
101+```
102+
103+##### MacOS
104+
105+We recommend using the Homebrew package manager to install Arvo on MacOS.
106+
107+```
108+#Bash
109+
110+brew update
111+brew install autoconf automake cmake gcc git gmp libsigsegv libtool meson ninja pkg-config python2 openssl re2c
112+git clone https://github.com/urbit/urbit
113+cd urbit
114+./scripts/bootstrap
115+./scripts/build
116+sudo ninja -C ./build/ meson-install
117+urbit
118+```
119+
120+##### Ubuntu or Debian
121+
122+```
123+# Bash
124+
125+sudo apt-get update
126+sudo apt-get install autoconf automake cmake exuberant-ctags g++ git libcurl4-gnutls-dev libgmp3-dev libncurses5-dev libsigsegv-dev libssl-dev libtool make openssl pkg-config python python3 python3-pip ragel re2c zlib1g-dev
127+sudo -H pip3 install --upgrade pip
128+sudo -H pip3 install meson==0.29
129+
130+# we need ninja 1.5.1
131+# 'apt-get install ninja-build' gives us 0.1.3
132+# 'apt-get install ninja-build' gives us 1.3.4
133+#
134+git clone git://github.com/ninja-build/ninja.git
135+pushd ninja
136+ git checkout release
137+ ./configure.py --bootstrap
138+ sudo cp ./ninja /usr/local/bin
139+popd
140+
141+
142+git clone https://github.com/urbit/urbit
143+cd urbit
144+./scripts/bootstrap
145+./scripts/build
146+sudo ninja -C ./build/ install
147+urbit
148+```
149+
150+##### Fedora
151+
152+```
153+# Bash
154+
155+sudo yum upgrade
156+sudo yum install autoconf automake cmake ctags gcc gcc-c++ git gmp-devel libcurl-devel libsigsegv-devel libtool ncurses-devel ninja-build openssl openssl-devel pkgconfig python2 python3 ragel re2c wget
157+
158+# meson requires python 3.5; RHEL supplies wrong version
159+pushd /usr/src
160+ sudo wget https://www.python.org/ftp/python/3.5.5/Python-3.5.5.tgz
161+ sudo tar xzf Python-3.5.5.tgz
162+ cd Python-3.5.5
163+ sudo ./configure --enable--optimizations
164+ sudo make altinstall
165+ which python3.5
166+ cd /usr/local/bin
167+ sudo ln -s python3.5 python3
168+ hash python3
169+popd
170+
171+curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
172+sudo /usr/local/bin/python3 get-pip.py
173+# downgrade meson to avoid dependencies that redhat can't meet
174+sudo -H /usr/local/bin/pip3 install meson==0.29
175+
176+
177+git clone git://github.com/ninja-build/ninja.git && cd ninja
178+git checkout release
179+./configure.py --boostrap
180+sudo cp ./ninja /usr/local/bin
181+
182+git clone https://github.com/urbit/urbit
183+cd urbit
184+./scripts/bootstrap
185+./scripts/build
186+sudo /usr/local/bin/ninja -C ./build/ install
187+urbit
188+```
189+
190+##### Arch Linux
191+
192+```
193+# Bash
194+
195+sudo pacman -Syu
196+sudo pacman -S autoconf automake cmake curl gcc git gmp libsigsegv libtool ncurses ninja openssl python ragel re2c
197+curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
198+sudo python3 get-pip.py
199+git clone https://github.com/urbit/urbit
200+cd urbit
201+./scripts/bootstrap
202+./scripts/build
203+sudo ninja -C ./build/ meson-install
204+urbit
205+```
206+
207+If you just want to use a fake ship for development purposes, you can now use
208+the command of the scheme below to boot a fake `~zod`.
209+
210+```
211+urbit -F zod -A /path/to/arvo -s -c zod -S
212+```
213+
214+If you want to get on the Arvo network with your point, then continue to the
215+next section.
216+
217+;=
218+ ;h3
219+ ;div(id "boot"): Booting Your Urbit
220+ ==
221+==
222+
223+Now the rubber meets the road. You’ll be booting your ship with the key-file
224+that you downloaded from bridge.
225+
226+##### Step 1: Find Your Point's Name
227+
228+This will look something like `~lodleb-ritrul`. You can see the name of your
229+point(s) when you log into your wallet using the Bridge client.
230+
231+;img@"media.urbit.org/site/bridge-0.png"(width "100%");
232+
233+##### Step 2: Find the path to your key-file
234+
235+Find the absolute path to the key-file that you downloaded from Bridge. Copy it.
236+
237+##### Step 3: Run the boot command
238+
239+Type `cd` in your terminal to return to your home directory. If you want to
240+store your ship somewhere besides your home directory, change the terminal’s
241+working directory to the desired directory.
242+
243+Run the command below, except with `~sample-planet` replaced by the name of your
244+Urbit identity, and `path/to/my-planet.key` replaced with the path to your
245+key-file:
246+
247+```
248+urbit -w ~sample-planet -k path/to/my-planet.key
249+```
250+
251+This will create a directory called `sample-planet/` and begin building your
252+ship. It may take a few minutes.
253+
254+When your ship is finished booting, you will see the `~sample-planet:dojo>`
255+prompt. At that point, you should permanently erase your key-file from your
256+machine.
257+
258+;=
259+ ;h3
260+ ;div(id "operation"): Basic Operations
261+ ==
262+==
263+
264+Welcome to your urbit! There's a few things you should do to become oriented.
265+
266+##### Dojo
267+
268+Let’s try out the Dojo, the Arvo command line and Hoon REPL:
269+
270+```
271+~sample-planet:dojo> (add 2 2)
272+```
273+
274+Should produce:
275+
276+```
277+> (add 2 2)
278+4
279+```
280+
281+Good.
282+
283+##### Mounting
284+
285+Clay, the Arvo filesystem, isn't mounted to Unix by default. Switch to the Dojo
286+prompt and run:
287+
288+```
289+~sample-planet:dojo> |mount %
290+```
291+
292+This should produce:
293+```
294+> |mount %
295+>=
296+```
297+
298+which indicates that the command was processed.
299+
300+`|mount %` will cause a `home/` directory to appear inside your _pier_ folder in
301+Unix. Changes to these files are automatically synced into your ship.
302+
303+
304+##### Talk
305+
306+Use `ctrl-x` to toggle between the Dojo and the Talk prompts.
307+
308+While on the Talk prompt, let’s join the main Urbit chat channel, `/urbit-meta`:
309+
310+```
311+~sample-planet:talk[] ;join /urbit-meta
312+```
313+
314+Talk is stateful, so your ship will download a backlog. `/urbit-meta` is the
315+place to ask questions, get help, talk about anything Urbit-related, and meet
316+everyone on here.
317+
318+##### Shutting Down and Restarting
319+
320+You can turn your ship off with `ctrl-d` from the Talk or Dojo prompts.
321+
322+To restart your ship, simply pass the name of your pier:
323+
324+```
325+$ urbit some-planet
326+```
327+
328+##### Landscape
329+
330+Your ship is also accessible through its own web interface. Through the web
331+interface you’ll have access to our chat and message boards, the two components
332+of our "Landscape" feature. This is a user-friendly way to chat with Talk on the
333+Arvo network and access and materials you’ve published on your ship. If You're
334+running Arvo locally on your own machine, try opening `http://localhost/` in
335+your browser.
336+
337+Or if you're running your ship on a cloud instance with a static IP address
338+(which we recommend!), something like 212.131.240.20, assuming you've opened up
339+the HTTP port that Arvo uses -- the default is port 80. So
340+`http://212.131.240.20:80/~~/` would go into your browser's URL bar.
341+
342+This way, if you keep your ship running securely in the cloud (usually in a
343+screen or tmux session), you can always access your ships's web interface in any
344+browser on any device, so long as you have your password on hand.
345+
346+The `/~~/` in the URL will redirect you to a login page, which was generated by
347+Tree, the basic Arvo web interface. The page will tell you to run the +code
348+generator (an Arvo shell script) in your Dojo to get your password. Copy and
349+paste that into your password input box and hit Enter. After loading, you'll
350+find yourself redirected to your home page, authenticated, where you can then
351+use the navigation bar at the top of the page to visit your Talk web interface
352+and static files.
353+
354+When you use the web interface, your urbit is automatically subscribed to
355+`/urbit-meta` and Fora, our message-board system.
using/landscape.udon → getting-started/landscape.udonrenamed

The content is the same.

using/landscape/desktop.udon → getting-started/landscape/desktop.udonrenamed

The content is the same.

using/landscape/mobile.udon → getting-started/landscape/mobile.udonrenamed

The content is the same.

introduction/whyurbit.udonnew file+78
@@ -0,0 +1,78 @@
1+:- :~ title/'Why Urbit Uses a Blockchain'
2+ ==
3+;>
4+
5+# Why Urbit Uses a Blockchain
6+
7+Urbit is a network of personal servers. These personal servers, called ships,
8+are stateful, deterministic virtual machines that run on Unix boxes, usually in
9+the cloud.
10+
11+One of the core innovations of Urbit is its system of consistent and trustable
12+online identities. So every ship has an associated secure identity, called a
13+point, that it needs to connect to the network. Your point is your name, your
14+network address, and your cryptographic signature. Apoint can be thought of
15+unified digital identity that performs the functions of a Google login, an IP
16+address, a domain name, and a PGP keypair.
17+
18+There are a limited number of possible points, and such scarcity gives points
19+value. This means that bad actors -- spammers, scammers, and malware-spreaders
20+-- can be made economically unviable. Points can assign reputation information
21+to other points, and can use this information to decide who to treat as a
22+trusted peer.
23+
24+Having one identity for your digital life also means that all the services that
25+you trust recognize you. You no longer need to worry about managing dozens of
26+different logins, or about identity theft. When you’re on a ship, you’re always
27+verified on the Urbit network thanks to its associated identity.
28+
29+But we need a way to secure these identities. To that end, we have built a
30+public-key infrastructure (PKI) called Azimuth on the Ethereum blockchain.
31+Azimuth acts as a decentralized ledger for points: it determines which Ethereum
32+addresses own which points. It’s separate from and parallel to the Urbit
33+network.
34+
35+In theory, our ecosystem doesn’t need a blockchain, because Urbit identities are
36+more like real estate than currency: they change hands slowly. A low-friction,
37+zero-trust solution to the double-spend problem isn’t an economic necessity. So
38+we could have the Urbit network run its own key-signing system. But, since Urbit
39+identities are valuable, you don’t want to put them in an self-hosted PKI that
40+isn’t generally recognized as secure.
41+
42+Moving the Urbit land registry to Ethereum is an easy and obvious solution to
43+this problem. We chose Ethereum over Bitcoin because the former is built for
44+computation and the latter is not. We need a computational blockchain to enforce
45+the specific rules of the Urbit identity registry.
46+
47+
48+
49+# The Urbit HD Wallet
50+
51+The Urbit HD Wallet's derivation paths also have this hierarchical structure, so that keys with different powers can be physically separated. A "master ticket" can re-derive the entire wallet in case of loss. The encryption and authentication keys that Urbit points use to sign messages within the network are also derived from the wallet.
52+
53+The Urbit HD Wallet is not one key-pair, but a system of related key-pairs that each have distinct powers, from setting networking keys for communicating in the Urbit network to transferring ownership of your Azimuth address space (your point).
54+
55+Urbit HD wallets are composed of the following items, which are each assigned to their own individual Ethereum key-pairs.
56+Master Ticket
57+Think of your master ticket like a very high value password. The master ticket is the secret code from which all of your other keys 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.
58+Ownership Address
59+An ownership address has all rights over the assets deeded to it. These rights are on-chain actions described and implemented in the Constitution, Urbit’s Ethereum smart contracts.
60+Proxies
61+Proxy addresses allow you to execute non-ownership related actions like spawning child points, voting, and setting networking keys without jeopardizing the keys you've designated with ownership rights. Setting proxy rights is optional, but it is recommended for on-chain actions you will execute more frequently.
62+Management Proxy
63+Can configure or set Urbit networking keys and conduct sponsorship related operations.
64+Voting Proxy
65+Galaxies only. Galaxies are the part of the galactic senate, and this means they can cast votes on new proposals including changes to the Constitution.
66+Spawn Proxy
67+For stars and galaxies only. Can create new child points.
68+
69+
70+Most Ethereum tokens use the ERC-20 standard for smart contracts. Azimuth points are, however, essentially different from most Ethereum tokens, due to points not being fungible. Since any two stars will handle social-networking realities in a different way, they will carry a different reputation. Points are to houses as tokens are to gold.
71+
72+The ERC-721 standard, having been made specifically to provide a smart-contract interface for non-fungible assets, serves our needs well. This is the standard that we use for deeding Azimuth points.
73+
74+Points, and all of their blockchain operations, are governed by the Urbit Constitution. The Constitution is an Ethereum smart-contract that governs point state and the ownership, spawn, management, and voting rights affiliated with your points.
75+
76+For the technical implementation details of both the ERC-721 protocol and Urbit-specific contract details, take a look at the Constitution section of our documentation. [hyperlink]
77+
78+If you don’t understand the contents of this page, that’s ok. We know that the Urbit PKI isn’t the easiest thing to understand, so we made a page. Our [get started with Azimuth] section will walk you through the entire process of assigning your points to Ethereum addresses.
using/arvo/admin.udon → learn/arvo/admin.udonrenamed

The content is the same.

using/arvo/filesystem.udon → learn/arvo/filesystem.udonrenamed

The content is the same.

using/arvo/layout.udon → learn/arvo/layout.udonrenamed

The content is the same.

using/arvo/messaging.udon → learn/arvo/messaging.udonrenamed

The content is the same.

using/arvo/publishing.udon → learn/arvo/publishing.udonrenamed

The content is the same.

using/arvo/shell.udon → learn/arvo/shell.udonrenamed

The content is the same.

learn/azimuth/introduction/blockchain.udon+46−2
@@ -1,5 +1,49 @@
1+:- :~ title/'Why Urbit Uses a Blockchain'
2+ ==
1;>
3;>
2
4
3−# hi
5+# Why Urbit Uses a Blockchain
4
6
5−boink
7+Arvo is a network of personal servers. These personal servers, called ships, are
8+stateful, deterministic virtual machines that run on top of any Unix box.
9+
10+Every Arvo ship has an associated secure identity, called a point, that it needs
11+to connect to the network. Your point is your name and your network address.
12+Each point has associated authentication and encryption keys for networking.
13+Think of a point as an IP address, a domain name, and a PGP key-pair.
14+
15+There are a limited number of points and, as you might expect, scarcity gives
16+points value. This means that bad actors -- spammers, scammers, and
17+malware-spreaders -- can be made economically unviable. Points being
18+immutable allows for reputation systems to be built on top,
19+keeping the network friendly and giving users information to help them decide
20+who to treat as a trusted peer.
21+
22+At the user level, having one identity for your digital life means that all the
23+services that you trust recognize you. You no longer need to worry about
24+managing dozens of different logins. When you're using Arvo, everything you do
25+is \"verified" in the sense that it links back to your point.
26+
27+But wait! We need some way to secure these identities. To that end, we have
28+built a public-key infrastructure (PKI) called _Azimuth_ on the Ethereum
29+blockchain. Azimuth acts as a decentralized ledger for points: it determines
30+which Ethereum addresses own which points. It's separate from and parallel to
31+the Arvo network.
32+
33+In theory, our ecosystem doesn't need a blockchain, because Urbit identities are
34+more like real estate than currency: they change hands slowly. A low-friction,
35+zero-trust solution to the double-spend problem isn't an economic necessity for
36+transactions such as ours. So we could have the Arvo network run its own
37+key-signing system. But, since Azimuth identities are valuable, you don't want
38+to put them in an self-hosted PKI that isn't generally recognized as secure.
39+Arvo is still young, we'd prefer to use an existing system for people to secure
40+their property.
41+
42+Moving the Urbit land registry to Ethereum is an easy and obvious solution to
43+this problem. We chose Ethereum over Bitcoin because the former is built for
44+computation Landscape the latter is not. We need a computational blockchain to
45+enforce the specific rules of the Urbit identity registry.
46+
47+For more background on the decision to use the Ethereum blockchain, check out
48+[these](urbit.org/essays/urbit-and-the-blockchain)
49+[two](urbit.org/updates/2017.9.20-bootstrapping-urbit-from-ethereum) posts.
learn/azimuth/introduction/wallet.udon+74−2
@@ -1,5 +1,77 @@
1+:- :~ title/'The Urbit HD Wallet'
2+ ==
1;>
3;>
2
4
3−# hi
5+# The Urbit HD Wallet
4
6
5−boink
7+Owners of Azimuth _points_ need safeguards that allow for the use of Urbit
8+without jeopardizing cryptographic ownership of their assets. Toward this end,
9+we created the *Urbit Hierarchical Deterministic (HD) Wallet* for the storage of
10+points. The Urbit HD Wallet is not one key-pair, but a system of related
11+key-pairs that each have distinct powers, from setting networking keys for
12+communicating in the Arvo network to transferring ownership of points.
13+
14+The Urbit HD Wallet's derivation paths have a hierarchical structure, so
15+that keys with different powers can be physically separated. A \"master ticket"
16+can re-derive the entire wallet in case of loss. The encryption and
17+authentication keys that points ships use to sign messages within the network
18+are also derived from the wallet.
19+
20+Urbit HD wallets are composed of the following items, which are each assigned to
21+their own individual Ethereum key-pairs.
22+
23+#### Master Ticket
24+
25+Think of your master ticket like a very high-value password. The master ticket
26+is the secret code from which all of your other keys are derived. Technically,
27+your master ticket is seed entropy. You should never share it with anyone, and
28+store it very securely. This ticket can derive all of your other keys: your
29+ownership key and all of the related proxies.
30+
31+#### Ownership Address
32+
33+An ownership address has all rights over the assets deeded to it. These rights
34+are on-chain actions described and implemented in the Ecliptic, Azimuth's suite
35+of governing smart-contracts.
36+
37+#### Proxies
38+
39+Proxy addresses allow you to execute non-ownership related actions like spawning
40+child points, voting, and setting networking keys without jeopardizing the keys
41+you've designated with ownership rights. Setting proxy rights is optional, but
42+it is recommended for on-chain actions you will execute more frequently.
43+
44+- *Management Proxy*
45+
46+ Can configure or set Arvo networking keys and conduct sponsorship related
47+ operations.
48+
49+- *Voting Proxy*
50+
51+ Galaxies only. Galaxies are the part of the galactic senate, and this means
52+ they can cast votes on new proposals including changes to the Ecliptic.
53+
54+- *Spawn Proxy*
55+
56+ For stars and galaxies only. Can create new child points.
57+
58+
59+;img@"https://media.urbit.org/fora/proposals/UP-8.jpg";
60+
61+
62+Most Ethereum tokens use the ERC-20 standard for smart contracts. Azimuth points
63+are, however, essentially different from most Ethereum tokens, due to points not
64+being fungible. Since any two stars will handle social-networking realities in a
65+different way, they will carry a different reputation. Points are to houses as
66+tokens are to gold.
67+
68+The ERC-721 standard, having been made specifically to provide a smart-contract
69+interface for non-fungible assets, serves our needs well. This is the standard
70+that we use for deeding Azimuth points.
71+
72+Points, and all of their blockchain operations, are governed by the Ecliptic.
73+The Ecliptic is an Ethereum smart-contract that governs point state and the
74+ownership, spawn, management, and voting rights affiliated with your points.
75+
76+For the technical implementation details Azimuth, take a look at the
77+[Github repo](https://github.com/urbit/azimuth).
using/arvo.udondeleted−8
@@ -1,8 +0,0 @@
1−:- :~ title/'Arvo'
2− ==
3−;>
4−
5−# Using Arvo
6−
7−[PLACEHOLDER]
8−
using/installation.udondeleted−8
@@ -1,8 +0,0 @@
1−:- :~ title/'Installation'
2− ==
3−;>
4−
5−# Installation
6−
7−[PLACEHOLDER]
8−
using/installation/get-a-planet.udondeleted

No changes to the content.

using/installation/install.udondeleted−399
@@ -1,399 +0,0 @@
1−:- :~ navhome/'/docs/'
2− navuptwo/'true'
3− next/'true'
4− sort/'1'
5− title/'Install'
6− ==
7−;>
8−
9−# Install
10−
11−Installing Urbit is easy. It just takes a few minutes to get an
12−instance up and running on the network.
13−
14−Urbit is designed to run on any Unix box with an internet connection.
15−macOS, Ubuntu/Debian, FreeBSD, and Fedora all work well.
16−
17−If you run into trouble installing Urbit, please let us know via
18−email, [questions@urbit.org](mailto:questions@urbit.org), or on the
19−forum: [fora.urbit.org](https://fora.urbit.org). You can also chat
20−with us at [urbit.org/stream](https://urbit.org/stream).
21−
22−> Urbit is alpha software. It’s not yet completely stable, its crypto
23− hasn’t been audited, and there are plenty of rough edges. Urbit is
24− lots of fun to play with, but not quite ready for your important or
25− sensitive data.
26−
27−## Build from source
28−
29−### Dependencies
30−
31−Urbit depends on:
32−
33−```
34−autoconf
35−automake
36−C compiler (gcc or clang)
37−cmake
38−curses
39−git
40−gmp
41−libcurl
42−libsigsegv
43−libtool
44−libuv
45−meson
46−ninja
47−openssl
48−pkg-config
49−python2
50−ragel
51−re2c
52−```
53−
54−### Instructions
55−
56−First, you'll install the required dependencies to build Urbit from source.
57−Then, you'll clone the Urbit source code, hosted on Github. Next, you'll
58−bootstrap the Git submodules needed for the build. Lastly, you'll run a
59−[Meson](https://github.com/mesonbuild/meson) build on the Urbit source to create
60−your Urbit binary for your host operating system. Then, finally, you'll be able
61−to boot your urbit.
62−
63−For your host OS platform and relevant package installer, run the respective Bash shell commands listed below in a fresh terminal window to get Urbit installed:
64−
65−> For those new to the command line, see:
66− - Mac: [Introduction to the Mac OS X Command Line](http://blog.teamtreehouse.com/introduction-to-the-mac-os-x-command-line)
67− - Linux: [An Introduction to the Linux Terminal](https://www.digitalocean.com/community/tutorials/an-introduction-to-the-linux-terminal)
68−
69−#### macOS
70−
71−##### Homebrew
72−
73−> [Homebrew installation guide](https://treehouse.github.io/installation-guides/mac/homebrew)
74−
75−```
76−# Bash
77−
78−brew update
79−brew install autoconf automake cmake gcc git gmp libsigsegv libtool meson ninja pkg-config python2 openssl re2c
80−git clone https://github.com/urbit/urbit
81−cd urbit
82−./scripts/bootstrap
83−./scripts/build
84−sudo ninja -C ./build/ meson-install
85−urbit
86−```
87−
88−
89−##### Macports
90−
91−```
92−# Bash
93−
94−sudo port selfupdate
95−sudo port install autoconf automake cmake gmp libsigsegv meson openssl
96−git clone https://github.com/urbit/urbit
97−cd urbit
98−./scripts/bootstrap
99−./scripts/build
100−sudo ninja -C ./build/ meson-install
101−urbit
102−```
103−
104−#### Linux
105−
106−##### Linuxbrew
107−
108−> [Linuxbrew](http://linuxbrew.sh/)
109−
110−```
111−# Bash
112−
113−brew update
114−brew install autoconf automake cmake gcc git gmp libsigsegv libtool meson ninja pkg-config python2 openssl re2c
115−git clone https://github.com/urbit/urbit
116−cd urbit
117−./scripts/bootstrap
118−./scripts/build
119−sudo env "PATH=$PATH" ninja -C ./build/ install
120−urbit
121−```
122−
123−N.B. if the step `./scripts/build` fails when attempting to
124−build libh2o, it could be caused by a bug in version 0.46 of meson (the bug
125−is not present in 0.45 and is fixed in 0.47).
126−
127−If the command `meson -v` returns a version starting with 0.46, try these steps:
128−
129−
130−```
131−brew uninstall meson
132−pip install meson=0.47.0
133−rm -rf build
134−build/scripts
135−```
136−
137−If that is successful, resume the above instructions after the `build` step.
138−
139−##### Ubuntu or Debian
140−
141−```
142−# Bash
143−
144−sudo apt-get update
145−sudo apt-get install autoconf automake cmake exuberant-ctags g++ git libcurl4-gnutls-dev libgmp3-dev libncurses5-dev libsigsegv-dev libssl-dev libtool make openssl pkg-config python python3 python3-pip ragel re2c zlib1g-dev
146−sudo -H pip3 install --upgrade pip
147−sudo -H pip3 install meson==0.29
148−
149−# we need ninja 1.5.1
150−# 'apt-get install ninja-build' gives us 0.1.3
151−# 'apt-get install ninja-build' gives us 1.3.4
152−#
153−git clone git://github.com/ninja-build/ninja.git
154−pushd ninja
155−git checkout release
156−./configure.py --bootstrap
157−sudo cp ./ninja /usr/local/bin
158−popd
159−
160−git clone https://github.com/urbit/urbit
161−cd urbit
162−./scripts/bootstrap
163−./scripts/build
164−sudo ninja -C ./build/ install
165−urbit
166−```
167−
168−```
169−(tested on Google Cloud Platform
170− * Ubuntu Trusty Linux (14.04 LTS)
171− * Ubuntu Xenial Linux (16.04 LTS)
172− * Debian 8 (Jessie)
173− * Debian 9 (Stretch)
174−on 6 July 2018)
175−```
176−
177−##### Fedora / Redhat
178−
179−```
180−# Bash
181−
182−sudo yum upgrade
183−sudo yum install autoconf automake cmake ctags gcc gcc-c++ git gmp-devel libcurl-devel libsigsegv-devel libtool ncurses-devel ninja-build openssl openssl-devel pkgconfig python2 python3 ragel re2c wget
184−
185−# meson requires python 3.5; RHEL supplies wrong version
186−pushd /usr/src
187−sudo wget https://www.python.org/ftp/python/3.5.5/Python-3.5.5.tgz
188−sudo tar xzf Python-3.5.5.tgz
189−cd Python-3.5.5
190−sudo ./configure --enable--optimizations
191−sudo make altinstall
192−which python3.5
193−cd /usr/local/bin
194−sudo ln -s python3.5 python3
195−hash python3
196−popd
197−
198−curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
199−sudo /usr/local/bin/python3 get-pip.py
200−# downgrade meson to avoid dependencies that redhat can't meet
201−sudo -H /usr/local/bin/pip3 install meson==0.29
202−
203−git clone git://github.com/ninja-build/ninja.git && cd ninja
204−git checkout release
205−./configure.py --boostrap
206−sudo cp ./ninja /usr/local/bin
207−
208−git clone https://github.com/urbit/urbit
209−cd urbit
210−./scripts/bootstrap
211−./scripts/build
212−sudo /usr/local/bin/ninja -C ./build/ install
213−urbit
214−```
215−
216−```
217−(tested on Google Cloud Platform
218− * Red Hat Enterprise Linux 6.1
219− * Red Hat Enterprise Linux 7.1
220−on 5 July 2018)
221−```
222−
223−##### FreeBSD
224−
225−```
226−# Bash or Sh
227−
228−pkg upgrade
229−sudo pkg install autoconf automake cmake curl gcc git gmake gmp libsigsegv libtool python python3 ragel re2c ncurses openssl gmp
230−curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
231−sudo python3 get-pip.py
232−sudo -H pip install --upgrade pip
233−sudo -H pip install meson
234−sudo pkg install ninja
235−git clone https://github.com/urbit/urbit
236−cd urbit
237−sh ./scripts/bootstrap
238−sh ./scripts/build
239−sudo ninja -C ./build/ meson-install
240−urbit
241−```
242−
243−```
244−(tested on Google Cloud Platform
245− * FreeBSD 10.4
246− * FreeBSD 11.2
247−on 4 July 2018)
248−```
249−
250−##### Arch
251−
252−```
253−# Bash
254−
255−sudo pacman -Syu
256−sudo pacman -S autoconf automake cmake curl gcc git gmp libsigsegv libtool ncurses ninja openssl python ragel re2c
257−curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
258−sudo python3 get-pip.py
259−git clone https://github.com/urbit/urbit
260−cd urbit
261−./scripts/bootstrap
262−./scripts/build
263−sudo ninja -C ./build/ meson-install
264−urbit
265−```
266−
267−```
268−(tested on Amazon EC2 using Amazon Machine Image
269− * Release 2018.06.15 / ebs hvm x86_64 lts ( ami-a40a47db via https://www.uplinklabs.net/projects/arch-linux-on-ec2/ )
270−on 6 July 2018)
271−```
272−
273−##### AWS
274−
275−```
276−# Bash
277−
278−sudo yum update
279−sudo yum install autoconf automake cmake ctags gcc gcc-c++ git gmp-devel libcurl-devel libsigsegv-devel libtool ncurses-devel openssl openssl-devel pkgconfig python2 python3 python3-pip ragel re2c wget git
280−sudo env "PATH=$PATH" pip3 install --upgrade pip
281−sudo env "PATH=$PATH" pip3 install meson
282−
283−# we need libsigsegv
284−#
285−
286−wget http://dl.fedoraproject.org/pub/fedora/linux/releases/25/Everything/x86_64/os/Packages/l/libsigsegv-2.10-10.fc24.x86_64.rpm
287−wget http://dl.fedoraproject.org/pub/fedora/linux/releases/25/Everything/x86_64/os/Packages/l/libsigsegv-devel-2.10-10.fc24.x86_64.rpm
288−sudo yum localinstall libsigsegv-2.10-10.fc24.x86_64.rpm
289−sudo yum localinstall libsigsegv-devel-2.10-10.fc24.x86_64.rpm
290−
291−# we need re2c
292−#
293−wget https://rpmfind.net/linux/dag/redhat/el6/en/x86_64/dag/RPMS/re2c-0.13.5-1.el6.rf.x86_64.rpm
294−sudo yum localinstall re2c-0.13.5-1.el6.rf.x86_64.rpm
295−
296−git clone git://github.com/ninja-build/ninja.git
297−pushd ninja
298−git checkout release
299−./configure.py --bootstrap
300−sudo cp ./ninja /usr/local/bin
301−popd
302−
303−git clone https://github.com/urbit/urbit
304−cd urbit
305−./scripts/bootstrap
306−./scripts/build
307−sudo env "PATH=$PATH" ninja -C ./build/ install
308−
309−urbit
310−```
311−
312−```
313−(tested on Amazon EC2 using Amazon Machine Image
314− * Amazon Linux 2 AMI (HVM), SSD Volume Type - ami-b70554c8
315−on 6 July 2018)
316−```
317−
318−### Test for successful installation
319−
320−After running your installed `urbit` command, check to see if the following output was printed:
321−
322−```
323−$ urbit
324−Urbit: a personal server operating function
325−https://urbit.org
326−Version 0.6.0
327−
328−Usage: urbit [options...] ship_name
329−where ship_name is a @p phonetic representation of an urbit address
330−without the leading '~', and options is some subset of the following:
331−
332−-A dir Use dir for initial galaxy sync
333−-b Batch create
334−-B pill Bootstrap from this pill
335−-c pier Create a new urbit in pier/
336−-d Daemon mode
337−-D Recompute from events
338−-F Fake keys; also disables networking
339−-f Fuzz testing
340−-g Set GC flag
341−-H domain Set ames bootstrap domain (default urbit.org)
342−-I galaxy Start as ~galaxy
343−-k stage Start at Hoon kernel version stage
344−-l port Initial peer port
345−-M Memory madness
346−-n host Set unix hostname
347−-N Enable networking in fake mode (-F)
348−-p ames_port Set the HTTP port to bind to
349−-P Profiling
350−-q Quiet
351−-r host Initial peer address
352−-R Report urbit build info
353−-s Pill URL from arvo git hash
354−-t ticket Use ~ticket automatically
355−-u url URL from which to download pill
356−-v Verbose
357−-w name Immediately upgrade to ~name
358−-x Exit immediately
359−-Xwtf Skip last event
360−
361−Development Usage:
362− To create a development ship, use a fakezod:
363− urbit -FI zod -A /path/to/arvo/folder -B /path/to/pill -c zod
364−
365− For more information about developing on urbit, see:
366− https://github.com/urbit/urbit/blob/master/CONTRIBUTING.md
367−
368−Simple Usage:
369− urbit -c <mycomet> to create a comet (anonymous urbit)
370− urbit -w <myplanet> -t <myticket> if you have a ticket
371− urbit <myplanet or mycomet> to restart an existing urbit
372−```
373−
374−If so, then you're ready to boot your urbit. If not, check that you entered each Bash command correctly for your host OS platform. If you're still experiencing issues, feel free to drop into [Urbit chat](https://urbit.org/stream) for troubleshooting help.
375−
376−### Boot your urbit
377−
378−You've now installed the Urbit binary. If you're running Urbit on a normal modern PC or Mac, or
379−on a large cloud instance, move onto the next [setup](../setup/) section.
380−
381−If you're running Urbit in the cloud on a small instance, read
382−the below section, as you may need to additionally configure swap space, then continue.
383−
384−### (Set up swap)
385−
386−Urbit wants to map 2GB of memory when it boots up. We won’t necessarily
387−use all this memory, we just want to see it. On a normal modern PC or Mac,
388−or on a large cloud virtual machine, this is not an issue. On some small
389−cloud virtual machines (Amazon or Digital Ocean), the default memory
390−configuration is smaller than this, and you need to manually configure a
391−swapfile.
392−
393−Digital Ocean has a post on adding swap
394−[here](https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-16-04).
395−For Amazon there’s a StackOverflow thread
396−[here](http://stackoverflow.com/questions/17173972/how-do-you-add-swap-to-an-ec2-instance).
397−
398−Don’t spend a lot of time tweaking these settings; the simplest
399−thing is fine.
using/installation/network-keys.udondeleted

No changes to the content.

using/installation/setup.udondeleted−253
@@ -1,253 +0,0 @@
1−:- :~ navhome/'/docs/'
2− navuptwo/'true'
3− next/'true'
4− sort/'2'
5− title/'Setup'
6− ==
7−;>
8−
9−# Getting started
10−
11−On disk, your urbit - also referred to as your _ship_ - is an append-only log
12−and a checkpoint. Or, in simpler terms, a directory where we keep your urbit’s
13−state. We call this a _pier_.
14−
15−> Note: we use the word 'urbit' (lowercase 'u') to indicate a particular ship, as opposed to 'Urbit' (capital 'u') to refer to the whole software stack and/or network in general.
16−
17−## Initialize
18−
19−To create a ship, we need an identity. This identity is both a network
20−address and a memorable name.
21−
22−You are probably creating one of two kinds of ships: a 32-bit _planet_
23−or a 128-bit _comet_. For a quick terminology guide and high-level
24−refresher, refer to this [handy reference sheet](../../reference/glossary/).
25−
26−If you have an Urbit invitation, you'll have a planet name and ticket like
27−`~sampel-palnet` and `~sampel-sompel-simpel-sampel`. To create your
28−pier:
29−
30−```
31−$ urbit -w sampel-palnet -t sampel-sompel-simpel-sampel
32−```
33−
34−This will create a directory (pier) `sampel-palnet/` and begin building your
35−ship. You can feel free to rename the directory, or append a `-c <piername>`
36−to the end of it to give it a custom name from the start:
37−
38−```
39−$ urbit -w sampel-palnet -t sampel-sompel-simpel-sampel -c myplanet
40−```
41−
42−Booting may take a few minutes. Note that your planet will begin as a
43−_comet_, a wild ship drifting through cyberspace. So don't be alarmed if it
44−doesn't have the name you expected -- all ships begin as such, at least for now.
45−This step exists because you need to communicate with the Urbit network to
46−authenticate your planet, and you need to have a ship of some sort to
47−communicate with the Urbit network.
48−
49−> If you are booting a star, the process is the same as above, with your
50− respective star name and ticket.
51− If you are booting a galaxy, see
52− [this Fora post](https://urbit.org/fora/posts/~2016.8.17..21.04.11..1450~/).
53−
54−If you do not have a ticket, you can still make a comet that stays as a comet.
55−Pick your own directory name, it doesn't matter:
56−
57−```
58−$ urbit -c mycomet
59−```
60−
61−This will create the directory `mycomet/` and generate a 128-bit
62−identity for your urbit. The identity of your comet will be random, but it
63−will look like `~lantug-fitsum-tinrum-fitnys--silwes-docnet-solteb-lopten` in
64−terms of length and structure.
65−
66−## Orientation
67−
68−Booting your urbit takes about ten minutes. After that, you should see a `dojo>`
69−prompt. Welcome!
70−
71−Note that "booting," in our usage, refers to starting a ship for the
72−first time; a ship is considered "booted" if it has connected to the network.
73−Its state is a pure function of its events, meaning that it has no concept of
74−shutting down. While you can end an Urbit process, that termination won't be
75−reflected in the state. When you start it up again, it will begin exactly where
76−it left off, as if nothing happened.
77−
78−Your ship is quite bare-bones by default. A few user-facing apps are running by
79−default: *Dojo*, our shell; *Talk*, our messaging app; *Clay*, our filesystem;
80−*Tree*, our web interface. Let's stroll through them.
81−
82−### Shell — Dojo
83−
84−The command prompt in front of you is a simple shell and Hoon REPL. Let's make
85−sure it works:
86−
87−```
88−~your-urbit:dojo> (add 2 2)
89−```
90−
91−Should produce:
92−
93−```
94−> (add 2 2)
95−4
96−```
97−
98−Good.
99−
100−### Filesystem — Clay
101−
102−Clay, the Urbit filesystem, isn't mounted to Unix by default. From the Dojo
103−prompt, run:
104−
105−```
106−~your-urbit:dojo> |mount %
107−```
108−
109−This should produce:
110−
111−```
112−> |mount %
113−>=
114−```
115−
116−which indicates that the command was processed.
117−
118−`|mount %` will cause a `home/` directory to appear inside your pier
119−folder in Unix. Changes to the contained files are automatically synced from
120−Unix into your ship, and vice versa.
121−
122−For more information on Tree, check out the [Clay](../filesystem) section.
123−
124−### Messaging — Talk
125−
126−Use `ctrl-x` to toggle your prompt. Let's join the main Urbit chat
127−channel, `/urbit-meta`:
128−
129−```
130−~your-urbit:talk[] ;join /urbit-meta
131−```
132−
133−Talk is stateful, so your urbit will download a backlog.
134−`/urbit-meta` is the place to ask questions, get help, talk about
135−anything Urbit-related, and meet everyone on here.
136−
137−For more information on the Dojo, check out the [Shell](../shell) section.
138−
139−### Web — Tree
140−
141−Your ship is also accessible through its own web interface. If you're
142−running Urbit locally on your own machine, try opening:
143−
144−```
145−http://localhost:8080/~~/
146−```
147−
148−in your favorite browser. The actual port that's being used depends
149−if other things (including other urbits) are running on port `8080` and
150−its succeeding ports when your when your ship was turned on. To see what port is
151−being used be a given ship, look for a message like
152−`http: live (insecure, public) on 8081` when you start it up.
153−
154−Or if you're running your ship on a cloud instance with a static IP
155−address (which we recommend!), something like `212.131.240.20`, assuming
156−you've opened up the HTTP/HTTPS ports that Urbit uses (`8080` and `8443`
157−by default), try opening:
158−
159−
160−```
161−http://212.131.240.20:8080/~~/
162−```
163−
164−This way, if you keep your ship running securely in the cloud (usually
165−in a [`screen`](https://www.gnu.org/software/screen/) or
166−[`tmux`](https://github.com/tmux/tmux/wiki) session), you can always
167−access your ship's web interface in any browser on any device, so long
168−as you have your password on hand.
169−
170−The `/~~/` in the URL will redirect you to a login page, which was
171−generated by Tree, the basic Urbit web interface. The page will tell
172−you to run the `+code` generator (an Urbit functional shell script) in
173−your Dojo to get your password. Copy and paste that into your password
174−input box and hit Enter. After loading, you'll find yourself redirected
175−to your home page, authenticated, where you can then use the navigation
176−bar at the top of the page to visit your Talk web interface and static
177−files.
178−
179−You can also access your ship through `https://your-urbit.urbit.org/~~/`. Note
180−that this latter approach is slower for the time being because we proxy over the
181−Urbit network, Ames, but a better, faster solution for this is in the works.
182−
183−For more information on Tree, check out the [Web](../web) section.
184−
185−
186−---
187−
188−
189−Here are a few other things you can do to get up and running:
190−
191−
192−### Discussion — Fora
193−
194−Fora is the place for long-form Urbit discussion, our take on the message
195−board. It's hosted on an Urbit and served over HTTP via [Eyre](../web), Urbit's
196−web server.
197−
198−Head on over to:
199−
200−```
201−https://fora.urbit.org/~~/
202−```
203−
204−Like on your own web interface, you'll be redirected to a login page and
205−prompted to run `+code` in your Dojo to retrieve your password and log
206−in.
207−
208−After loading, you'll get redirected to the Fora home page where you
209−can post and comment authenticated as your ship name. Like Talk, Fora
210−is a great place to ask questions, get help, chat about anything Urbit, and
211−see what's going on.
212−
213−### Docs
214−
215−We host our docs on `urbit.org`, but it's faster to view them locally
216−through your own ship's web interface. So we also host the docs on a
217−Clay desk on one of our `urbit.org` planets named `~ladnub-lorwyn`, which you
218−can merge and sync onto your live ship over the network.
219−
220−Run in your Dojo:
221−
222−```
223−~your-urbit:dojo> |sync %home ~ladnub-lorwyn %docs
224−```
225−
226−Depending on network traffic, this initial merge and sync could take
227−anywhere between thirty seconds to a few minutes.
228−
229−Upon a successful sync you'll see the output:
230−
231−```
232−sync succeeded from %docs on ~ladnub-lorwyn to %home
233−```
234−
235−If for some reason that doesn't work, head to the
236−[urbit/docs](https://github.com/urbit/docs) repo and follow the local
237−install steps.
238−
239−Otherwise, your docs are now live, and you can view them at:
240−
241−```
242−http://localhost:8080/~~/docs
243−```
244−
245−We'll update our planet's desk with new doc changes as they happen. You
246−should get sync updates automatically through Clay over Ames.
247−
248−## Learn more
249−
250−If you're eager to get started programming, you're ready to head over to
251−[the Hoon tutorial](../../tutorials/hoon-ch1/).
252−
253−To learn more about using the system, let's keep going: