on master help sign in
Merge pull request #193 from urbit/next-slim-IA-restructure

IA restructure as of ~2019.10.9

commit6c0514d1b37ad122a142b6a382420a6684b6af0a authorMatilde Park <matilde@tlon.io> dateThu 10 Oct 2019, 16:48 (7 years ago) parent490e867c592f6b
17 files changed+313−284
content/contributing.md−114 content/faq.md+7−5 content/governance.md+21 content/understanding-urbit/project-history.md+1−1 content/using/_index.md+5 content/develop.md → content/using/develop.md+34−4 content/install.md → content/using/install.md+5−3 content/using/operations/_index.md+7 content/using/operations/creating-a-comet.md+29 content/using/operations/stars-and-galaxies.md+41 content/using/operations/using-bridge.md+64 content/operations.md → content/using/operations/using-your-ship.md+31−117 content/what-is-urbit.md−10 templates/list.html+36 templates/page.html+6−3 templates/page_indiced.html+8−3 templates/partials/footer.html+18−24
content/contributing.mddeleted−114
@@ -1,114 +0,0 @@
1−+++
2−title = "Contributing"
3−template = "page_indiced.html"
4−+++
5−
6−## How can I contribute? {#how}
7−
8−The Urbit project is a global community of developers, users, and fans. If you’re interested in getting involved, there’s space for you; you don’t have to be a developer to be a part of the project.
9−
10−### Developer contributions
11−
12−If you *are* a developer, then you’ll want to get started either in core development or application development. For core developers, the Arvo operating system has contribution opportunities for operating system developers; programming language creators; and smart contracts experts, among others.
13−
14−If you have experience writing user-facing applications, you’ll most likely be interested in writing your peer-to-peer applications on Urbit.
15−
16−Either way, you should check out our [Developer Guide](@/develop.md).
17−
18−### Running stars and galaxies
19−
20−There are two ways to participate in the Arvo network: as a user running a planet and as an infrastructure provider running a galaxy or a star.
21−
22−For planets, Urbit is a peer-to-peer network where users can interact with each other via Landscape, or using custom applications that anyone can write.
23−
24−Running a planet helps build Urbit’s community, surfaces bugs, and helps core developers improve Urbit under realistic conditions.
25−
26−Stars and galaxies, however, have additional responsibilities and play a role in peer discovery as well as star and planet distribution. You can think of stars and galaxies as similar to the DNS system in the modern Internet. Most users don’t know it exists, but without it, the web wouldn’t work at all.
27−
28−Running a reliable galaxy or star, and spawning stars and planets from them, are excellent ways to help bootstrap the Urbit network.
29−
30−If you’re interested in running a galaxy or star, you’ll be reliably providing peer discovery for your children just by running your node – and we’re doing our best to make this both easy and profitable. If you’re interested in this, see [Operating Galaxies and Stars](#galaxies-and-stars) below.
31−
32−If you’re interested in distributing planets, read on.
33−
34−### Distribute points
35−
36−Want to get your friends and family into Urbit? Distribute planets using Bridge with a feature called **delegated sending**.
37−
38−Here’s how it works: any star can grant a number of invites to any of its child planets. Those planets can then send one-time-use invite codes via email to anyone of their choosing.
39−
40−For instructions on how to grant and send invites, check out [Using Bridge](@/operations.md#using-bridge).
41−
42−## Operating Galaxies and Stars {#galaxies-and-stars}
43−
44−To boot your galaxy or star, follow our [installation instructions](@/install.md).
45−
46−### Hosting your star
47−
48−If you plan to distribute planets in any capacity, you must keep your star running. If you fail to do so, those planets will become orphans that are unable to communicate with the network.
49−
50−To make this as simple as possible, we’re building Terraform-based tooling for star and planet hosting via Google Cloud Platform. Once it’s ready we’ll open source the tooling so you can host stars and planets for yourself and others.
51−
52−In the meantime, there are [existing instructions](@/install.md) for those familiar with booting a Linux instance on GCP, AWS, Digital Ocean, etc.
53−
54−### Distributing planets
55−
56−You can distribute planets from your star via [Bridge](https://bridge.urbit.org/). As a reminder if you do distribute planets, please boot and run your star on the Arvo network, otherwise those planets won't be able to connect, which has a negative effect on the network as a whole, as orphan planets are left with very limited functionality.
57−
58−### Software updates
59−
60−By default, your star accepts software updates from its galaxy and routes them to its planets. You can use this mechanism to push custom software to your planets. Keep in mind that planets expect functional, non-breaking software updates, and generally want to be able to communicate with planets that are sponsored by other stars.
61−
62−#### Breaches
63−
64−To ensure new planets can connect to your ship, users are expected to participate in network-wide breaches by [updating to the latest Urbit version](@/install.md), deleting (or archiving) your pier, and then booting your ship using the new binary. If you don’t participate, you won’t be able to communicate with anyone on the network who has updated to the new era.
65−
66−Network-wide breaches are distinct from personal breaches, wherein an individual ship cycles its personal network keys using bridge, and then follows the same steps outlined above.
67−
68−### Star-owner etiquette
69−
70−- If you distribute planets, boot and run your star on the Arvo network, or the planets won't be able to boot for the first time or connect.
71−- A star is networking infrastructure. For that reason, the machine running your star or galaxy must have sufficient bandwidth and processing power for your dependent planets.
72−- When messaging others, communicate using your star only when speaking in an official/infrastructural capacity. Otherwise, use your personal planet.
73−
74−
75−### Taxes
76−
77−Urbit address space has value, which means the distribution of address space has tax implications. You should speak with your tax advisor about these implications.
78−
79−
80−### What to expect from Tlon
81−
82−#### Contributor calls
83−
84−We host regular contributor calls where you can discuss the technical matters of Urbit with Tlon engineers and community developers. We’d love for you to join; If you’re interested, please email support@urbit.org.
85−
86−#### The urbit-dev mailing list
87−
88−Those interested in developing on Urbit are encouraged to add themselves to [the urbit-dev mailing list](https://groups.google.com/a/urbit.org/forum/#!forum/dev).
89−
90−#### Support
91−
92−We are a small team, but we do our best to answer support related inquiries. Please email us at [support@urbit.org](mailto:support@urbit.org) with questions.
93−
94−#### Roadmap for further development
95−
96−We periodically publish our ongoing development roadmap. You can find the latest [here](https://urbit.org/posts/2019-10-3-roadmap/).
97−
98−## Governance {#governance}
99−
100−Our goal is to design Urbit simply, such that as many decisions as possible are made by the architecture of the system itself – that is, code should be law whenever possible. Code can’t anticipate every eventuality, however, and so the system design must include mechanisms that allow decisions to be made outside of the code.
101−
102−Within Urbit, this form of governance is conducted by two groups: the senate of galaxies, and the body of core developers. The senate of galaxies is empowered to make changes to the solidity contracts which define Azimuth, Urbit’s PKI, by majority vote. This process is defined by the contracts themselves.
103−
104−An owner of a galaxy (or a delegate) can propose a new iteration of the contract logic. The proposal can then be voted on for a period of thirty days. Once that period is over, if at least a quarter of the galaxies has voted, and the majority is in favor, the old logic contract will hand over the reigns to the new one.
105−
106−In a similar process, document hashes can be proposed. While their off-chain documents can't be "technically enforced", this mechanism is useful for the Senate to record more abstract decisions.
107−
108−For off-chain process around proposals, as suggested by core developers, please see [senate.md](https://github.com/urbit/azimuth/blob/master/senate.md).
109−
110−The group of core developers manages Urbit’s [GitHub repository](https://github.com/urbit/), which controls Arvo, Urbit’s operating system. Changes and upgrades are decided upon by consensus.
111−
112−You can participate in the governance of the senate by acquiring a galaxy. If you would like to be involved with the governance of Arvo, check out our [developer guide](@/develop.md) to learn how you can contribute to core development.
113−
114−
content/faq.md+7−5
@@ -1,6 +1,8 @@
11+++
22title = "FAQ"
33template = "page_indiced.html"
4+[extra]
5+hidetitle = "true"
46+++
57
68## Urbit
@@ -261,7 +263,7 @@ All events are logged to disk, so you can always restore the system to a previou
261263
262264When an Arvo ship (instance) is started for the first time, you must use a "keyfile" containing the private keys for your identity's networking keys. Urbit ID uses the Ethereum blockchain as its decentralized ledger.
263265
264−See our [Getting Started](@/install.md) guide to learn how to get your ship onto the Urbit OS / Arvo network.
266+See our [Getting Started](@/using/install.md) guide to learn how to get your ship onto the Urbit OS / Arvo network.
265267
266268### Will the Urbit OS network survive if Ethereum dies? {#if-ethereum-dies}
267269
@@ -269,11 +271,11 @@ Yes. It would be annoying, but Urbit ID / Azimuth could be ported to another dec
269271
270272### How do I install Urbit OS? {#install-urbit-os}
271273
272−Check out our guides [here](@/install.md).
274+Check out our guides [here](@/using/install.md).
273275
274276### How do I use Urbit OS? {#use-urbit-os}
275277
276−The [Using](@/operations.md) section of the documentation will help you out.
278+The [Using](@/using/operations/_index.md) section of the documentation will help you out.
277279
278280### How do over-the-air updates work? {#over-the-air-updates}
279281
@@ -285,9 +287,9 @@ Landscape is an experimental Urbit OS web interface that includes social functio
285287
286288### I have an Urbit ID, now what? {#now-what}
287289
288−Follow our guide on how to boot a ship [here](@/install.md).
290+Follow our guide on how to boot a ship [here](@/using/install.md).
289291
290−Get on the [mailing list](/../#mc_embed_signup). Learn [Hoon](@/docs/hoon/_index.md). Sign up for [Hoon School](@/hoonschool.md). [Make stuff](@/install.md).
292+Get on the [mailing list](/../#mc_embed_signup). Learn [Hoon](@/docs/hoon/_index.md). Sign up for [Hoon School](@/hoonschool.md). [Make stuff](@/using/install.md).
291293
292294
293295## Urbit Grants
content/governance.mdnew file+21
@@ -0,0 +1,21 @@
1++++
2+title = "Governance"
3+[extra]
4+hidetitle = "true"
5++++
6+
7+Our goal is to design Urbit simply, such that as many decisions as possible are made by the architecture of the system itself – that is, code should be law whenever possible. Code can’t anticipate every eventuality, however, and so the system design must include mechanisms that allow decisions to be made outside of the code.
8+
9+Within Urbit, this form of governance is conducted by two groups: the senate of galaxies, and the body of core developers. The senate of galaxies is empowered to make changes to the solidity contracts which define Azimuth, Urbit’s PKI, by majority vote. This process is defined by the contracts themselves.
10+
11+An owner of a galaxy (or a delegate) can propose a new iteration of the contract logic. The proposal can then be voted on for a period of thirty days. Once that period is over, if at least a quarter of the galaxies has voted, and the majority is in favor, the old logic contract will hand over the reigns to the new one.
12+
13+In a similar process, document hashes can be proposed. While their off-chain documents can't be "technically enforced", this mechanism is useful for the Senate to record more abstract decisions.
14+
15+For off-chain process around proposals, as suggested by core developers, please see [senate.md](https://github.com/urbit/azimuth/blob/master/senate.md).
16+
17+The group of core developers manages Urbit’s [GitHub repository](https://github.com/urbit/), which controls Arvo, Urbit’s operating system. Changes and upgrades are decided upon by consensus.
18+
19+You can participate in the governance of the senate by acquiring a galaxy. If you would like to be involved with the governance of Arvo, check out our [developer guide](@/using/develop.md) to learn how you can contribute to core development.
20+
21+
content/understanding-urbit/project-history.md+1−1
@@ -16,7 +16,7 @@ You can interact with your Urbit ID and invite friends using [Bridge](https://br
1616
1717{{ oversize(url="https://media.urbit.org/site/understanding-urbit/project-history/project-history-03%402x.png")}}
1818
19−Urbit OS is a solid alpha. We use it every day to coordinate and chat about the future of Urbit. You’re [welcome to join](@/install.md). Our standards are high, so we aren’t asking everyone to use Urbit OS yet. If you’re someone who wants to customize their own software and experiment with a new system, [check it out](@/install.md). Otherwise, [join the mailing list](https://urbit.us11.list-manage.com/subscribe/post?u=972a03db9e0c6c25bb58de8c8&amp;id=be143888d2). We have exciting things planned for 2020.
19+Urbit OS is a solid alpha. We use it every day to coordinate and chat about the future of Urbit. You’re [welcome to join](@/using/install.md). Our standards are high, so we aren’t asking everyone to use Urbit OS yet. If you’re someone who wants to customize their own software and experiment with a new system, [check it out](@/using/install.md). Otherwise, [join the mailing list](https://urbit.us11.list-manage.com/subscribe/post?u=972a03db9e0c6c25bb58de8c8&amp;id=be143888d2). We have exciting things planned for 2020.
2020
2121Urbit OS isn’t just an interface — it’s a complete system. You should also check out the [GitHub repository](https://github.com/urbit/urbit), our [open grants program](https://grants.urbit.org) and the [documentation](@/docs/_index.md).Building a system from scratch is a huge and enormously fun undertaking. There’s a lot going on, and we do all our development in public. Systems programmers, functional programming nerds, anyone who wants to tinker with their software will probably love playing with Urbit.
2222
content/using/_index.mdnew file+5
@@ -0,0 +1,5 @@
1++++
2+title = "Using"
3+sort_by = "weight"
4+template = "list.html"
5++++
content/develop.md → content/using/develop.mdrenamed+34−4
@@ -1,5 +1,7 @@
11+++
2−title = "Develop"
2+title = "Developer's Guide"
3+description = "How to get started developing on Urbit."
4+weight = 3
35template = "page_indiced.html"
46+++
57
@@ -11,7 +13,7 @@ This guide will start by getting you set up to run an Urbit ship, and then tell
1113
1214We assume you’ve gotten a basic introduction to Urbit. If you haven’t, read the [Understanding Urbit](@/understanding-urbit/_index.md) series, or just jump ahead to the [Technical Overview](@/understanding-urbit/technical-overview.md).
1315
14−Once you’re ready, you can get started on the network right away and take some first steps, without acquiring an identity, by [creating a comet](@/operations.md#creating-a-comet).
16+Once you’re ready, you can get started on the network right away and take some first steps, without acquiring an identity, by [creating a comet](@/using/operations/creating-a-comet.md).
1517
1618When developing, however, we recommend [booting a development ship](#creating-a-development-ship) and working locally -- you may need to make changes that could, in the wrong hands, destroy the ship’s environment, and it’s best to do so in a safe, separate place.
1719
@@ -42,7 +44,7 @@ If you want to see examples of Urbit applications with common functionality requ
4244
4345To do work with Hoon and with the system, we recommended using a "fake" ship -- one not connected to the network.
4446
45−Because such a ship has no presence on the network, you don't need an Azimuth identity for its purposes. You just need to have [installed our software](/install).
47+Because such a ship has no presence on the network, you don't need an Azimuth identity for its purposes. You just need to have [installed our software](/using/install).
4648
4749To create a fake ship named `~zod`, run the command below. You can replace `zod` with any valid Urbit ship-name.
4850
@@ -62,4 +64,32 @@ Here are some tutorials written by members of the Urbit community. Some are a li
6264- [A Nock Interpreter](https://jtobin.io/nock) by `~nidsut-tomdun`
6365- [Basic Hoonery](https://jtobin.io/basic-hoonery) by `~nidsut-tomdun`
6466
65−If you want to add something to the list, [shoot us an email](mailto:support@urbit.org) or make a pull request in the [docs repository](https://github.com/urbit/docs).
67+If you want to add something to the list, [shoot us an email](mailto:support@urbit.org) or make a pull request in the [docs repository](https://github.com/urbit/docs).
68+
69+## How else can I contribute? {#how}
70+
71+The Urbit project is a global community of developers, users, and fans. If you’re interested in getting involved, there’s space for you; you don’t have to be a developer to be a part of the project.
72+
73+### Running stars and galaxies
74+
75+There are two ways to participate in the Arvo network: as a user running a planet and as an infrastructure provider running a galaxy or a star.
76+
77+For planets, Urbit is a peer-to-peer network where users can interact with each other via Landscape, or using custom applications that anyone can write.
78+
79+Running a planet helps build Urbit’s community, surfaces bugs, and helps core developers improve Urbit under realistic conditions.
80+
81+Stars and galaxies, however, have additional responsibilities and play a role in peer discovery as well as star and planet distribution. You can think of stars and galaxies as similar to the DNS system in the modern Internet. Most users don’t know it exists, but without it, the web wouldn’t work at all.
82+
83+Running a reliable galaxy or star, and spawning stars and planets from them, are excellent ways to help bootstrap the Urbit network.
84+
85+If you’re interested in running a galaxy or star, you’ll be reliably providing peer discovery for your children just by running your node – and we’re doing our best to make this both easy and profitable. If you’re interested in this, see [Star and Galaxy Operations](/using/operations/stars-and-galaxies.md).
86+
87+If you’re interested in distributing planets, read on.
88+
89+### Distribute points
90+
91+Want to get your friends and family into Urbit? Distribute planets using Bridge with a feature called **delegated sending**.
92+
93+Here’s how it works: any star can grant a number of invites to any of its child planets. Those planets can then send one-time-use invite codes via email to anyone of their choosing.
94+
95+For instructions on how to grant and send invites, check out [Using Bridge](@/using/operations/using-bridge.md).
content/install.md → content/using/install.mdrenamed+5−3
@@ -1,11 +1,13 @@
11+++
2−title = "Install"
2+title = "Install + Setup"
3+weight = 1
4+description = "How to install Urbit."
35template = "page_indiced.html"
46+++
57
6−Urbit is not yet ready for wide use for everyday users -- but if you're technically inclined or generally intrepid, feel free to try it out. It's a good place to explore.
8+Urbit is not yet ready for everyday users -- but if you're technically inclined or generally intrepid, feel free to try it out. It's a good place to explore.
79
8−In order to get going on the network, you'll need an [Urbit ID](#id). To try the live network out with a disposable identity, you can always [create a comet](@/operations.md#creating-a-comet).
10+In order to get going on the network, you'll need an [Urbit ID](#id). To try the live network out with a disposable identity, you can always [create a comet](@/using/operations/creating-a-comet.md).
911
1012## Getting an Urbit ID {#id}
1113
content/using/operations/_index.mdnew file+7
@@ -0,0 +1,7 @@
1++++
2+title = "Operations Manual"
3+description = "Instructions on how to use Bridge, your Urbit ship, Stars and Galaxies, and more."
4+sort_by = "weight"
5+weight = 2
6+template = "list.html"
7++++
content/using/operations/creating-a-comet.mdnew file+29
@@ -0,0 +1,29 @@
1++++
2+title = "Creating a Comet"
3+descriptions = "Comets are disposable identities you can use on the live network."
4+weight = 4
5++++
6+
7+**Comets** are Urbits whose names are 128-bits or 16 syllables, such as:
8+
9+`~dasres-ragnep-lislyt-ribpyl--mosnyx-bisdem-nidful-marzod`
10+
11+Comet names aren't quite as memorable as others, but they're disposable identities that anyone can make for free to join the live network.
12+
13+### Booting a comet
14+
15+To boot your comet, go into the command line and run the following command from the directory that was created during Urbit installation:
16+
17+```sh
18+$ ./urbit -c mycomet
19+```
20+
21+This will take a few minutes and will spin out a bunch of boot messages. Toward the end, you'll see something like:
22+
23+```
24+ames: on localhost, UDP 31337.
25+http: live (insecure, public) on 8080
26+http: live ("secure", public) on 8443
27+http: live (insecure, loopback) on 12321
28+~dasres_marzod:dojo>
29+```
content/using/operations/stars-and-galaxies.mdnew file+41
@@ -0,0 +1,41 @@
1++++
2+title = "Star and Galaxy Operations"
3+descriptions = "Additional information and suggested ettiquette for Star and Galaxy owners."
4+weight = 3
5+template = "page_indiced.html"
6++++
7+
8+To boot your galaxy or star, follow our [installation instructions](@/using/install.md).
9+
10+### Hosting your star
11+
12+If you plan to distribute planets in any capacity, you must keep your star running. If you fail to do so, those planets will become orphans that are unable to communicate with the network.
13+
14+To make this as simple as possible, we’re building Terraform-based tooling for star and planet hosting via Google Cloud Platform. Once it’s ready we’ll open source the tooling so you can host stars and planets for yourself and others.
15+
16+In the meantime, there are [existing instructions](@/using/install.md) for those familiar with booting a Linux instance on GCP, AWS, Digital Ocean, etc.
17+
18+### Distributing planets
19+
20+You can distribute planets from your star via [Bridge](https://bridge.urbit.org/). As a reminder if you do distribute planets, please boot and run your star on the Arvo network, otherwise those planets won't be able to connect, which has a negative effect on the network as a whole, as orphan planets are left with very limited functionality.
21+
22+### Software updates
23+
24+By default, your star accepts software updates from its galaxy and routes them to its planets. You can use this mechanism to push custom software to your planets. Keep in mind that planets expect functional, non-breaking software updates, and generally want to be able to communicate with planets that are sponsored by other stars.
25+
26+#### Breaches
27+
28+To ensure new planets can connect to your ship, users are expected to participate in network-wide breaches by [updating to the latest Urbit version](@/using/install.md), deleting (or archiving) your pier, and then booting your ship using the new binary. If you don’t participate, you won’t be able to communicate with anyone on the network who has updated to the new era.
29+
30+Network-wide breaches are distinct from personal breaches, wherein an individual ship cycles its personal network keys using bridge, and then follows the same steps outlined above.
31+
32+### Star-owner etiquette
33+
34+- If you distribute planets, boot and run your star on the Arvo network, or the planets won't be able to boot for the first time or connect.
35+- A star is networking infrastructure. For that reason, the machine running your star or galaxy must have sufficient bandwidth and processing power for your dependent planets.
36+- When messaging others, communicate using your star only when speaking in an official/infrastructural capacity. Otherwise, use your personal planet.
37+
38+### Taxes
39+
40+Urbit address space has value, which means the distribution of address space has tax implications. You should speak with your tax advisor about these implications.
41+
content/using/operations/using-bridge.mdnew file+64
@@ -0,0 +1,64 @@
1++++
2+title = "Using Bridge"
3+template = "page_indiced.html"
4+description = "How to use Bridge to interact with Azimuth and manage your Urbit ID."
5+weight = 1
6++++
7+
8+[Bridge](https://github.com/urbit/bridge) is the application we built for interacting with [Azimuth](https://azimuth.network), the Urbit PKI, and managing your Urbit ID. Importantly, Bridge also allows you to generate a keyfile that you will need to boot your ship so that it can use the Arvo network.
9+
10+This guide assumes that you have an Urbit ID, or that you have found someone to send an Urbit ID to your Ethereum address and are looking to claim it.
11+
12+### Online Bridge
13+
14+To connect to Bridge, go to [https://bridge.urbit.org](https://bridge.urbit.org) into your browser, and enter your identity's credentials in the appropriate fields. If you were invited to claim an Urbit ID, it's very likely that you received an email that would direct you to Bridge, and you can simply follow the hyperlink in that email.
15+
16+Once you arrive, proceed through the steps presented. You'll eventually arrive at a page with a few choices: `Invite`, `Admin`, and `Boot Arvo`. `Admin` is the only option that you're interested in right now; click on it. On the `Admin` page, click the `Download Arvo Keyfile` button. Once you have downloaded the keyfile, you can exit Bridge and proceed to [install the Urbit binary](@/using/install.md).
17+
18+### Offline Bridge
19+
20+Alternatively, Bridge can be run locally. It's more complicated, but we recommend this option for managing sufficiently valuable assets, such as several stars or more. To install local Bridge, navigate to the [release page on GitHub](https://github.com/urbit/bridge/releases/). Download the `.zip` file of the latest version. After you download it, follow the instructions below.
21+
22+To use Bridge:
23+
24+- Unzip the .zip file that you downloaded (bridge-$version.zip).
25+- Open up your command line interface (Terminal on OSX, Command Prompt on Windows).
26+- Navigate to the bridge-$version directory, where $version is the appropriate version number.
27+- Run this command: `python3 -m http.server 5000 --bind 127.0.0.1.`
28+
29+You can then use the Bridge app by navigating to `http://localhost:5000` in your internet browser.
30+
31+Note: Bridge allows you to both make reads and writes to the Ethereum blockchain. Writing to the blockchain, such as changing your networking keys, will incur a transaction cost that will require you to have some ETH in your address.
32+
33+Once the program is running in your browser, go through the steps presented according to the type of wallet you have. You’ll be presented with a few login options. A notable option is Urbit Master Ticket. This is for those who used our Wallet Generator software. If you bought points from an Urbit sale and then used the Wallet Generator, your networking keys will be set for you. All other login options will require you to set your own networking keys.
34+
35+### Accept your transfer
36+
37+If you were given points by Tlon you likely already fully own them. But if someone else sent you a point, then you will first need to use Bridge to accept that transfer.
38+
39+After you access your Ethereum address, if a point was sent to that address, you'll come to a page that has an `Incoming Transfers` header, under which is a graphic. Click the `Details ->` link under that graphic.
40+
41+Now you'll be on the management page of your point. The transfer isn't completed yet, so click `Accept incoming transfer`. Then check both boxes and and click their associated `Sign Transaction` and `Send Transaction` buttons.
42+
43+If you already own a point, click on the `Details ->` under your sigil in the `Your Points` section.
44+
45+### Set your networking keys
46+
47+If you just accepted a point, you'll be returned to your point screen. Notice that that links and buttons are now clickable. You now own this point!
48+
49+Click the link that says `Set network keys`. The field presented in the resulting page expects a 32-byte hexadecimal string. If it's filled already, no action is required. If it is empty, you will need to generate such a string. You can generate this data any way you please, but in the terminal on MacOS or Linux, you can write
50+
51+```sh
52+hexdump -n 32 -e '4/4 "%08X"' /dev/random
53+```
54+
55+and use the result.
56+
57+It should be noted that setting your network keys is an event on the Ethereum network and will therefore cost a trivial, but non-zero, amount of [gas](https://github.com/ethereum/wiki/wiki/Design-Rationale#gas-and-fees) to complete.
58+
59+### Generate your keyfile
60+
61+From the detail page associated with your point, click the `Generate Arvo Keyfile` link and you'll be taken to a page with a field titled `Network seed`. This field should already be filled in, and should match the hexadecimal string that you entered in the previous step. If it's not filled in or does not match, fill it in with the correct string.
62+Click `Generate ->`, which will download a keyfile onto your machine.
63+
64+With that keyfile in hand, you can now exit Bridge and continue to the guide to [install the Urbit binary](@/using/install.md).
content/operations.md → content/using/operations/using-your-ship.mdrenamed+31−117
@@ -1,70 +1,60 @@
11+++
2−title = "Operations"
2+title = "Using Your Ship"
3+description = "How to operate your ship, including using your ship's filesystem and messaging applications, starting a moon, or requesting a DNS proxy."
34template = "page_indiced.html"
4−slug = "/operations/"
5+weight = 2
56+++
67
7−## Using Bridge {#using-bridge}
8−
9−[Bridge](https://github.com/urbit/bridge) is the application we built for interacting with [Azimuth](https://azimuth.network), the Urbit PKI, and managing your Urbit ID. Importantly, Bridge also allows you to generate a keyfile that you will need to boot your ship so that it can use the Arvo network.
10−
11−This guide assumes that you have an Urbit ID, or that you have found someone to send an Urbit ID to your Ethereum address and are looking to claim it.
12−
13−### Online Bridge
14−
15−To connect to Bridge, go to [https://bridge.urbit.org](https://bridge.urbit.org) into your browser, and enter your identity's credentials in the appropriate fields. If you were invited to claim an Urbit ID, it's very likely that you received an email that would direct you to Bridge, and you can simply follow the hyperlink in that email.
16−
17−Once you arrive, proceed through the steps presented. You'll eventually arrive at a page with a few choices: `Invite`, `Admin`, and `Boot Arvo`. `Admin` is the only option that you're interested in right now; click on it. On the `Admin` page, click the `Download Arvo Keyfile` button. Once you have downloaded the keyfile, you can exit Bridge and proceed to [install the Urbit binary](@/install.md).
8+## DNS proxying {#dns-proxying}
189
19−### Offline Bridge
10+We have a system that lets you request a domain name for your ship in the form of `ship.arvo.network`, where `ship` is your ship's name minus the `~`. This allows users to access their ships remotely using Landscape, our graphical web interface.
2011
21−Alternatively, Bridge can be run locally. It's more complicated, but we recommend this option for managing sufficiently valuable assets, such as several stars or more. To install local Bridge, navigate to the [release page on GitHub](https://github.com/urbit/bridge/releases/). Download the `.zip` file of the latest version. After you download it, follow the instructions below.
12+Stars and planets follow the same process DNS proxying process, and galaxies have their own requirements. Moons and comets are not supported.
2213
23−To use Bridge:
14+### Planets and Stars
2415
25−- Unzip the .zip file that you downloaded (bridge-$version.zip).
26−- Open up your command line interface (Terminal on OSX, Command Prompt on Windows).
27−- Navigate to the bridge-$version directory, where $version is the appropriate version number.
28−- Run this command: `python3 -m http.server 5000 --bind 127.0.0.1.`
16+For a planet or star's DNS proxying request to be made and fulfilled, they must be hosting their ship someplace with a public IP address, and its HTTP server must be listening on port 80.
2917
30−You can then use the Bridge app by navigating to `http://localhost:5000` in your internet browser.
18+To get `ship.arvo.network` on a planet or star, you must set up DNS routing with its parent ship by starting the `:dns` app.
3119
32−Note: Bridge allows you to both make reads and writes to the Ethereum blockchain. Writing to the blockchain, such as changing your networking keys, will incur a transaction cost that will require you to have some ETH in your address.
20+To do so, simply run this command in your ship's Dojo:
3321
34−Once the program is running in your browser, go through the steps presented according to the type of wallet you have. You’ll be presented with a few login options. A notable option is Urbit Master Ticket. This is for those who used our Wallet Generator software. If you bought points from an Urbit sale and then used the Wallet Generator, your networking keys will be set for you. All other login options will require you to set your own networking keys.
22+```
23+> :dns|request
24+```
3525
36−### Accept your transfer
26+You'll then be prompted to enter the public IP address of your ship. You can also pass the IP address as an argument, using the .0.0.0.0 (`@if`) syntax. For example:
3727
38−If you were given points by Tlon you likely already fully own them. But if someone else sent you a point, then you will first need to use Bridge to accept that transfer.
28+```
29+> :dns|request .1.2.3.4
30+```
3931
40−After you access your Ethereum address, if a point was sent to that address, you'll come to a page that has an `Incoming Transfers` header, under which is a graphic. Click the `Details ->` link under that graphic.
32+`:dns`, running locally, will make an HTTP request to that IP address on port 80 to confirm that it is itself available at that IP and port. If that fails, you'll receive a `%bail-early` message in `:chat-cli`; this request will retry a few times. If the self-check is successful, the request is relayed to `~zod`, and you'll receive a message saying, `request for DNS sent to ~zod`. Once `~zod` has acknowledged receipt of the request, your local `:dns` app will send a `:chat-cli` message saying `awaiting response from ~zod`.
4133
42−Now you'll be on the management page of your point. The transfer isn't completed yet, so click `Accept incoming transfer`. Then check both boxes and and click their associated `Sign Transaction` and `Send Transaction` buttons.
34+The request will be picked up shortly, and the `ship.arvo.network` DNS record will be set to the given IP address. Once that's set up, `~zod` will be notified and `~zod` will, in turn, notify your ship. That ship will now try to verify that it can reach itself on `ship.arvo.network` over port 80. If it can't, it'll send a message saying, `unable to access via ship.arvo.network`. If it can, it will configure itself with that domain and say `confirmed access via ship.arvo.network`.
4335
44−If you already own a point, click on the `Details ->` under your sigil in the `Your Points` section.
36+Great! You're set up now. Try accessing your `ship.arvo.network` in your browser to use Landscape; we recommend Chrome or Brave.
4537
46−### Set your networking keys
38+### Galaxies
4739
48−If you just accepted a point, you'll be returned to your point screen. Notice that that links and buttons are now clickable. You now own this point!
40+Galaxies are already required to have separate DNS entry at galaxy.urbit.org. There's no automated process for getting that binding, so if you're a galaxy-holder, get in touch with us at support@urbit.org.
4941
50−Click the link that says `Set network keys`. The field presented in the resulting page expects a 32-byte hexadecimal string. If it's filled already, no action is required. If it is empty, you will need to generate such a string. You can generate this data any way you please, but in the terminal on MacOS or Linux, you can write
42+There is a command for galaxies that will try to re-use their already-necessary Ames DNS entry for HTTPS:
5143
52−```sh
53−hexdump -n 32 -e '4/4 "%08X"' /dev/random
44+```
45+> :dns|auto
5446```
5547
56−and use the result.
48+This will make HTTP-requests to self-check availability over `galaxy.$AMES-DOMAIN` (currently galaxy.urbit.org), where `galaxy` is the galaxy's name minus the `~`.
5749
58−It should be noted that setting your network keys is an event on the Ethereum network and will therefore cost a trivial, but non-zero, amount of [gas](https://github.com/ethereum/wiki/wiki/Design-Rationale#gas-and-fees) to complete.
50+Otherwise, `:dns|auto` works the same as `:dns|ip` does with stars and planets: if it's available or unavailable, Chat messages, and so on.
5951
60−### Generate your keyfile
52+### More information
6153
62−From the detail page associated with your point, click the `Generate Arvo Keyfile` link and you'll be taken to a page with a field titled `Network seed`. This field should already be filled in, and should match the hexadecimal string that you entered in the previous step. If it's not filled in or does not match, fill it in with the correct string.
63−Click `Generate ->`, which will download a keyfile onto your machine.
54+Configuring a ship's domain causes the `:acme` app to request an HTTPS certificate for that domain from LetsEncrypt. Note that LetsEncrypt also requires that the HTTP server be listening on port 80. If the certificate request fails, `:acme` will send a `:chat-cli` message with an explanation. Once the certificate is successfully retrieved, `:acme` will install it, causing the HTTP servers to restart. A secure server will be started on port 443 (the HTTPS default) if it's available. Otherwise, it will try 8443, and then increment to the next port until it can successfully bind one.
6455
65−With that keyfile in hand, you can now exit Bridge and continue to the guide to [install the Urbit binary](@/install.md).
56+The built-in logic for listening on port 80 is similar. Urbit tries to bind port 80; if it cannot, it tries 8080, then increments until it can bind a port. Port 80 is available to unprivileged process on recent version of macOS. Otherwise, the process needs to either be run as root, or be given special permission (CAP\_NET_BIND on Linux).
6657
67−## Using your ship {#urbit-administration}
6858
6959Your urbit (also called your _ship_) is a persistent Unix process that you mainly control from the console.
7060
@@ -201,7 +191,7 @@ moon: ~faswep-navred-sampel-palnet
201191
202192`<keyfile>` will be at `path/to/sampel-palnet/.urb/put/moon.key` and does not need editing to be used with the `-k` option.
203193
204−You can use the resulting output in the same installation flow from the [Installing Urbit](@/install.md) guide, following the same scheme as for booting a planet. That scheme is:
194+You can use the resulting output in the same installation flow from the [Installing Urbit](@/using/install.md) guide, following the same scheme as for booting a planet. That scheme is:
205195
206196```sh
207197$ ./urbit -w <moonname> -G <key> -c <piername>
@@ -238,82 +228,6 @@ Because Urbit networking is stateful we call this a _continuity breach_. Everyth
238228
239229When this happens, back up any files you'd like to save, shut down your urbit, and recreate it (as if you were starting for the first time).
240230
241−## Creating a comet {#creating-a-comet}
242−
243−**Comets** are urbits whose names are 128-bits or 16 syllables, such as:
244−
245−`~dasres-ragnep-lislyt-ribpyl--mosnyx-bisdem-nidful-marzod`
246−
247−Comet names aren't quite as memorable as others, but they're disposable identities that anyone can make for free to join the live network.
248−
249−### Booting a comet
250−
251−To boot your comet, go into the command line and run the following command from the directory that was created during Urbit installation:
252−
253−```sh
254−$ ./urbit -c mycomet
255−```
256−
257−This will take a few minutes and will spin out a bunch of boot messages. Toward the end, you'll see something like:
258−
259−```
260−ames: on localhost, UDP 31337.
261−http: live (insecure, public) on 8080
262−http: live ("secure", public) on 8443
263−http: live (insecure, loopback) on 12321
264−~dasres_marzod:dojo>
265−```
266−
267−## DNS proxying {#dns-proxying}
268−
269−We have a system that lets you request a domain name for your ship in the form of `ship.arvo.network`, where `ship` is your ship's name minus the `~`. This allows users to access their ships remotely using Landscape, our graphical web interface.
270−
271−Stars and planets follow the same process DNS proxying process, and galaxies have their own requirements. Moons and comets are not supported.
272−
273−### Planets and Stars
274−
275−For a planet or star's DNS proxying request to be made and fulfilled, they must be hosting their ship someplace with a public IP address, and its HTTP server must be listening on port 80.
276−
277−To get `ship.arvo.network` on a planet or star, you must set up DNS routing with its parent ship by starting the `:dns` app.
278−
279−To do so, simply run this command in your ship's Dojo:
280−
281−```
282−> :dns|request
283−```
284−
285−You'll then be prompted to enter the public IP address of your ship. You can also pass the IP address as an argument, using the .0.0.0.0 (`@if`) syntax. For example:
286−
287−```
288−> :dns|request .1.2.3.4
289−```
290−
291−`:dns`, running locally, will make an HTTP request to that IP address on port 80 to confirm that it is itself available at that IP and port. If that fails, you'll receive a `%bail-early` message in `:chat-cli`; this request will retry a few times. If the self-check is successful, the request is relayed to `~zod`, and you'll receive a message saying, `request for DNS sent to ~zod`. Once `~zod` has acknowledged receipt of the request, your local `:dns` app will send a `:chat-cli` message saying `awaiting response from ~zod`.
292−
293−The request will be picked up shortly, and the `ship.arvo.network` DNS record will be set to the given IP address. Once that's set up, `~zod` will be notified and `~zod` will, in turn, notify your ship. That ship will now try to verify that it can reach itself on `ship.arvo.network` over port 80. If it can't, it'll send a message saying, `unable to access via ship.arvo.network`. If it can, it will configure itself with that domain and say `confirmed access via ship.arvo.network`.
294−
295−Great! You're set up now. Try accessing your `ship.arvo.network` in your browser to use Landscape; we recommend Chrome or Brave.
296−
297−### Galaxies
298−
299−Galaxies are already required to have separate DNS entry at galaxy.urbit.org. There's no automated process for getting that binding, so if you're a galaxy-holder, get in touch with us at support@urbit.org.
300−
301−There is a command for galaxies that will try to re-use their already-necessary Ames DNS entry for HTTPS:
302−
303−```
304−> :dns|auto
305−```
306−
307−This will make HTTP-requests to self-check availability over `galaxy.$AMES-DOMAIN` (currently galaxy.urbit.org), where `galaxy` is the galaxy's name minus the `~`.
308−
309−Otherwise, `:dns|auto` works the same as `:dns|ip` does with stars and planets: if it's available or unavailable, Chat messages, and so on.
310−
311−### More information
312−
313−Configuring a ship's domain causes the `:acme` app to request an HTTPS certificate for that domain from LetsEncrypt. Note that LetsEncrypt also requires that the HTTP server be listening on port 80. If the certificate request fails, `:acme` will send a `:chat-cli` message with an explanation. Once the certificate is successfully retrieved, `:acme` will install it, causing the HTTP servers to restart. A secure server will be started on port 443 (the HTTPS default) if it's available. Otherwise, it will try 8443, and then increment to the next port until it can successfully bind one.
314−
315−The built-in logic for listening on port 80 is similar. Urbit tries to bind port 80; if it cannot, it tries 8080, then increments until it can bind a port. Port 80 is available to unprivileged process on recent version of macOS. Otherwise, the process needs to either be run as root, or be given special permission (CAP\_NET_BIND on Linux).
316−
317231## Messaging {#messaging}
318232
319233Let’s get started using the `:chat-cli` application, also known more simply as _Chat_. It's the simplest way to talk to people using the command line interface.
content/what-is-urbit.mddeleted−10
@@ -1,10 +0,0 @@
1−+++
2−title = "What is Urbit?"
3−template = "page_indiced.html"
4−+++
5−
6−## Introduction {#introduction}
7−
8−## Interface {#interface}
9−
10−## Infrastructure {#infrastructure}
templates/list.htmlnew file+36
@@ -0,0 +1,36 @@
1+{% extends "base.html" %}
2+{% block title %} {{ section.title }} {% endblock title %}
3+{% block content %}
4+<!-- header -->
5+<nav class="mt4 full fourth-1-lg mb3 mb0-m mb0-l mb0-xl">
6+ <a class="gray3" href="/">Urbit</a>
7+ <span class="gray3"> / </span>
8+ <a href="/{{ section.components[0] }}{% if section.components[2] %}/{{ section.components[1] }}{% endif %}">
9+ {{ section.title }}
10+ </a>
11+ {% include "partials/navigation-search.html" %}
12+</nav>
13+<!-- content -->
14+<article class="mt4 mb7 c1-12 c4-12-lg">
15+ <ul class="posts">
16+ {% set posts = get_section(path=section.relative_path) %}
17+ {% for page in posts.pages %}
18+ <li class="mb4">
19+ <h2 class="f4 fw4 mt0 mb0"><a class="bb-0" href="{{ page.permalink }}">{{ page.title }}</a></h2>
20+ <p class="mt0">{{ page.description }}</p>
21+ <span class="mono f5">
22+ {% if page.extra.ship %}<address class="mono f5 ml2">{{ page.extra.ship }}</address> {% endif %}
23+ </span>
24+ </li>
25+ {% endfor %}
26+ {% for s in posts.subsections %}
27+ {% set subsection = get_section(path=s) %}
28+ <li class="mb4">
29+ <h2 class="f4 fw4 mt0 mb0"><a class="bb-0" href="{{ subsection.permalink }}">{{ subsection.title }}</a></h2>
30+ <p class="mt0">{{ subsection.description }}</p>
31+ </li>
32+ {% endfor %}
33+ </ul>
34+</article>
35+{% include "partials/footer.html" %}
36+{% endblock content %}
templates/page.html+6−3
@@ -15,8 +15,11 @@
1515<nav class="mt4 full fourth-1-md fourth-1-lg mb3 mb0-m mb0-l mb0-xl">
1616 <a class="gray3" href="/">Urbit</a>
1717 <span class="gray3"> / </span>
18− <a href="/{{ page.components[0] }}">
18+ <a href="/{{ page.components[0] }}{% if page.components[2] %}/{{ page.components[1] }}{% endif %}">
19+ {% if page.components[1] %}{{ page.components[1] | capitalize }}
20+ {% else %}
1921 {{ page.components[0] | capitalize }}
22+ {% endif %}
2023 </a>
2124 {% include "partials/navigation-search.html" %}
2225</nav>
@@ -37,8 +40,8 @@
3740{% endif %}
3841
3942<article class="mt4 mb4 c1-12 c4-12-lg">
40− <h1>{{ page.title }}</h1>
41− {% if page.extra.author %}
43+ {% if page.extra.hidetitle %} {% else %}<h1>{{ page.title }}</h1>{% endif %}
44+ {% if page.extra.author %}
4245 <span class="mt2 dib" rel="author"> {{ page.extra.author }} </span>
4346 {% if page.extra.ship %}
4447 <address class="mono">{{ page.extra.ship }}</address>
templates/page_indiced.html+8−3
@@ -12,7 +12,8 @@
1212
1313<!-- header -->
1414<!-- content -->
15−{% if page.title %}
15+{% set lowercasetitle = page.title | lower %}
16+{% if section or lowercasetitle == page.components[0] %}
1617<nav class="mt4 pb4 fixed-xl full fourth-1-md fourth-1-lg page-indiced mb3 mb0-m mb0-l mb0-xl">
1718 <a class="gray3" href="/">Urbit</a>
1819 <span class="gray3"> / </span>
@@ -26,8 +27,11 @@
2627<nav class="mt4 fixed-xl full fourth-1-md fourth-1-lg page-indiced mb3 mb0-m mb0-l mb0-xl">
2728 <a class="gray3" href="/">Urbit</a>
2829 <span class="gray3"> / </span>
29− <a href="/{{ page.components[0] }}">
30− {{ page.title }}
30+ <a href="/{{ page.components[0] }}{% if page.components[2] %}/{{ page.components[1] }}{% endif %}">
31+ {% if page.components[2] %}{{ page.components[1] | capitalize }}
32+ {% else %}
33+ {{ page.components[0] | capitalize }}
34+ {% endif %}
3135 </a>
3236
3337 {% include "partials/navigation-search.html" %}
@@ -47,6 +51,7 @@
4751{% endfor %}
4852</nav>
4953 <article class="mt4 mb6 c1-12 c5-10-md c4-10-lg">
54+ {% if page.extra.hidetitle %} {% else %}<h1>{{ page.title }}</h1>{% endif %}
5055 {% if page.extra.author %}
5156 <span class="mt2 dib" rel="author"> {{ page.extra.author }} </span>
5257 {% if page.extra.ship %}
templates/partials/footer.html+18−24
@@ -1,55 +1,49 @@
11<footer class="full-bleed mt4 grid12 bg-black white full pb6">
22 <section class="full grid12 mb4">
33 <nav class="c3-5-md c3-5-lg half-1 mt5">
4− <h3 class="mt0 mb0 pt0 pb0">Understanding Urbit</h3 class="mt0 mb0 pt0 pb0">
4+ <h3 class="mt0 mb0 pt0 pb0">Understanding Urbit</h3>
55 <li class="mt2"><a href="/understanding-urbit">Introduction</a></li>
66 <li class="mt2"><a href="/understanding-urbit/urbit-id">Urbit ID</a></li>
77 <li class="mt2"><a href="/understanding-urbit/technical-overview">Technical Overview</a></li>
88 <li class="mt2"><a href="/understanding-urbit/project-history">Project Status + History</a></li>
99 </nav>
10+
1011 <nav class="c5-7-md c5-7-lg half-2 mt5">
11− <h3 class="mt0 mb0 pt0 pb0">Using Urbit</h3 class="mt0 mb0 pt0 pb0">
12− <li class="mt2"><a href="/contributing">How can I contribute?</a></li>
13− <li class="mt2"><a href="/operations">Using Bridge and Ships</a></li>
14− <li class="mt2"><a href="/contributing#galaxies-and-stars">Operating Galaxies and Stars</a></li>
15− <li class="mt2"><a href="/contributing#governance">Governance</a></li>
12+ <h3 class="mt0 mb0 pt0 pb0">Learn more</h3>
13+ <li class="mt2"><a href="/essays">Essays</a></li>
14+ <li class="mt2"><a href="/updates">Updates</a></li>
15+ <li class="mt2"><a href="/media">Media</a></li>
16+ <li class="mt2"><a href="/faq">FAQ</a></li>
1617 </nav>
1718
1819 <nav class="c7-9-md c7-9-lg half-1 mt5">
19− <h3 class="mt0 mb0 pt0 pb0">Install Urbit</h3 class="mt0 mb0 pt0 pb0">
20− <li class="mt2"><a href="/install#id">Getting an Urbit ID</a></li>
21− <li class="mt2"><a href="/install#urbit">Install</a></li>
22− </nav>
20+ <h3 class="mt0 mb0 pt0 pb0">Using + Contributing</h3>
21+ <li class="mt2"><a href="/using/install">Install + Setup</a></li>
22+ <li class="mt2"><a href="/using/develop">Developer's Guide</a></li>
23+ <li class="mt2"><a href="/using/operations">Operations Manual</a></li>
24+ </nav>
2325 <nav class="c9-11-md c9-11-lg half-2 mt5">
24− <h3 class="mt0 mb0 pt0 pb0">Community</h3 class="mt0 mb0 pt0 pb0">
26+ <h3 class="mt0 mb0 pt0 pb0">Community</h3>
2527 <li class="mt2"><a href="https://groups.google.com/a/urbit.org/forum/#!forum/dev">urbit-dev</a></li>
2628 <li class="mt2"><a href="/hoonschool">Hoon School ↗</a></li>
2729 <li class="mt2"><a href="https://www.meetup.com/urbit-sf/">Meetups</a></li>
30+ <li class="mt2"><a href="/governance">Governance</a></li>
2831 </nav>
2932 </section>
3033 <section class="full-bleed full grid12">
3134 <nav class="c3-5-md c3-5-lg half-1 mt4 mb5">
32− <h3 class="mt0 mb0 pt0 pb0">Learn More</h3 class="mt0 mb0 pt0 pb0">
33− <li class="mt2"><a href="/essays">Essays</a></li>
34− <li class="mt2"><a href="/updates">Updates</a></li>
35− <li class="mt2"><a href="/media">Media</a></li>
36− <li class="mt2"><a href="/faq">FAQ</a></li>
37− </nav>
38− <nav class="c5-7-md c5-7-lg half-2 mt4 mb5">
39− <h3 class="mt0 mb0 pt0 pb0">Developers</h3 class="mt0 mb0 pt0 pb0">
35+ <h3 class="mt0 mb0 pt0 pb0">Developers</h3>
4036 <li class="mt2"><a href="/docs">Documentation</a></li>
41− <li class="mt2"><a href="/develop#core">Core Development</a></li>
42− <li class="mt2"><a href="/develop#application">Application Development</a></li>
4337 <li class="mt2"><a href="https://grants.urbit.org">Grants</a></li>
4438 <li class="mt2"><a href="/bounties">Security Bounties</a></li>
4539 </nav>
46− <nav class="c7-9-md c7-9-lg half-1 mt4 mb5">
40+ <nav class="c5-7-md c5-7-lg half-2 mt4 mb5">
4741 <h2 class="mb3 mt0">About Urbit.org</h2>
4842 <li class="mt2"><a href="/tos">Terms of Service</a></li>
4943 <li class="mt2"><a href="/privacy#scope">Privacy Policy</a></li>
5044 </nav>
51− <nav class="c9-11-md c9-11-lg half-2 mt4 mb5">
52− <h2 class="mb3">Need Help?</h2>
45+ <nav class="c7-9-md c7-9-lg half-1 mt4 mb5">
46+ <h2 class="mb3">Need help?</h2>
5347 <li class="mt2"><a href="mailto:support@urbit.org">support@urbit.org ↗</a></li>
5448 <li class="mt2"><a href="https://discord.gg/bkEX6EU">Discord</a></li>
5549 <li class="mt2"><a href="https://github.com/urbit">Github</a></li>