github.com/braveheart12/insolar-09-08-19@v0.8.7/scripts/insolard/start_nodes.sh (about) 1 #!/usr/bin/env bash 2 3 BIN_DIR=bin 4 BASE_DIR=scripts/insolard 5 NODES_DATA=$BASE_DIR/nodes 6 GENESIS_CONFIG=$BASE_DIR/genesis.yaml 7 INSOLARD=$BIN_DIR/insolard 8 CONFIGS_DIR=configs 9 ROOT_MEMBER_KEYS_FILE=$BASE_DIR/$CONFIGS_DIR/root_member_keys.json 10 GENERATED_CONFIGS_DIR=$BASE_DIR/$CONFIGS_DIR/generated_configs/nodes 11 CERT_GENERATOR=$BIN_DIR/certgen 12 13 insolar_log_level=Debug 14 15 NUM_NODES=$(sed -n '/^nodes:/,$p' $GENESIS_CONFIG | grep "host:" | grep -cv "#" ) 16 read -ra ROLES <<< $(sed -n '/^nodes:/,$p' ./scripts/insolard/genesis.yaml | grep "role" | cut -d: -f2) 17 18 for i in `seq 1 $NUM_NODES` 19 do 20 NODES+=($NODES_DATA/$i) 21 done 22 23 create_nodes_dir() 24 { 25 for node in "${NODES[@]}" 26 do 27 mkdir -vp $node/data 28 done 29 } 30 31 clear_dirs() 32 { 33 rm -rfv $NODES_DATA/* 34 } 35 36 generate_nodes_certs() 37 { 38 echo "generate_nodes_certs() starts ..." 39 mkdir $NODES_DATA/certs/ 40 i=0 41 for node in "${NODES[@]}" 42 do 43 role="${ROLES[$i]//\"}" 44 i=$((i + 1)) 45 $CERT_GENERATOR --root-conf $ROOT_MEMBER_KEYS_FILE -h "http://127.0.0.1:19101/api" -c $NODES_DATA/certs/node_cert_$i.json -k $node/keys.json -r $role 46 cp -v $NODES_DATA/certs/node_cert_$i.json $node/cert.json 47 done 48 echo "generate_nodes_certs() end." 49 } 50 51 printf "start nodes ... \n" 52 53 clear_dirs 54 create_nodes_dir 55 generate_nodes_certs 56 57 i=0 58 for node in "${NODES[@]}" 59 do 60 i=$((i + 1)) 61 INSOLAR_LOG_LEVEL=$insolar_log_level $INSOLARD --config $GENERATED_CONFIGS_DIR/insolar_$i.yaml --trace &> $node/output.log & 62 echo "NODE $i STARTED in background" 63 done 64 65 printf "nodes started ... \n"