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"