Skip to content

Commit 52264bb

Browse files
Improve sv network reset docs
[static] Signed-off-by: Robert Autenrieth <[email protected]>
1 parent d0062ca commit 52264bb

File tree

1 file changed

+75
-23
lines changed

1 file changed

+75
-23
lines changed

docs/src/sv_operator/sv_network_resets.rst

Lines changed: 75 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -21,26 +21,78 @@ redeploy your node.
2121

2222
To complete the reset, go through the following steps:
2323

24-
1. Take a backup of the DSO configuration (replace YOUR_SCAN_URL with your own scan e.g. |gsf_scan_url|)::
25-
26-
curl -sSL --fail-with-body https://YOUR_SCAN_URL/api/scan/v0/dso > backup.json
27-
28-
The backup allows you to verify that the SV weights and package versions do not change as part of the reset.
29-
2. Check your desired coin price in the SV UI.
30-
3. Uninstall all helm charts.
31-
4. Delete all PVCs, docker volumes and databases (including databases
32-
in Amazon AWS, GCP CloudSQL or similar).
33-
5. Find the new ``chainIdSuffix`` for cometbft. Usually this will just increase by 1 on a network
34-
reset but double check with the other SV operators on what has been agreed upon.
35-
6. Redeploy your node with migration id 0, the new ``chainIdSuffix``, and ``initialAmuletPrice``
36-
in the SV helm values. Note that this requires changes in the helm values of all charts.
37-
7. Take a backup of your node identities as they change as part of the
38-
reset.
39-
8. Verify that the SV weights (after all SVs rejoined after the reset) and package versions did not change by querying scan again after the reset.
40-
9. Verify that your coin price vote has been set as desired.
41-
42-
.. code-block:: bash
43-
44-
curl -sSL --fail-with-body https://YOUR_SCAN_URL/api/scan/v0/dso > current_state.json
45-
diff -C2 <(jq '.dso_rules.contract.payload.svs.[] | [.[1].name, .[1].svRewardWeight]' < backup.json) <(jq '.dso_rules.contract.payload.svs.[] | [.[1].name, .[1].svRewardWeight]' < current_state.json)
46-
diff <(jq '.amulet_rules.contract.payload.configSchedule.initialValue.packageConfig' < backup.json) <(jq '.amulet_rules.contract.payload.configSchedule.initialValue.packageConfig' < current_state.json)
24+
1. Backup information to be preserved across the reset
25+
26+
a. Take a backup of the DSO configuration (replace YOUR_SCAN_URL with your own scan e.g. |gsf_scan_url|)::
27+
28+
curl -sSL --fail-with-body https://YOUR_SCAN_URL/api/scan/v0/dso > backup.json
29+
30+
The backup allows you to verify that the SV weights and package versions do not change as part of the reset.
31+
b. Make a note of your desired amulet price in the SV UI.
32+
c. Make a note of all ongoing votes in the SV UI.
33+
Ongoing votes will be lost as part of the reset and need to be recreated manually after the reset.
34+
35+
2. Decommission your old node
36+
37+
a. Uninstall all helm charts.
38+
b. Delete all PVCs, docker volumes and databases (including databases
39+
in Amazon AWS, GCP CloudSQL or similar).
40+
41+
4. Deploy your new node
42+
43+
a. Set the migration id to 0 in helm chart values. The migration id appears in all helm charts,
44+
both as its own value, e.g.::
45+
46+
migration:
47+
id: "MIGRATION_ID"
48+
49+
and as part of various values, e.g.::
50+
51+
sequencerPublicUrl: "https://sequencer-MIGRATION_ID.sv.YOUR_HOSTNAME"
52+
53+
b. Set ``initialAmuletPrice`` to your desired price in ``sv-values.yaml`` (see step 1.b).
54+
c. Set ``chainIdSuffix`` to the new value in ``cometbft-values.yaml`` and ``info-values.yaml``.
55+
Usually this will just increase by 1 on a network reset but double check with
56+
the other SV operators on what has been agreed upon.
57+
d. Install all helm charts.
58+
e. Wait until your SV node is sending status reports.
59+
60+
5. Verify that network parameters were preserved
61+
62+
a. Confirm that the reset did not change any network parameters
63+
by repeating step 1.a and comparing the result:
64+
65+
.. code-block:: bash
66+
67+
curl -sSL --fail-with-body https://YOUR_SCAN_URL/api/scan/v0/dso > current_state.json
68+
69+
The reset should preserve SV reward weights, i.e., the following diff should be empty:
70+
71+
.. code-block:: bash
72+
73+
jq '.dso_rules.contract.payload.svs.[] | [.[1].name, .[1].svRewardWeight]' backup.json > weights_backup.json
74+
jq '.dso_rules.contract.payload.svs.[] | [.[1].name, .[1].svRewardWeight]' current_state.json > weights_current.json
75+
diff -C2 weights_backup.json weights_current.json
76+
77+
The reset should also preserve the amulet rules modulo cryptographic keys, i.e., the following diff should
78+
only show changes to the dso and synchronizer namespaces:
79+
80+
.. code-block:: bash
81+
82+
jq '.amulet_rules.contract.payload' backup.json > amulet_backup.json
83+
jq '.amulet_rules.contract.payload' current_state.json > amulet_current.json
84+
diff amulet_backup.json amulet_current.json
85+
86+
b. Check your desired coin price in the SV UI, and verify that it matches
87+
the value from before the reset (see step 1.b.)
88+
89+
6. Take a backup of your node identities as they change as part of the
90+
reset.
91+
92+
7. Other post-reset actions
93+
94+
a. Recreate votes for featured apps
95+
b. Recreate votes that were ongoing at the time of the reset, see step 1.c.
96+
c. Re-issue secrets
97+
d. Update your auto-sweeping configuration, as party ids change as part
98+
of the reset.

0 commit comments

Comments
 (0)