@@ -0,0 +1,59 @@
1++++
2+title = "Life and Rift"
3+weight = 3
4+template = "doc.html"
5+aliases = ["/docs/learn/azimuth"]
6++++
7+
8+Associated to every Azimuth point are two non-negative integers known as _life_
9+and _rift_. This numbering system partition messages according to the quantity
10+of networking key changes and quantity of
11+[breaches](@/using/id/guide-to-breaches.md), respectively. This is explained in
12+more detail below. These values are utilized by [Ames](@/docs/arvo/ames/ames.md)
13+and [Jael](@/docs/arvo/jael/jael-api.md) to ensure that communication between
14+ships is always done with the most recent set of networking keys, and that
15+networking state is appropriately reset when a breach has occurred.
16+
17+Every ship begins with a `life` and `rift` of 0. For
18+galaxies, stars, and planets, these values are stored in the Azimuth PKI, while
19+for moons, these values are stored by their parent. Comets cannot change their
20+networking keys, nor can they breach, and so their `life` and `rift` are always 0.
21+
22+You can check your current `life` and `rift` number by running the `+keys our`
23+generator in dojo. You can inspect another ship's `life` and `rift` by running
24+`+keys ~sampel-palnet`.
25+
26+## Life
27+
28+A ship's `life`, or _key revision number_, is a count of the number of times which
29+a ship's networking keys have been altered. The initial value of each key is
30+always zero, and the initial `life` is always 0.
31+
32+Thus, setting the keys of a ship to a nonzero value for the first time will
33+increment the `life` from 0 to 1. Rotating to a new set of keys will then
34+increment the `life` to 2. Setting the keys back to zero would increment the
35+`life` once more, to 3.
36+
37+## Rift
38+
39+A ship's `rift`, or _continuity number_, is a count of the number of times that
40+a ship has breached, also known as broken continuity.
41+
42+In other words, a ship's `rift` will remain at 0 until the first time it is
43+breached.
44+
45+Network-wide breaches do not affect the `rift` of any ship. They are only used to
46+count the number of personal breaches.
47+
48+## Edge cases
49+
50+Configuring the keys to the same value they already were (i.e. a no-op) is
51+possible, but has no effect on the `life`. Thus `life` is actually a measure of
52+networking key _revisions_, and not the number of times they've been set.
53+
54+Thus under ordinary circumstances, a breach will increment both `life` and
55+`rift` since a breach typically also involves changing the networking keys.
56+However, it is possible to breach without changing the networking keys.
57+If the new keys specified
58+as part of a breach are the same as the old, `rift` will increment while
59+`life` will not.