Guide to Breaches

An important concept on the Ames network is that of continuity. Continuity refers to how ships remember the order of their own network messages and the network messages of others -- these messages are numbered, starting from zero. A breach is when ships on the network agree to forget about this sequence and treat one or more ships like they are brand new.

There are two kinds of breaches: personal breaches and network breaches.

Personal Breaches

Ships on the Ames network sometimes need to reset their continuity. A personal breach is when an individual ship announces to the network: "I forgot who I am, let's start over from scratch." That is, it clears its own event log and sends an announcement to the network, asking all ships that have communicated with it to reset its networking information in their state. This makes it as though the ship was just started for the first time again, since everyone on the network has forgotten about it.

Personal breaches often fix connectivity issues, but should only be used as a last resort. Before performing a personal breach, look at alternative fixes in the Ship Troubleshooting guide. Also reach out for help in the Help channel in the Urbit Community group ~bitbet-bolbel/urbit-community, or, failing that, in the #ship-starting-support channel in our Discord server to see if there is another option.

There are two types of personal breaches - one where your Ethereum ownership address remains the same, and one where you are switching to a new Ethereum ownership address. We make the emphasis about the Ethereum ownership address as changing your proxies does not require a breach.

If you will be keeping the same Ethereum ownership address and would like to perform a personal breach, follow the steps below.

If you are switching to a new Ethereum ownership address you will have the choice as to whether or not you want to breach. This is to cover the case when you are transferring to another address you own. The process here is slightly different.

Performing a personal breach on your ship increments an integer value called your ship's life by one, which refers to your ship's Azimuth key revision number. This value is utilized by Ames and Jael to ensure that you are communicating with a ship created using its most recent set of keys. Your ship's life is written at the end of the name of its keyfile, e.g. sampel-palnet-4.key. Changing the Etherum address that holds the Urbit ID, called reticketing, increments a number called the ship's rift by one in addition to incrementing your ship's life. Rift refers to your ship's Azimuth continuity number.

You can check your current life and rift number by running the +keys our generator in Dojo. You can inspect another ship's life and rift can be checked by running +keys ~sampel-palnet.

Network Breaches

A network breach is an event where all ships on the network are required to update to a new continuity era. Network breaches happen when an Arvo update is released that is too large to release over the air. The current continuity era is given by a value in Ames, our networking vane, that is incremented when a network breaches; only ships with the same such value are able to communicate with one another.

If a network breach is happening, follow the steps below.