Merge branch 'master' into develop
This commit is contained in:
commit
128e2a1d9e
12
CHANGELOG.md
12
CHANGELOG.md
|
@ -27,24 +27,23 @@ BUG FIXES:
|
||||||
- Graceful handling/recovery for apps that have non-determinism or fail to halt
|
- Graceful handling/recovery for apps that have non-determinism or fail to halt
|
||||||
- Graceful handling/recovery for violations of safety, or liveness
|
- Graceful handling/recovery for violations of safety, or liveness
|
||||||
|
|
||||||
## 0.12.0 (TBD)
|
## 0.12.0 (October 27, 2017)
|
||||||
|
|
||||||
BREAKING CHANGES:
|
BREAKING CHANGES:
|
||||||
- rpc/client: websocket ResultsCh and ErrorsCh unified in ResponsesCh.
|
- rpc/client: websocket ResultsCh and ErrorsCh unified in ResponsesCh.
|
||||||
- rpc/client: ABCIQuery no longer takes `prove`
|
- rpc/client: ABCIQuery no longer takes `prove`
|
||||||
- state: remove GenesisDoc from state.
|
- state: remove GenesisDoc from state.
|
||||||
- consensus: new binary WAL format provides efficiency and uses checksums to detect corruption
|
- consensus: new binary WAL format provides efficiency and uses checksums to detect corruption
|
||||||
- see scripts/wal2json to convert to json for debugging
|
- use scripts/wal2json to convert to json for debugging
|
||||||
|
|
||||||
FEATURES:
|
FEATURES:
|
||||||
- new `certifiers` pkg contains the tendermint light-client library!
|
- new `certifiers` pkg contains the tendermint light-client library (name subject to change)!
|
||||||
- rpc: `/genesis` includes the `app_options` .
|
- rpc: `/genesis` includes the `app_options` .
|
||||||
- rpc: `/abci_query` takes an additional `height` parameter to support historical queries.
|
- rpc: `/abci_query` takes an additional `height` parameter to support historical queries.
|
||||||
- rpc/client: new ABCIQueryWithOptions supports options like `trusted` (set false to get a proof`) and `height` to query a historical height.
|
- rpc/client: new ABCIQueryWithOptions supports options like `trusted` (set false to get a proof) and `height` to query a historical height.
|
||||||
|
|
||||||
IMPROVEMENTS:
|
IMPROVEMENTS:
|
||||||
- genesis doc: added `app_options` field, which, along with the other fields,
|
- rpc: `/genesis` result includes `app_options`
|
||||||
will be returned upon `/genesis` rpc call.
|
|
||||||
- rpc/lib/client: add jitter to reconnects.
|
- rpc/lib/client: add jitter to reconnects.
|
||||||
- rpc/lib/types: `RPCError` satisfies the `error` interface.
|
- rpc/lib/types: `RPCError` satisfies the `error` interface.
|
||||||
|
|
||||||
|
@ -52,6 +51,7 @@ BUG FIXES:
|
||||||
- rpc/client: fix ws deadlock after stopping
|
- rpc/client: fix ws deadlock after stopping
|
||||||
- blockchain: fix panic on AddBlock when peer is nil
|
- blockchain: fix panic on AddBlock when peer is nil
|
||||||
- mempool: fix sending on TxsAvailable when a tx has been invalidated
|
- mempool: fix sending on TxsAvailable when a tx has been invalidated
|
||||||
|
- consensus: dont run WAL catchup if we fast synced
|
||||||
|
|
||||||
## 0.11.1 (October 10, 2017)
|
## 0.11.1 (October 10, 2017)
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
hash: 58d209dee0c21d507226d6b56f7b7f49d24f60090ef9a6c1d89bc27ff00f90e4
|
hash: 0f9ba99fd411afaaf90993037b0067c5f9f873554f407a6ae9afa0e2548343c5
|
||||||
updated: 2017-10-26T00:04:10.142172009-04:00
|
updated: 2017-10-27T22:34:38.187149434-04:00
|
||||||
imports:
|
imports:
|
||||||
- name: github.com/btcsuite/btcd
|
- name: github.com/btcsuite/btcd
|
||||||
version: c7588cbf7690cd9f047a28efa2dcd8f2435a4e5e
|
version: 8cea3866d0f7fb12d567a20744942c0d078c7d15
|
||||||
subpackages:
|
subpackages:
|
||||||
- btcec
|
- btcec
|
||||||
- name: github.com/ebuchman/fail-test
|
- name: github.com/ebuchman/fail-test
|
||||||
|
@ -10,7 +10,7 @@ imports:
|
||||||
- name: github.com/fsnotify/fsnotify
|
- name: github.com/fsnotify/fsnotify
|
||||||
version: 4da3e2cfbabc9f751898f250b49f2439785783a1
|
version: 4da3e2cfbabc9f751898f250b49f2439785783a1
|
||||||
- name: github.com/go-kit/kit
|
- name: github.com/go-kit/kit
|
||||||
version: 4dc7be5d2d12881735283bcab7352178e190fc71
|
version: e2b298466b32c7cd5579a9b9b07e968fc9d9452c
|
||||||
subpackages:
|
subpackages:
|
||||||
- log
|
- log
|
||||||
- log/level
|
- log/level
|
||||||
|
@ -98,7 +98,7 @@ imports:
|
||||||
- leveldb/table
|
- leveldb/table
|
||||||
- leveldb/util
|
- leveldb/util
|
||||||
- name: github.com/tendermint/abci
|
- name: github.com/tendermint/abci
|
||||||
version: a0e38dc58374f485481ea07b23659d85f670a694
|
version: dc33aad9b4e514a2322725ef68f27f72d955c537
|
||||||
subpackages:
|
subpackages:
|
||||||
- client
|
- client
|
||||||
- example/counter
|
- example/counter
|
||||||
|
@ -106,23 +106,23 @@ imports:
|
||||||
- server
|
- server
|
||||||
- types
|
- types
|
||||||
- name: github.com/tendermint/ed25519
|
- name: github.com/tendermint/ed25519
|
||||||
version: 1f52c6f8b8a5c7908aff4497c186af344b428925
|
version: d8387025d2b9d158cf4efb07e7ebf814bcce2057
|
||||||
subpackages:
|
subpackages:
|
||||||
- edwards25519
|
- edwards25519
|
||||||
- extra25519
|
- extra25519
|
||||||
- name: github.com/tendermint/go-crypto
|
- name: github.com/tendermint/go-crypto
|
||||||
version: 311e8c1bf00fa5868daad4f8ea56dcad539182c0
|
version: dd20358a264c772b4a83e477b0cfce4c88a7001d
|
||||||
- name: github.com/tendermint/go-wire
|
- name: github.com/tendermint/go-wire
|
||||||
version: 5f88da3dbc1a72844e6dfaf274ce87f851d488eb
|
version: 2baffcb6b690057568bc90ef1d457efb150b979a
|
||||||
subpackages:
|
subpackages:
|
||||||
- data
|
- data
|
||||||
- data/base58
|
- data/base58
|
||||||
- name: github.com/tendermint/iavl
|
- name: github.com/tendermint/iavl
|
||||||
version: 595f3dcd5b6cd4a292e90757ae6d367fd7a6e653
|
version: 594cc0c062a7174475f0ab654384038d77067917
|
||||||
subpackages:
|
subpackages:
|
||||||
- iavl
|
- iavl
|
||||||
- name: github.com/tendermint/tmlibs
|
- name: github.com/tendermint/tmlibs
|
||||||
version: b30e3ba26d4077edeed83c50a4e0c38b0ec9ddb3
|
version: d9525c0fb671204450b160807480e1263053fb20
|
||||||
subpackages:
|
subpackages:
|
||||||
- autofile
|
- autofile
|
||||||
- cli
|
- cli
|
||||||
|
@ -147,7 +147,7 @@ imports:
|
||||||
- ripemd160
|
- ripemd160
|
||||||
- salsa20/salsa
|
- salsa20/salsa
|
||||||
- name: golang.org/x/net
|
- name: golang.org/x/net
|
||||||
version: 4b14673ba32bee7f5ac0f990a48f033919fd418b
|
version: c73622c77280266305273cb545f54516ced95b93
|
||||||
subpackages:
|
subpackages:
|
||||||
- context
|
- context
|
||||||
- http2
|
- http2
|
||||||
|
@ -157,7 +157,7 @@ imports:
|
||||||
- lex/httplex
|
- lex/httplex
|
||||||
- trace
|
- trace
|
||||||
- name: golang.org/x/sys
|
- name: golang.org/x/sys
|
||||||
version: 176de7413414c01569163271c745672ff04a7267
|
version: b98136db334ff9cb24f28a68e3be3cb6608f7630
|
||||||
subpackages:
|
subpackages:
|
||||||
- unix
|
- unix
|
||||||
- name: golang.org/x/text
|
- name: golang.org/x/text
|
||||||
|
|
10
glide.yaml
10
glide.yaml
|
@ -18,23 +18,23 @@ import:
|
||||||
- package: github.com/spf13/viper
|
- package: github.com/spf13/viper
|
||||||
version: v1.0.0
|
version: v1.0.0
|
||||||
- package: github.com/tendermint/abci
|
- package: github.com/tendermint/abci
|
||||||
version: develop
|
version: ~0.7.0
|
||||||
subpackages:
|
subpackages:
|
||||||
- client
|
- client
|
||||||
- example/dummy
|
- example/dummy
|
||||||
- types
|
- types
|
||||||
- package: github.com/tendermint/go-crypto
|
- package: github.com/tendermint/go-crypto
|
||||||
version: ~0.3.0
|
version: ~0.4.1
|
||||||
- package: github.com/tendermint/go-wire
|
- package: github.com/tendermint/go-wire
|
||||||
version: ~0.6.2
|
version: ~0.7.1
|
||||||
subpackages:
|
subpackages:
|
||||||
- data
|
- data
|
||||||
- package: github.com/tendermint/iavl
|
- package: github.com/tendermint/iavl
|
||||||
version: develop
|
version: ~0.2.0
|
||||||
subpackages:
|
subpackages:
|
||||||
- iavl
|
- iavl
|
||||||
- package: github.com/tendermint/tmlibs
|
- package: github.com/tendermint/tmlibs
|
||||||
version: develop
|
version: ~0.4.0
|
||||||
subpackages:
|
subpackages:
|
||||||
- autofile
|
- autofile
|
||||||
- cli
|
- cli
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
killall tendermint
|
killall tendermint
|
||||||
killall dummy
|
killall abci-cli
|
||||||
killall counter
|
|
||||||
rm -rf ~/.tendermint_app
|
rm -rf ~/.tendermint_app
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
function toHex() {
|
function toHex() {
|
||||||
echo -n $1 | hexdump -ve '1/1 "%.2X"' | awk '{print "0x" $0}'
|
echo -n $1 | hexdump -ve '1/1 "%.2X"' | awk '{print "0x" $0}'
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,9 +32,9 @@ RESPONSE=`abci-cli query \"$KEY\"`
|
||||||
set +e
|
set +e
|
||||||
A=`echo $RESPONSE | grep "$VALUE"`
|
A=`echo $RESPONSE | grep "$VALUE"`
|
||||||
if [[ $? != 0 ]]; then
|
if [[ $? != 0 ]]; then
|
||||||
echo "Failed to find $VALUE for $KEY. Response:"
|
echo "Failed to find $VALUE for $KEY. Response:"
|
||||||
echo "$RESPONSE"
|
echo "$RESPONSE"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
@ -43,9 +43,9 @@ RESPONSE=`abci-cli query \"$VALUE\"`
|
||||||
set +e
|
set +e
|
||||||
A=`echo $RESPONSE | grep $VALUE`
|
A=`echo $RESPONSE | grep $VALUE`
|
||||||
if [[ $? == 0 ]]; then
|
if [[ $? == 0 ]]; then
|
||||||
echo "Found '$VALUE' for $VALUE when we should not have. Response:"
|
echo "Found '$VALUE' for $VALUE when we should not have. Response:"
|
||||||
echo "$RESPONSE"
|
echo "$RESPONSE"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
@ -62,9 +62,9 @@ RESPONSE=`echo $RESPONSE | jq .result.response.log`
|
||||||
set +e
|
set +e
|
||||||
A=`echo $RESPONSE | grep 'exists'`
|
A=`echo $RESPONSE | grep 'exists'`
|
||||||
if [[ $? != 0 ]]; then
|
if [[ $? != 0 ]]; then
|
||||||
echo "Failed to find 'exists' for $KEY. Response:"
|
echo "Failed to find 'exists' for $KEY. Response:"
|
||||||
echo "$RESPONSE"
|
echo "$RESPONSE"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
@ -74,9 +74,9 @@ RESPONSE=`echo $RESPONSE | jq .result.response.log`
|
||||||
set +e
|
set +e
|
||||||
A=`echo $RESPONSE | grep 'exists'`
|
A=`echo $RESPONSE | grep 'exists'`
|
||||||
if [[ $? == 0 ]]; then
|
if [[ $? == 0 ]]; then
|
||||||
echo "Found 'exists' for $VALUE when we should not have. Response:"
|
echo "Found 'exists' for $VALUE when we should not have. Response:"
|
||||||
echo "$RESPONSE"
|
echo "$RESPONSE"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
|
168
test/app/test.sh
168
test/app/test.sh
|
@ -11,118 +11,118 @@ set -e
|
||||||
export TMHOME=$HOME/.tendermint_app
|
export TMHOME=$HOME/.tendermint_app
|
||||||
|
|
||||||
function dummy_over_socket(){
|
function dummy_over_socket(){
|
||||||
rm -rf $TMHOME
|
rm -rf $TMHOME
|
||||||
tendermint init
|
tendermint init
|
||||||
echo "Starting dummy_over_socket"
|
echo "Starting dummy_over_socket"
|
||||||
dummy > /dev/null &
|
abci-cli dummy > /dev/null &
|
||||||
pid_dummy=$!
|
pid_dummy=$!
|
||||||
tendermint node > tendermint.log &
|
tendermint node > tendermint.log &
|
||||||
pid_tendermint=$!
|
pid_tendermint=$!
|
||||||
sleep 5
|
sleep 5
|
||||||
|
|
||||||
echo "running test"
|
echo "running test"
|
||||||
bash dummy_test.sh "Dummy over Socket"
|
bash dummy_test.sh "Dummy over Socket"
|
||||||
|
|
||||||
kill -9 $pid_dummy $pid_tendermint
|
kill -9 $pid_dummy $pid_tendermint
|
||||||
}
|
}
|
||||||
|
|
||||||
# start tendermint first
|
# start tendermint first
|
||||||
function dummy_over_socket_reorder(){
|
function dummy_over_socket_reorder(){
|
||||||
rm -rf $TMHOME
|
rm -rf $TMHOME
|
||||||
tendermint init
|
tendermint init
|
||||||
echo "Starting dummy_over_socket_reorder (ie. start tendermint first)"
|
echo "Starting dummy_over_socket_reorder (ie. start tendermint first)"
|
||||||
tendermint node > tendermint.log &
|
tendermint node > tendermint.log &
|
||||||
pid_tendermint=$!
|
pid_tendermint=$!
|
||||||
sleep 2
|
sleep 2
|
||||||
dummy > /dev/null &
|
abci-cli dummy > /dev/null &
|
||||||
pid_dummy=$!
|
pid_dummy=$!
|
||||||
sleep 5
|
sleep 5
|
||||||
|
|
||||||
echo "running test"
|
echo "running test"
|
||||||
bash dummy_test.sh "Dummy over Socket"
|
bash dummy_test.sh "Dummy over Socket"
|
||||||
|
|
||||||
kill -9 $pid_dummy $pid_tendermint
|
kill -9 $pid_dummy $pid_tendermint
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function counter_over_socket() {
|
function counter_over_socket() {
|
||||||
rm -rf $TMHOME
|
rm -rf $TMHOME
|
||||||
tendermint init
|
tendermint init
|
||||||
echo "Starting counter_over_socket"
|
echo "Starting counter_over_socket"
|
||||||
counter --serial > /dev/null &
|
abci-cli counter --serial > /dev/null &
|
||||||
pid_counter=$!
|
pid_counter=$!
|
||||||
tendermint node > tendermint.log &
|
tendermint node > tendermint.log &
|
||||||
pid_tendermint=$!
|
pid_tendermint=$!
|
||||||
sleep 5
|
sleep 5
|
||||||
|
|
||||||
echo "running test"
|
echo "running test"
|
||||||
bash counter_test.sh "Counter over Socket"
|
bash counter_test.sh "Counter over Socket"
|
||||||
|
|
||||||
kill -9 $pid_counter $pid_tendermint
|
kill -9 $pid_counter $pid_tendermint
|
||||||
}
|
}
|
||||||
|
|
||||||
function counter_over_grpc() {
|
function counter_over_grpc() {
|
||||||
rm -rf $TMHOME
|
rm -rf $TMHOME
|
||||||
tendermint init
|
tendermint init
|
||||||
echo "Starting counter_over_grpc"
|
echo "Starting counter_over_grpc"
|
||||||
counter --serial --abci grpc > /dev/null &
|
abci-cli counter --serial --abci grpc > /dev/null &
|
||||||
pid_counter=$!
|
pid_counter=$!
|
||||||
tendermint node --abci grpc > tendermint.log &
|
tendermint node --abci grpc > tendermint.log &
|
||||||
pid_tendermint=$!
|
pid_tendermint=$!
|
||||||
sleep 5
|
sleep 5
|
||||||
|
|
||||||
echo "running test"
|
echo "running test"
|
||||||
bash counter_test.sh "Counter over GRPC"
|
bash counter_test.sh "Counter over GRPC"
|
||||||
|
|
||||||
kill -9 $pid_counter $pid_tendermint
|
kill -9 $pid_counter $pid_tendermint
|
||||||
}
|
}
|
||||||
|
|
||||||
function counter_over_grpc_grpc() {
|
function counter_over_grpc_grpc() {
|
||||||
rm -rf $TMHOME
|
rm -rf $TMHOME
|
||||||
tendermint init
|
tendermint init
|
||||||
echo "Starting counter_over_grpc_grpc (ie. with grpc broadcast_tx)"
|
echo "Starting counter_over_grpc_grpc (ie. with grpc broadcast_tx)"
|
||||||
counter --serial --abci grpc > /dev/null &
|
abci-cli counter --serial --abci grpc > /dev/null &
|
||||||
pid_counter=$!
|
pid_counter=$!
|
||||||
sleep 1
|
sleep 1
|
||||||
GRPC_PORT=36656
|
GRPC_PORT=36656
|
||||||
tendermint node --abci grpc --rpc.grpc_laddr tcp://localhost:$GRPC_PORT > tendermint.log &
|
tendermint node --abci grpc --rpc.grpc_laddr tcp://localhost:$GRPC_PORT > tendermint.log &
|
||||||
pid_tendermint=$!
|
pid_tendermint=$!
|
||||||
sleep 5
|
sleep 5
|
||||||
|
|
||||||
echo "running test"
|
echo "running test"
|
||||||
GRPC_BROADCAST_TX=true bash counter_test.sh "Counter over GRPC via GRPC BroadcastTx"
|
GRPC_BROADCAST_TX=true bash counter_test.sh "Counter over GRPC via GRPC BroadcastTx"
|
||||||
|
|
||||||
kill -9 $pid_counter $pid_tendermint
|
kill -9 $pid_counter $pid_tendermint
|
||||||
}
|
}
|
||||||
|
|
||||||
cd $GOPATH/src/github.com/tendermint/tendermint/test/app
|
cd $GOPATH/src/github.com/tendermint/tendermint/test/app
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
"dummy_over_socket")
|
"dummy_over_socket")
|
||||||
dummy_over_socket
|
dummy_over_socket
|
||||||
;;
|
;;
|
||||||
"dummy_over_socket_reorder")
|
"dummy_over_socket_reorder")
|
||||||
dummy_over_socket_reorder
|
dummy_over_socket_reorder
|
||||||
;;
|
;;
|
||||||
"counter_over_socket")
|
"counter_over_socket")
|
||||||
counter_over_socket
|
counter_over_socket
|
||||||
;;
|
;;
|
||||||
"counter_over_grpc")
|
"counter_over_grpc")
|
||||||
counter_over_grpc
|
counter_over_grpc
|
||||||
;;
|
;;
|
||||||
"counter_over_grpc_grpc")
|
"counter_over_grpc_grpc")
|
||||||
counter_over_grpc_grpc
|
counter_over_grpc_grpc
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Running all"
|
echo "Running all"
|
||||||
dummy_over_socket
|
dummy_over_socket
|
||||||
echo ""
|
echo ""
|
||||||
dummy_over_socket_reorder
|
dummy_over_socket_reorder
|
||||||
echo ""
|
echo ""
|
||||||
counter_over_socket
|
counter_over_socket
|
||||||
echo ""
|
echo ""
|
||||||
counter_over_grpc
|
counter_over_grpc
|
||||||
echo ""
|
echo ""
|
||||||
counter_over_grpc_grpc
|
counter_over_grpc_grpc
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
|
@ -9,66 +9,66 @@ tendermint init
|
||||||
RPC_ADDR="$(pwd)/rpc.sock"
|
RPC_ADDR="$(pwd)/rpc.sock"
|
||||||
|
|
||||||
TM_CMD="tendermint node --log_level=debug --rpc.laddr=unix://$RPC_ADDR" # &> tendermint_${name}.log"
|
TM_CMD="tendermint node --log_level=debug --rpc.laddr=unix://$RPC_ADDR" # &> tendermint_${name}.log"
|
||||||
DUMMY_CMD="dummy --persist $TMHOME/dummy" # &> dummy_${name}.log"
|
DUMMY_CMD="abci-cli dummy --persist $TMHOME/dummy" # &> dummy_${name}.log"
|
||||||
|
|
||||||
|
|
||||||
function start_procs(){
|
function start_procs(){
|
||||||
name=$1
|
name=$1
|
||||||
indexToFail=$2
|
indexToFail=$2
|
||||||
echo "Starting persistent dummy and tendermint"
|
echo "Starting persistent dummy and tendermint"
|
||||||
if [[ "$CIRCLECI" == true ]]; then
|
if [[ "$CIRCLECI" == true ]]; then
|
||||||
$DUMMY_CMD &
|
$DUMMY_CMD &
|
||||||
else
|
else
|
||||||
$DUMMY_CMD &> "dummy_${name}.log" &
|
$DUMMY_CMD &> "dummy_${name}.log" &
|
||||||
fi
|
fi
|
||||||
PID_DUMMY=$!
|
PID_DUMMY=$!
|
||||||
|
|
||||||
# before starting tendermint, remove the rpc socket
|
# before starting tendermint, remove the rpc socket
|
||||||
rm $RPC_ADDR
|
rm $RPC_ADDR
|
||||||
if [[ "$indexToFail" == "" ]]; then
|
if [[ "$indexToFail" == "" ]]; then
|
||||||
# run in background, dont fail
|
# run in background, dont fail
|
||||||
if [[ "$CIRCLECI" == true ]]; then
|
if [[ "$CIRCLECI" == true ]]; then
|
||||||
$TM_CMD &
|
$TM_CMD &
|
||||||
else
|
else
|
||||||
$TM_CMD &> "tendermint_${name}.log" &
|
$TM_CMD &> "tendermint_${name}.log" &
|
||||||
fi
|
fi
|
||||||
PID_TENDERMINT=$!
|
PID_TENDERMINT=$!
|
||||||
else
|
else
|
||||||
# run in foreground, fail
|
# run in foreground, fail
|
||||||
if [[ "$CIRCLECI" == true ]]; then
|
if [[ "$CIRCLECI" == true ]]; then
|
||||||
FAIL_TEST_INDEX=$indexToFail $TM_CMD
|
FAIL_TEST_INDEX=$indexToFail $TM_CMD
|
||||||
else
|
else
|
||||||
FAIL_TEST_INDEX=$indexToFail $TM_CMD &> "tendermint_${name}.log"
|
FAIL_TEST_INDEX=$indexToFail $TM_CMD &> "tendermint_${name}.log"
|
||||||
fi
|
fi
|
||||||
PID_TENDERMINT=$!
|
PID_TENDERMINT=$!
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function kill_procs(){
|
function kill_procs(){
|
||||||
kill -9 "$PID_DUMMY" "$PID_TENDERMINT"
|
kill -9 "$PID_DUMMY" "$PID_TENDERMINT"
|
||||||
wait "$PID_DUMMY"
|
wait "$PID_DUMMY"
|
||||||
wait "$PID_TENDERMINT"
|
wait "$PID_TENDERMINT"
|
||||||
}
|
}
|
||||||
|
|
||||||
# wait for port to be available
|
# wait for port to be available
|
||||||
function wait_for_port() {
|
function wait_for_port() {
|
||||||
port=$1
|
port=$1
|
||||||
# this will succeed while port is bound
|
# this will succeed while port is bound
|
||||||
nc -z 127.0.0.1 $port
|
nc -z 127.0.0.1 $port
|
||||||
ERR=$?
|
ERR=$?
|
||||||
i=0
|
i=0
|
||||||
while [ "$ERR" == 0 ]; do
|
while [ "$ERR" == 0 ]; do
|
||||||
echo "... port $port is still bound. waiting ..."
|
echo "... port $port is still bound. waiting ..."
|
||||||
sleep 1
|
sleep 1
|
||||||
nc -z 127.0.0.1 $port
|
nc -z 127.0.0.1 $port
|
||||||
ERR=$?
|
ERR=$?
|
||||||
i=$((i + 1))
|
i=$((i + 1))
|
||||||
if [[ $i == 10 ]]; then
|
if [[ $i == 10 ]]; then
|
||||||
echo "Timed out waiting for port to be released"
|
echo "Timed out waiting for port to be released"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
echo "... port $port is free!"
|
echo "... port $port is free!"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -77,47 +77,47 @@ fails=$(grep -r "fail.Fail" --include \*.go . | wc -l)
|
||||||
failsEnd=$((fails-1))
|
failsEnd=$((fails-1))
|
||||||
|
|
||||||
for failIndex in $(seq $failsStart $failsEnd); do
|
for failIndex in $(seq $failsStart $failsEnd); do
|
||||||
echo ""
|
echo ""
|
||||||
echo "* Test FailIndex $failIndex"
|
echo "* Test FailIndex $failIndex"
|
||||||
# test failure at failIndex
|
# test failure at failIndex
|
||||||
|
|
||||||
bash ./test/utils/txs.sh "localhost:46657" &
|
bash ./test/utils/txs.sh "localhost:46657" &
|
||||||
start_procs 1 "$failIndex"
|
start_procs 1 "$failIndex"
|
||||||
|
|
||||||
# tendermint should already have exited when it hits the fail index
|
# tendermint should already have exited when it hits the fail index
|
||||||
# but kill -9 for good measure
|
# but kill -9 for good measure
|
||||||
kill_procs
|
kill_procs
|
||||||
|
|
||||||
start_procs 2
|
start_procs 2
|
||||||
|
|
||||||
# wait for node to handshake and make a new block
|
# wait for node to handshake and make a new block
|
||||||
# NOTE: --unix-socket is only available in curl v7.40+
|
# NOTE: --unix-socket is only available in curl v7.40+
|
||||||
curl -s --unix-socket "$RPC_ADDR" http://localhost/status > /dev/null
|
curl -s --unix-socket "$RPC_ADDR" http://localhost/status > /dev/null
|
||||||
ERR=$?
|
ERR=$?
|
||||||
i=0
|
i=0
|
||||||
while [ "$ERR" != 0 ]; do
|
while [ "$ERR" != 0 ]; do
|
||||||
sleep 1
|
sleep 1
|
||||||
curl -s --unix-socket "$RPC_ADDR" http://localhost/status > /dev/null
|
curl -s --unix-socket "$RPC_ADDR" http://localhost/status > /dev/null
|
||||||
ERR=$?
|
ERR=$?
|
||||||
i=$((i + 1))
|
i=$((i + 1))
|
||||||
if [[ $i == 20 ]]; then
|
if [[ $i == 20 ]]; then
|
||||||
echo "Timed out waiting for tendermint to start"
|
echo "Timed out waiting for tendermint to start"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# wait for a new block
|
# wait for a new block
|
||||||
h1=$(curl -s --unix-socket "$RPC_ADDR" http://localhost/status | jq .result.latest_block_height)
|
h1=$(curl -s --unix-socket "$RPC_ADDR" http://localhost/status | jq .result.latest_block_height)
|
||||||
h2=$h1
|
h2=$h1
|
||||||
while [ "$h2" == "$h1" ]; do
|
while [ "$h2" == "$h1" ]; do
|
||||||
sleep 1
|
sleep 1
|
||||||
h2=$(curl -s --unix-socket "$RPC_ADDR" http://localhost/status | jq .result.latest_block_height)
|
h2=$(curl -s --unix-socket "$RPC_ADDR" http://localhost/status | jq .result.latest_block_height)
|
||||||
done
|
done
|
||||||
|
|
||||||
kill_procs
|
kill_procs
|
||||||
|
|
||||||
echo "* Passed Test for FailIndex $failIndex"
|
echo "* Passed Test for FailIndex $failIndex"
|
||||||
echo ""
|
echo ""
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "Passed Test: Persistence"
|
echo "Passed Test: Persistence"
|
||||||
|
|
|
@ -7,30 +7,30 @@ rm -rf $TMHOME
|
||||||
tendermint init
|
tendermint init
|
||||||
|
|
||||||
function start_procs(){
|
function start_procs(){
|
||||||
name=$1
|
name=$1
|
||||||
echo "Starting persistent dummy and tendermint"
|
echo "Starting persistent dummy and tendermint"
|
||||||
dummy --persist $TMHOME/dummy &> "dummy_${name}.log" &
|
abci-cli dummy --persist $TMHOME/dummy &> "dummy_${name}.log" &
|
||||||
PID_DUMMY=$!
|
PID_DUMMY=$!
|
||||||
tendermint node &> tendermint_${name}.log &
|
tendermint node &> tendermint_${name}.log &
|
||||||
PID_TENDERMINT=$!
|
PID_TENDERMINT=$!
|
||||||
sleep 5
|
sleep 5
|
||||||
}
|
}
|
||||||
|
|
||||||
function kill_procs(){
|
function kill_procs(){
|
||||||
kill -9 $PID_DUMMY $PID_TENDERMINT
|
kill -9 $PID_DUMMY $PID_TENDERMINT
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function send_txs(){
|
function send_txs(){
|
||||||
# send a bunch of txs over a few blocks
|
# send a bunch of txs over a few blocks
|
||||||
echo "Sending txs"
|
echo "Sending txs"
|
||||||
for i in `seq 1 5`; do
|
for i in `seq 1 5`; do
|
||||||
for j in `seq 1 100`; do
|
for j in `seq 1 100`; do
|
||||||
tx=`head -c 8 /dev/urandom | hexdump -ve '1/1 "%.2X"'`
|
tx=`head -c 8 /dev/urandom | hexdump -ve '1/1 "%.2X"'`
|
||||||
curl -s 127.0.0.1:46657/broadcast_tx_async?tx=0x$tx &> /dev/null
|
curl -s 127.0.0.1:46657/broadcast_tx_async?tx=0x$tx &> /dev/null
|
||||||
done
|
done
|
||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -46,22 +46,22 @@ curl -s $addr/status > /dev/null
|
||||||
ERR=$?
|
ERR=$?
|
||||||
i=0
|
i=0
|
||||||
while [ "$ERR" != 0 ]; do
|
while [ "$ERR" != 0 ]; do
|
||||||
sleep 1
|
sleep 1
|
||||||
curl -s $addr/status > /dev/null
|
curl -s $addr/status > /dev/null
|
||||||
ERR=$?
|
ERR=$?
|
||||||
i=$(($i + 1))
|
i=$(($i + 1))
|
||||||
if [[ $i == 10 ]]; then
|
if [[ $i == 10 ]]; then
|
||||||
echo "Timed out waiting for tendermint to start"
|
echo "Timed out waiting for tendermint to start"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# wait for a new block
|
# wait for a new block
|
||||||
h1=`curl -s $addr/status | jq .result.latest_block_height`
|
h1=`curl -s $addr/status | jq .result.latest_block_height`
|
||||||
h2=$h1
|
h2=$h1
|
||||||
while [ "$h2" == "$h1" ]; do
|
while [ "$h2" == "$h1" ]; do
|
||||||
sleep 1
|
sleep 1
|
||||||
h2=`curl -s $addr/status | jq .result.latest_block_height`
|
h2=`curl -s $addr/status | jq .result.latest_block_height`
|
||||||
done
|
done
|
||||||
|
|
||||||
kill_procs
|
kill_procs
|
||||||
|
|
|
@ -16,8 +16,8 @@ bash test/app/test.sh
|
||||||
bash test/persist/test.sh
|
bash test/persist/test.sh
|
||||||
|
|
||||||
if [[ "$BRANCH" == "master" || $(echo "$BRANCH" | grep "release-") != "" ]]; then
|
if [[ "$BRANCH" == "master" || $(echo "$BRANCH" | grep "release-") != "" ]]; then
|
||||||
echo ""
|
echo ""
|
||||||
echo "* branch $BRANCH; testing libs"
|
echo "* branch $BRANCH; testing libs"
|
||||||
# checkout every github.com/tendermint dir and run its tests
|
# checkout every github.com/tendermint dir and run its tests
|
||||||
bash test/test_libs.sh
|
bash test/test_libs.sh
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
package version
|
package version
|
||||||
|
|
||||||
const Maj = "0"
|
const Maj = "0"
|
||||||
const Min = "11"
|
const Min = "12"
|
||||||
const Fix = "1"
|
const Fix = "0"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
// The full version string
|
// The full version string
|
||||||
Version = "0.11.1"
|
Version = "0.12.0"
|
||||||
|
|
||||||
// GitCommit is set with --ldflags "-X main.gitCommit=$(git rev-parse HEAD)"
|
// GitCommit is set with --ldflags "-X main.gitCommit=$(git rev-parse HEAD)"
|
||||||
GitCommit string
|
GitCommit string
|
||||||
|
|
Loading…
Reference in New Issue