@@ -21,26 +21,78 @@ redeploy your node.
2121
2222To 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