|
|
- #! /bin/bash
- set -eu
- set -o pipefail
-
- IPV=$1
- ID=$2
- ASSERT_CASE=$3
- ASSERT_NODE_UP=1
- ASSERT_NODE_DOWN=0
- MAX_TRY=10
-
-
- ###########################################
- #
- # Wait for peer to catchup to other peers
- #
- ###########################################
-
- addr=$(test/p2p/address.sh $IPV $ID 26657)
- peerID=$(( $(($ID % 4)) + 1 )) # 1->2 ... 3->4 ... 4->1
- peer_addr=$(test/p2p/address.sh $IPV $peerID 26657)
-
- # get another peer's height
- h1=`curl -s $peer_addr/status | jq .result.sync_info.latest_block_height | jq fromjson`
-
- # get another peer's state
- root1=`curl -s $peer_addr/status | jq .result.sync_info.latest_app_hash`
-
- echo "Other peer is on height $h1 with state $root1"
- echo "Waiting for peer $ID to catch up"
-
- # wait for it to sync to past its previous height
- set +e
- set +o pipefail
- h2="0"
- COUNT=0
- while [[ "$h2" -lt "$(($h1+1))" ]]; do
- sleep 1
- h2=`curl -s $addr/status --connect-timeout 1 | jq .result.sync_info.latest_block_height | jq fromjson`
- COUNT=$((COUNT+1))
- echo "... $h2, try $COUNT"
- if [ "$COUNT" -ge "$MAX_TRY" ]; then
- if [ $ASSERT_CASE -eq $ASSERT_NODE_DOWN ]; then
- echo "double sign risk reduction operates normally as expected"
- fi
- if [ $ASSERT_CASE -eq $ASSERT_NODE_UP ]; then
- echo "double sign risk reduction fail"
- exit 1
- fi
- break
- fi
- done
-
-
- if [ $ASSERT_CASE -eq $ASSERT_NODE_UP ]; then
- # check the app hash
- root2=`curl -s $addr/status | jq .result.sync_info.latest_app_hash`
-
- if [[ "$root1" != "$root2" ]]; then
- echo "App hash after restart does not match. Got $root2; expected $root1"
- exit 1
- fi
- echo "... double sign risk reduction test passed"
- fi
|