11#! /bin/bash
22
3+ # The genesis is not allowed to change. Since the wasm genesis will change
4+ # depending on the system architecture used, we need to extract the genesis from
5+ # the old chain specs and insert them into the new chain specs to ensure there
6+ # are no genesis mismatch issues.
7+
8+ # This script updates the chain spec files keeping the genesis unchanged.
9+
310set -e
411
512raw_finney=" chainspecs/raw_spec_finney.json"
6- raw_testfinney=" chainspecs/raw_spec_testfinney.json"
713plain_finney=" chainspecs/plain_spec_finney.json"
14+ raw_testfinney=" chainspecs/raw_spec_testfinney.json"
815plain_testfinney=" chainspecs/plain_spec_testfinney.json"
916
10- finney_genesis_temp=$( mktemp)
11- testfinney_genesis_temp=$( mktemp)
12- raw_spec_finney_temp=$( mktemp)
13- raw_spec_testfinney_temp=$( mktemp)
14-
1517save_genesis () {
1618 jq -r " .genesis" " $1 " > " $2 "
1719}
@@ -28,41 +30,43 @@ update_genesis() {
2830 jq --slurpfile genesis " $1 " ' .genesis = $genesis[0]' " $2 " > " $3 "
2931}
3032
31- cleanup () {
32- rm -f " $finney_genesis_temp " \
33- " $testfinney_genesis_temp " \
34- " $raw_spec_finney_temp " \
35- " $raw_spec_testfinney_temp "
36- }
33+ update_spec () {
34+ local chain=" $1 "
35+ local raw_path=" $2 "
36+ local plain_path=" $3 "
3737
38- # SCRIPT
38+ raw_genesis_temp=$( mktemp)
39+ plain_genesis_temp=$( mktemp)
40+ raw_spec_temp=$( mktemp)
41+ plain_spec_temp=$( mktemp)
3942
40- echo " *** Building new chainspecs ..."
43+ echo " *** Backing up genesis for ' $chain ' ..."
4144
42- echo " *** Building node... "
43- cargo build -p node-subtensor
45+ save_genesis " $raw_path " " $raw_genesis_temp "
46+ save_genesis " $plain_path " " $plain_genesis_temp "
4447
45- # Save old genesis state before doing anything
46- save_genesis " $raw_finney " " $finney_genesis_temp "
47- save_genesis " $raw_testfinney " " $testfinney_genesis_temp "
48+ echo " *** Building new chainspec for '$chain '..."
4849
49- # Build new chainspecs
50- buildspec finney --raw > " $raw_spec_finney_temp "
51- buildspec finney > " $plain_finney "
50+ # Build new chainspecs
51+ buildspec " $chain " > " $plain_spec_temp "
52+ buildspec " $chain " --raw > " $raw_spec_temp "
5253
53- buildspec test_finney --raw > " $raw_spec_testfinney_temp "
54- buildspec test_finney > " $plain_testfinney "
54+ echo " *** Restoring genesis in '$chain '..."
5555
56- echo " *** Updating genesis..."
56+ update_genesis " $raw_genesis_temp " " $raw_spec_temp " " $raw_path "
57+ update_genesis " $plain_genesis_temp " " $plain_spec_temp " " $plain_path "
5758
58- # The genesis is not allowed to change. Since the wasm genesis will change
59- # depending on the system architecture used, we need to extract the genesis from
60- # the old chain specs and insert them into the new chain specs to ensure there
61- # are no genesis mismatch issues.
62- update_genesis " $finney_genesis_temp " " $raw_spec_finney_temp " " $raw_finney "
63- update_genesis " $testfinney_genesis_temp " " $raw_spec_testfinney_temp " \
64- " $raw_testfinney "
59+ # cleanup
60+ rm -f " $raw_genesis_temp " " $plain_genesis_temp " " $raw_spec_temp " \
61+ " $plain_spec_temp "
62+ }
63+
64+ # SCRIPT
65+
66+ echo " *** Building node..."
67+ cargo build -p node-subtensor
6568
66- cleanup
69+ update_spec finney " $raw_finney " " $plain_finney "
70+ update_spec test_finney " $raw_testfinney " " $plain_testfinney "
6771
6872echo " *** Done!"
0 commit comments