Skip to content

Commit 9da2947

Browse files
authored
Merge pull request #1025 from opentensor/chore/chainspecs-folder
Move chainspecs to a dedicated directory
2 parents ddc3804 + b55e3e1 commit 9da2947

9 files changed

+64
-28
lines changed

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ EXPOSE 30333 9933 9944
3838
FROM $BASE_IMAGE AS subtensor
3939

4040
# Copy all chainspec files
41-
COPY --from=builder /build/*.json /
41+
COPY --from=builder /build/chainspecs/*.json /
4242

4343
# Copy final binary
4444
COPY --from=builder /build/target/production/node-subtensor /usr/local/bin
File renamed without changes.

plain_spec_finney.json renamed to chainspecs/plain_spec_finney.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105141,4 +105141,4 @@
105141105141
}
105142105142
}
105143105143
}
105144-
}
105144+
}

plain_spec_testfinney.json renamed to chainspecs/plain_spec_testfinney.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,4 +71,4 @@
7171
}
7272
}
7373
}
74-
}
74+
}
File renamed without changes.
File renamed without changes.
File renamed without changes.

scripts/build_all_chainspecs.sh

Lines changed: 60 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,75 @@
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+
310
set -e
411

5-
echo "*** Building node..."
6-
cargo build -p node-subtensor
12+
raw_finney="chainspecs/raw_spec_finney.json"
13+
plain_finney="chainspecs/plain_spec_finney.json"
14+
raw_testfinney="chainspecs/raw_spec_testfinney.json"
15+
plain_testfinney="chainspecs/plain_spec_testfinney.json"
16+
raw_devnet="chainspecs/raw_spec_devnet.json"
17+
plain_devnet="chainspecs/plain_spec_devnet.json"
18+
19+
save_genesis() {
20+
jq -r ".genesis" "$1" >"$2"
21+
}
22+
23+
buildspec() {
24+
local chain="$1"
25+
shift
26+
./target/debug/node-subtensor build-spec --chain "$chain" --disable-default-bootnode "$@"
27+
}
728

8-
echo "*** Building new chainspecs..."
29+
# Update genesis in new chainspecs using the extracted genesis data from the
30+
# temporary files
31+
update_genesis() {
32+
jq --slurpfile genesis "$1" '.genesis = $genesis[0]' "$2" >"$3"
33+
}
934

10-
finney_genesis_temp=$(mktemp)
11-
testfinney_genesis_temp=$(mktemp)
12-
raw_spec_finney_temp=$(mktemp)
13-
raw_spec_testfinney_temp=$(mktemp)
35+
update_spec() {
36+
local chain="$1"
37+
local raw_path="$2"
38+
local plain_path="$3"
1439

15-
# Save old genesis state before doing anything
16-
jq -r ".genesis" raw_spec_finney.json >"$finney_genesis_temp"
17-
jq -r ".genesis" raw_spec_testfinney.json >"$testfinney_genesis_temp"
40+
raw_genesis_temp=$(mktemp)
41+
plain_genesis_temp=$(mktemp)
42+
raw_spec_temp=$(mktemp)
43+
plain_spec_temp=$(mktemp)
1844

19-
# Build new chainspecs
20-
./target/debug/node-subtensor build-spec --raw --chain finney >"$raw_spec_finney_temp"
21-
./target/debug/node-subtensor build-spec --chain finney >plain_spec_finney.json
45+
echo "*** Backing up genesis for '$chain'..."
2246

23-
./target/debug/node-subtensor build-spec --raw --chain test_finney >"$raw_spec_testfinney_temp"
24-
./target/debug/node-subtensor build-spec --chain test_finney >plain_spec_testfinney.json
47+
save_genesis "$raw_path" "$raw_genesis_temp"
48+
save_genesis "$plain_path" "$plain_genesis_temp"
2549

26-
echo "*** Updating genesis..."
50+
echo "*** Building new chainspec for '$chain'..."
2751

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.
52+
# Build new chainspecs
53+
buildspec "$chain" >"$plain_spec_temp"
54+
buildspec "$chain" --raw >"$raw_spec_temp"
3155

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.json
34-
jq --slurpfile genesis "$testfinney_genesis_temp" '.genesis = $genesis[0]' "$raw_spec_testfinney_temp" >raw_spec_testfinney.json
56+
echo "*** Restoring genesis in '$chain'..."
57+
58+
update_genesis "$raw_genesis_temp" "$raw_spec_temp" "$raw_path"
59+
update_genesis "$plain_genesis_temp" "$plain_spec_temp" "$plain_path"
60+
61+
# cleanup
62+
rm -f "$raw_genesis_temp" "$plain_genesis_temp" "$raw_spec_temp" \
63+
"$plain_spec_temp"
64+
}
65+
66+
# SCRIPT
67+
68+
echo "*** Building node..."
69+
cargo build -p node-subtensor
3570

36-
# Cleanup
37-
rm -f "$finney_genesis_temp" "$testfinney_genesis_temp" "$raw_spec_finney_temp" "$raw_spec_testfinney_temp"
71+
update_spec finney "$raw_finney" "$plain_finney"
72+
update_spec test_finney "$raw_testfinney" "$plain_testfinney"
73+
update_spec devnet "$raw_devnet" "$plain_devnet"
3874

3975
echo "*** Done!"

scripts/run/subtensor.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ function run_command() {
4141
# Command to run subtensor
4242
$F_BIN_PATH \
4343
--base-path /tmp/blockchain \
44-
--chain ./raw_spec_finney.json \
44+
--chain ./chainspecs/raw_spec_finney.json \
4545
--rpc-external --rpc-cors all \
4646
--no-mdns \
4747
--rpc-max-connections 10000 --in-peers 500 --out-peers 500 \

0 commit comments

Comments
 (0)