Skip to content

Commit e2282e4

Browse files
committed
disallow changing genesis
1 parent 9b5a3ea commit e2282e4

File tree

5 files changed

+50904
-50876
lines changed

5 files changed

+50904
-50876
lines changed

plain_spec_finney.json

Lines changed: 50866 additions & 50866 deletions
Large diffs are not rendered by default.

plain_spec_testfinney.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

raw_spec_finney.json

Lines changed: 3 additions & 3 deletions
Large diffs are not rendered by default.

raw_spec_testfinney.json

Lines changed: 3 additions & 3 deletions
Large diffs are not rendered by default.

scripts/build_all_chainspecs.sh

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,39 @@ set -e
55
echo "*** Building node..."
66
cargo build
77

8-
echo "*** Building chainspecs..."
9-
./target/debug/node-subtensor build-spec --raw --chain finney >raw_spec_finney.json
8+
echo "*** Building new chainspecs..."
9+
10+
finney_genesis_temp=$(mktemp)
11+
testfinney_genesis_temp=$(mktemp)
12+
raw_spec_finney_temp=$(mktemp)
13+
raw_spec_testfinney_temp=$(mktemp)
14+
15+
# Save old genesis state before doing anything
16+
jq -r ".genesis" /tmp/raw_spec_finney.json.old >"$finney_genesis_temp"
17+
jq -r ".genesis" /tmp/raw_spec_testfinney.json.old >"$testfinney_genesis_temp"
18+
19+
# Build new chainspecs
20+
./target/debug/node-subtensor build-spec --raw --chain finney >"$raw_spec_finney_temp"
1021
./target/debug/node-subtensor build-spec --chain finney >plain_spec_finney.json
1122

12-
./target/debug/node-subtensor build-spec --raw --chain test_finney >raw_spec_testfinney.json
23+
./target/debug/node-subtensor build-spec --raw --chain test_finney >"$raw_spec_testfinney_temp"
1324
./target/debug/node-subtensor build-spec --chain test_finney >plain_spec_testfinney.json
1425

26+
echo "*** Updating genesis..."
27+
28+
# The genesis is not allowed to change. Since the wasm genesis will change depending on the system
29+
# architecture used, we need to extract the genesis from the old chain specs and insert them into
30+
# the new chain specs to ensure there are no genesis mismatch issues.
31+
32+
# Update genesis in new chainspecs using the extracted genesis data from the temporary files
33+
jq --slurpfile genesis "$finney_genesis_temp" '.genesis = $genesis[0]' "$raw_spec_finney_temp" >raw_spec_finney_temp_updated
34+
jq --slurpfile genesis "$testfinney_genesis_temp" '.genesis = $genesis[0]' "$raw_spec_testfinney_temp" >raw_spec_testfinney_temp_updated
35+
36+
# Success! Actually replace the raw spec files.
37+
mv raw_spec_finney_temp_updated raw_spec_finney.json
38+
mv raw_spec_testfinney_temp_updated raw_spec_testfinney.json
39+
40+
# Cleanup
41+
rm -f "$finney_genesis_temp" "$testfinney_genesis_temp" "$raw_spec_finney_temp" "$raw_spec_testfinney_temp"
42+
1543
echo "*** Done!"

0 commit comments

Comments
 (0)