diff --git a/docker/compose-examples/live-template.docker-compose.yml b/docker/compose-examples/live-template.docker-compose.yml index eeb47d993c079ff5f260c21180ef75ee9871c396..cb65660bbfd2aaf6e7d395e5f710a9295d8e1d5f 100644 --- a/docker/compose-examples/live-template.docker-compose.yml +++ b/docker/compose-examples/live-template.docker-compose.yml @@ -11,7 +11,7 @@ services: POSTGRES_PASSWORD: postgres duniter-rpc: - image: duniter/duniter-v2s:debug-sha-acaf89a4 + image: duniter/duniter-v2s:DUNITER_IMAGE_TAG restart: unless-stopped ports: - "9944:9944" @@ -30,7 +30,7 @@ services: - "all" duniter-validator: - image: duniter/duniter-v2s:debug-sha-acaf89a4 + image: duniter/duniter-v2s:DUNITER_IMAGE_TAG restart: unless-stopped ports: - "127.0.0.1:9945:9944" diff --git a/scripts/create-live-network.sh b/scripts/create-live-network.sh index 37088ca023b6d71e425a785f2f80f14d62d3401f..7c8a125360fac3985cb5a0e4170421eadadf7ea1 100755 --- a/scripts/create-live-network.sh +++ b/scripts/create-live-network.sh @@ -22,15 +22,19 @@ SPEC_DIR="${4:-resources}" echo "CURRENCY=$CURRENCY" # constants -DUNITER_BINARY="./target/debug/duniter" +DUNITER_IMAGE_TAG="debug-sha-66ffb479" # Clean and (re-)create working forders rm -rf $WORK_DIR mkdir -p $WORK_DIR/duniter-rpc -mkdir -p $WORK_DIR/duniter-validator +mkdir -p $WORK_DIR/duniter-validator/chains/$CURRENCY -# build client in debug mode -#cargo clean -p duniter && cargo build +# Helper to execute a duniter subcommand in docker +function duniter_tmp () { + docker rm duniter-tmp > /dev/null + OUTPUT=$(docker run --name duniter-tmp -it --entrypoint duniter duniter/duniter-v2s:$DUNITER_IMAGE_TAG "$@") + echo "${OUTPUT::-1}" +} if [ -e "$SPEC_DIR/$CURRENCY-raw.json" ] then @@ -41,25 +45,35 @@ else # generate raw chain spec echo "generate raw_chain spec…" export DUNITER_GENESIS_CONFIG="$SPEC_DIR/$CURRENCY.json" - $DUNITER_BINARY build-spec --chain $CURRENCY-gl --raw > $WORK_DIR/duniter-rpc/$CURRENCY-raw.json + duniter_tmp build-spec --chain $CURRENCY-gl --raw > /var/lib/duniter/$CURRENCY-raw.json + docker cp duniter-tmp:/var/lib/duniter/$CURRENCY-raw.json $WORK_DIR/duniter-rpc/$CURRENCY-raw.json cp $WORK_DIR/duniter-rpc/$CURRENCY-raw.json $WORK_DIR/duniter-validator/$CURRENCY-raw.json fi # generate rpc node key -RPC_NODE_KEY=$($DUNITER_BINARY key generate-node-key --file $WORK_DIR/duniter-rpc/node-key 2>&1) +echo "generate rpc node key…" +RPC_NODE_KEY=$(duniter_tmp key generate-node-key --file /var/lib/duniter/node-key.txt) +docker cp duniter-tmp:/var/lib/duniter/node-key.txt $WORK_DIR/duniter-rpc/node-key +echo "RPC_NODE_KEY=$RPC_NODE_KEY" # generate validator node key -VALIDATOR_NODE_KEY=$($DUNITER_BINARY key generate-node-key --file $WORK_DIR/duniter-validator/node-key 2>&1) +echo "generate validator node key…" +VALIDATOR_NODE_KEY=$(duniter_tmp key generate-node-key --file /var/lib/duniter/node-key.txt) +docker cp duniter-tmp:/var/lib/duniter/node-key.txt $WORK_DIR/duniter-validator/node-key +echo "VALIDATOR_NODE_KEY=$VALIDATOR_NODE_KEY" # generate docker-compose file +echo "generate docker-compose file…" cp docker/compose-examples/live-template.docker-compose.yml $WORK_DIR/docker-compose.yml +sed -i -e "s/DUNITER_IMAGE_TAG/$DUNITER_IMAGE_TAG/g" $WORK_DIR/docker-compose.yml sed -i -e "s/CURRENCY/$CURRENCY/g" $WORK_DIR/docker-compose.yml sed -i -e "s/RPC_NODE_KEY/$RPC_NODE_KEY/g" $WORK_DIR/docker-compose.yml sed -i -e "s/VALIDATOR_NODE_KEY/$VALIDATOR_NODE_KEY/g" $WORK_DIR/docker-compose.yml # Inject validator session keys in validator node keystore -$DUNITER_BINARY key generate-session-keys --chain "${CURRENCY}_local" --suri "$VALIDATOR_SESSION_KEYS_SURI" -d $WORK_DIR/duniter-validator > /dev/null -mv $WORK_DIR/duniter-validator/chains/${CURRENCY}_local $WORK_DIR/duniter-validator/chains/$CURRENCY +echo "Inject validator session keys in validator node keystore…" +duniter_tmp key generate-session-keys --chain "${CURRENCY}_local" --suri "$VALIDATOR_SESSION_KEYS_SURI" -d /var/lib/duniter +docker cp duniter-tmp:/var/lib/duniter/chains/${CURRENCY}_local/keystore $WORK_DIR/duniter-validator/chains/$CURRENCY # Launch the network echo "compose ready in '$WORK_DIR'"