github.com/okex/exchain@v1.8.0/libs/tendermint/test/persist/test_simple.sh (about) 1 #! /bin/bash 2 3 4 export TMHOME=$HOME/.tendermint_persist 5 6 rm -rf $TMHOME 7 tendermint init 8 9 function start_procs(){ 10 name=$1 11 echo "Starting persistent kvstore and tendermint" 12 abci-cli kvstore --persist $TMHOME/kvstore &> "kvstore_${name}.log" & 13 PID_DUMMY=$! 14 tendermint node &> tendermint_${name}.log & 15 PID_TENDERMINT=$! 16 sleep 5 17 } 18 19 function kill_procs(){ 20 kill -9 $PID_DUMMY $PID_TENDERMINT 21 } 22 23 24 function send_txs(){ 25 # send a bunch of txs over a few blocks 26 echo "Sending txs" 27 for i in `seq 1 5`; do 28 for j in `seq 1 100`; do 29 tx=`head -c 8 /dev/urandom | hexdump -ve '1/1 "%.2X"'` 30 curl -s 127.0.0.1:26657/broadcast_tx_async?tx=0x$tx &> /dev/null 31 done 32 sleep 1 33 done 34 } 35 36 37 start_procs 1 38 send_txs 39 kill_procs 40 41 start_procs 2 42 43 # wait for node to handshake and make a new block 44 addr="localhost:26657" 45 curl -s $addr/status > /dev/null 46 ERR=$? 47 i=0 48 while [ "$ERR" != 0 ]; do 49 sleep 1 50 curl -s $addr/status > /dev/null 51 ERR=$? 52 i=$(($i + 1)) 53 if [[ $i == 10 ]]; then 54 echo "Timed out waiting for tendermint to start" 55 exit 1 56 fi 57 done 58 59 # wait for a new block 60 h1=`curl -s $addr/status | jq .result.sync_info.latest_block_height` 61 h2=$h1 62 while [ "$h2" == "$h1" ]; do 63 sleep 1 64 h2=`curl -s $addr/status | jq .result.sync_info.latest_block_height` 65 done 66 67 kill_procs 68 sleep 2 69 70 echo "Passed Test: Persistence"