github.com/evdatsion/aphelion-dpos-bft@v0.32.1/benchmarks/blockchain/localsync.sh (about)

     1  #!/bin/bash
     2  
     3  DATA=$GOPATH/src/github.com/evdatsion/aphelion-dpos-bft/benchmarks/blockchain/data
     4  if [ ! -d $DATA ]; then
     5    echo "no data found, generating a chain... (this only has to happen once)"
     6  
     7    tendermint init --home $DATA
     8    cp $DATA/config.toml $DATA/config2.toml
     9    echo "
    10    [consensus]
    11    timeout_commit = 0
    12    " >> $DATA/config.toml
    13  
    14    echo "starting node"
    15    tendermint node \
    16      --home $DATA \
    17      --proxy_app kvstore \
    18      --p2p.laddr tcp://127.0.0.1:56656 \
    19      --rpc.laddr tcp://127.0.0.1:56657 \
    20      --log_level error &
    21  
    22    echo "making blocks for 60s"
    23    sleep 60
    24  
    25    mv $DATA/config2.toml $DATA/config.toml
    26  
    27    kill %1
    28  
    29    echo "done generating chain."
    30  fi
    31  
    32  # validator node
    33  HOME1=$TMPDIR$RANDOM$RANDOM
    34  cp -R $DATA $HOME1
    35  echo "starting validator node"
    36  tendermint node \
    37    --home $HOME1 \
    38    --proxy_app kvstore \
    39    --p2p.laddr tcp://127.0.0.1:56656 \
    40    --rpc.laddr tcp://127.0.0.1:56657 \
    41    --log_level error &
    42  sleep 1
    43  
    44  # downloader node
    45  HOME2=$TMPDIR$RANDOM$RANDOM
    46  tendermint init --home $HOME2
    47  cp $HOME1/genesis.json $HOME2
    48  printf "starting downloader node"
    49  tendermint node \
    50    --home $HOME2 \
    51    --proxy_app kvstore \
    52    --p2p.laddr tcp://127.0.0.1:56666 \
    53    --rpc.laddr tcp://127.0.0.1:56667 \
    54    --p2p.persistent_peers 127.0.0.1:56656 \
    55    --log_level error &
    56  
    57  # wait for node to start up so we only count time where we are actually syncing
    58  sleep 0.5
    59  while curl localhost:56667/status 2> /dev/null | grep "\"latest_block_height\": 0," > /dev/null
    60  do
    61    printf '.'
    62    sleep 0.2
    63  done
    64  echo
    65  
    66  echo "syncing blockchain for 10s"
    67  for i in {1..10}
    68  do
    69    sleep 1
    70    HEIGHT="$(curl localhost:56667/status 2> /dev/null \
    71      | grep 'latest_block_height' \
    72      | grep -o ' [0-9]*' \
    73      | xargs)"
    74    let 'RATE = HEIGHT / i'
    75    echo "height: $HEIGHT, blocks/sec: $RATE"
    76  done
    77  
    78  kill %1
    79  kill %2
    80  rm -rf $HOME1 $HOME2