|
|
@ -14,46 +14,60 @@ N=$1 |
|
|
|
echo "" |
|
|
|
# run the test on each of them |
|
|
|
for i in $(seq 1 "$N"); do |
|
|
|
addr=$(test/p2p/ip.sh "$i"):46657 |
|
|
|
|
|
|
|
# current state |
|
|
|
HASH1=$(curl -s "$addr/status" | jq .result.latest_app_hash) |
|
|
|
|
|
|
|
# - send a tx |
|
|
|
TX=aadeadbeefbeefbeef0$i |
|
|
|
echo "Broadcast Tx $TX" |
|
|
|
curl -s "$addr/broadcast_tx_commit?tx=0x$TX" |
|
|
|
echo "" |
|
|
|
|
|
|
|
# we need to wait another block to get the new app_hash |
|
|
|
h1=$(curl -s "$addr/status" | jq .result.latest_block_height) |
|
|
|
h2=$h1 |
|
|
|
while [ "$h2" == "$h1" ]; do |
|
|
|
sleep 1 |
|
|
|
h2=$(curl -s "$addr/status" | jq .result.latest_block_height) |
|
|
|
done |
|
|
|
|
|
|
|
# check that hash was updated |
|
|
|
HASH2=$(curl -s "$addr/status" | jq .result.latest_app_hash) |
|
|
|
if [[ "$HASH1" == "$HASH2" ]]; then |
|
|
|
echo "Expected state hash to update from $HASH1. Got $HASH2" |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
|
|
|
|
# check we get the same new hash on all other nodes |
|
|
|
for j in $(seq 1 "$N"); do |
|
|
|
if [[ "$i" != "$j" ]]; then |
|
|
|
addrJ=$(test/p2p/ip.sh "$j"):46657 |
|
|
|
HASH3=$(curl -s "$addrJ/status" | jq .result.latest_app_hash) |
|
|
|
|
|
|
|
if [[ "$HASH2" != "$HASH3" ]]; then |
|
|
|
echo "App hash for node $j doesn't match. Got $HASH3, expected $HASH2" |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
fi |
|
|
|
done |
|
|
|
|
|
|
|
echo "All nodes are up to date" |
|
|
|
addr=$(test/p2p/ip.sh "$i"):46657 |
|
|
|
|
|
|
|
# current state |
|
|
|
HASH1=$(curl -s "$addr/status" | jq .result.latest_app_hash) |
|
|
|
|
|
|
|
# - send a tx |
|
|
|
TX=aadeadbeefbeefbeef0$i |
|
|
|
echo "Broadcast Tx $TX" |
|
|
|
curl -s "$addr/broadcast_tx_commit?tx=0x$TX" |
|
|
|
echo "" |
|
|
|
|
|
|
|
# we need to wait another block to get the new app_hash |
|
|
|
h1=$(curl -s "$addr/status" | jq .result.latest_block_height) |
|
|
|
h2=$h1 |
|
|
|
while [ "$h2" == "$h1" ]; do |
|
|
|
sleep 1 |
|
|
|
h2=$(curl -s "$addr/status" | jq .result.latest_block_height) |
|
|
|
done |
|
|
|
|
|
|
|
# wait for all other peers to get to this height |
|
|
|
minHeight=$h2 |
|
|
|
for j in $(seq 1 "$N"); do |
|
|
|
if [[ "$i" != "$j" ]]; then |
|
|
|
addrJ=$(test/p2p/ip.sh "$j"):46657 |
|
|
|
|
|
|
|
h=$(curl -s "$addrJ/status" | jq .result.latest_block_height) |
|
|
|
while [ "$h" -lt "$minHeight" ]; do |
|
|
|
sleep 1 |
|
|
|
h=$(curl -s "$addrJ/status" | jq .result.latest_block_height) |
|
|
|
done |
|
|
|
fi |
|
|
|
done |
|
|
|
|
|
|
|
# check that hash was updated |
|
|
|
HASH2=$(curl -s "$addr/status" | jq .result.latest_app_hash) |
|
|
|
if [[ "$HASH1" == "$HASH2" ]]; then |
|
|
|
echo "Expected state hash to update from $HASH1. Got $HASH2" |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
|
|
|
|
# check we get the same new hash on all other nodes |
|
|
|
for j in $(seq 1 "$N"); do |
|
|
|
if [[ "$i" != "$j" ]]; then |
|
|
|
addrJ=$(test/p2p/ip.sh "$j"):46657 |
|
|
|
HASH3=$(curl -s "$addrJ/status" | jq .result.latest_app_hash) |
|
|
|
|
|
|
|
if [[ "$HASH2" != "$HASH3" ]]; then |
|
|
|
echo "App hash for node $j doesn't match. Got $HASH3, expected $HASH2" |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
fi |
|
|
|
done |
|
|
|
|
|
|
|
echo "All nodes are up to date" |
|
|
|
done |
|
|
|
|
|
|
|
echo "" |
|
|
|