Urbit / Docs

Operating a Star

A ship is an instance of the Arvo operating system that is used as a personal server on the Arvo network. Stars are a type of ship that act as infrastructure for the Arvo network. In the Arvo ship-hierarchy, stars are below galaxies and above planets.

Parallel to the Arvo network is Azimuth, the Urbit identity system that uses the Ethereum blockchain. All ships must boot with a corresponding point -- an Azimuth identity -- to use the Arvo network.

Important star operations happen on both the Arvo side and the Azimuth side. On the Arvo side, these operations come in the form of Dojo commands. On the Azimuth side, operations happen by making changes to smart-contracts on the blockchain via a point.

Powers of a Star

Stars are above planets in the network hierarchy in the sense that each star sponsors some number of planets: stars discover peers for planets, route packets for planets, provide DNS routing for planets, and push software updates to planets. A star that fulfills this is called the sponsor of planets that receive such services from the star; those planets, in turn, are called dependents of that star.

Stars are also the “parents” planets. A new planet comes into existence only when spawned by a parent star. A parent planet is the sponsor of its children planets by default. This can change if a planet chooses to find a new sponsor (see the “Escaping a Sponsor” section below).

Planets must have a sponsor star to use most features of the Arvo network. A planet cannot boot without a sponsor, and cannot make new connections to peers as long as it is not connected to a sponsor. Sponsorless planets will still be able to message discovered peers until any such peers change their IP addresses.

Responsibilities

Like with real-life infrastructure, the operation of Arvo infrastructure comes with unique responsibilities. For reasons stated above, stars should be always be online on a reliable cloud service, such as Amazon Web Services or Google Cloud Platform. These systems have layers of redundancies that make them much more resilient than local machines, so stars hosted on the cloud are unlikely to leave their dependents in the dark.

Operations

Below are some handy operations for the use and maintenance of your star.

DNS Proxying

You star is not aware of its own IP address by default. This means its dependent planets won't get DNS routing.

To provide DNS routing to your star's dependents, you need to set your star's IP address.

  1. Wait for the initial post-boot sync to succeed.

  2. Enter :dns|ip into the Dojo.

  3. The dojo will prompt you to enter something. Enter your IP address here.

Maintaining Connectivity

Occasionally, your star might lose network connectivity due to a known timer issue. When this happens, enter the |bonk command in the Dojo to reset the timer and restore connectivity.

Escaping a Sponsor

Planets are, of course, able to change sponsors. To do this, they must request that a different star takes them on as a dependent and that star must accept the request. Planets cannot emancipate themselves from a sponsor without having a new sponsor lined up.

All of these actions happen on Azimuth. There will be Bridge functionality to handle these actions in the future, but for now users will need to interact directly with the contracts with MetaMask, through services such as Etherscan.io. A sketch of the process is listed below; for now, only the Ethereum-savvy should act on these steps.

  1. The planet calls the escape function in the Ecliptic contract and writes the resulting data to the blockchain.

  2. If the chosen star wants to become the planet's sponsor, it calls the adopt function in the Ecliptic contract.

  3. The Arvo network notices the change, and the operation is complete.