From eb60eb78f3f06264711d31f57b6993a4b8a0afe6 Mon Sep 17 00:00:00 2001 From: librelois <c@elo.tf> Date: Sun, 17 Apr 2022 23:53:43 +0200 Subject: [PATCH] feat(scripts):create-live-network: reuse raw spec if already exist --- scripts/create-live-network.sh | 36 ++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/scripts/create-live-network.sh b/scripts/create-live-network.sh index c3d7cd6b9..37088ca02 100755 --- a/scripts/create-live-network.sh +++ b/scripts/create-live-network.sh @@ -1,12 +1,23 @@ #!/usr/bin/env bash +# +# USAGE +# +# 1. Generate genesis authorities session keys. +# 2. Create the json file that contains the genesis configuration and verify carefully that the +# declared session keys correspond to the one you have generated in the first step. +# 3. Generate raw chain specs with script `gen-live-network-raw-spec.sh`. +# 4. Share the generated raw spec with other genesis authorities. +# 5. Each genesis authority should run this script with its session keys seed. +# + # This script is meant to be run on Unix/Linux based systems set -e # params VALIDATOR_SESSION_KEYS_SURI=$1 -GENESIS="${2:-resources/gdev.json}" -CURRENCY="${3:-gdev}" -WORK_DIR="${4:-tmp/$CURRENCY}" +CURRENCY="${2:-gdev}" +WORK_DIR="${3:-tmp/$CURRENCY}" +SPEC_DIR="${4:-resources}" echo "CURRENCY=$CURRENCY" @@ -21,10 +32,18 @@ mkdir -p $WORK_DIR/duniter-validator # build client in debug mode #cargo clean -p duniter && cargo build -# generate raw_chain spec -export DUNITER_GENESIS_CONFIG=$GENESIS -$DUNITER_BINARY build-spec --chain $CURRENCY-gl --raw > $WORK_DIR/duniter-rpc/$CURRENCY-raw.json -cp $WORK_DIR/duniter-rpc/$CURRENCY-raw.json $WORK_DIR/duniter-validator/$CURRENCY-raw.json +if [ -e "$SPEC_DIR/$CURRENCY-raw.json" ] +then + # copy raw chain spec + cp $SPEC_DIR/$CURRENCY-raw.json $WORK_DIR/duniter-rpc/$CURRENCY-raw.json + cp $SPEC_DIR/$CURRENCY-raw.json $WORK_DIR/duniter-validator/$CURRENCY-raw.json +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 + 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) @@ -39,9 +58,10 @@ 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 +$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 # Launch the network +echo "compose ready in '$WORK_DIR'" cd $WORK_DIR #docker-compose up -d -- GitLab