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