test/pex: dial_seeds
This commit is contained in:
parent
e4e70ece3f
commit
cfc7fed31c
|
@ -6,17 +6,19 @@ NETWORK_NAME=$2
|
||||||
N=$3
|
N=$3
|
||||||
APP_PROXY=$4
|
APP_PROXY=$4
|
||||||
|
|
||||||
|
set +u
|
||||||
|
SEEDS=$5
|
||||||
|
if [[ "$SEEDS" != "" ]]; then
|
||||||
|
echo "Seeds: $SEEDS"
|
||||||
|
SEEDS="--seeds $SEEDS"
|
||||||
|
fi
|
||||||
|
set -u
|
||||||
|
|
||||||
cd $GOPATH/src/github.com/tendermint/tendermint
|
cd $GOPATH/src/github.com/tendermint/tendermint
|
||||||
|
|
||||||
# create docker network
|
# create docker network
|
||||||
docker network create --driver bridge --subnet 172.57.0.0/16 $NETWORK_NAME
|
docker network create --driver bridge --subnet 172.57.0.0/16 $NETWORK_NAME
|
||||||
|
|
||||||
seeds="$(test/p2p/ip.sh 1):46656"
|
|
||||||
for i in `seq 2 $N`; do
|
|
||||||
seeds="$seeds,$(test/p2p/ip.sh $i):46656"
|
|
||||||
done
|
|
||||||
echo "Seeds: $seeds"
|
|
||||||
|
|
||||||
for i in `seq 1 $N`; do
|
for i in `seq 1 $N`; do
|
||||||
bash test/p2p/peer.sh $DOCKER_IMAGE $NETWORK_NAME $i $APP_PROXY "--seeds $seeds --pex"
|
bash test/p2p/peer.sh $DOCKER_IMAGE $NETWORK_NAME $i $APP_PROXY "$SEEDS --pex"
|
||||||
done
|
done
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
#! /bin/bash
|
||||||
|
set -u
|
||||||
|
|
||||||
|
N=$1
|
||||||
|
|
||||||
|
cd $GOPATH/src/github.com/tendermint/tendermint
|
||||||
|
|
||||||
|
echo "Waiting for nodes to come online"
|
||||||
|
for i in `seq 1 $N`; do
|
||||||
|
addr=$(test/p2p/ip.sh $i):46657
|
||||||
|
curl -s $addr/status > /dev/null
|
||||||
|
ERR=$?
|
||||||
|
while [ "$ERR" != 0 ]; do
|
||||||
|
sleep 1
|
||||||
|
curl -s $addr/status > /dev/null
|
||||||
|
ERR=$?
|
||||||
|
done
|
||||||
|
echo "... node $i is up"
|
||||||
|
done
|
||||||
|
|
||||||
|
set -e
|
||||||
|
# seeds need quotes
|
||||||
|
seeds="\"$(test/p2p/ip.sh 1):46656\""
|
||||||
|
for i in `seq 2 $N`; do
|
||||||
|
seeds="$seeds,\"$(test/p2p/ip.sh $i):46656\""
|
||||||
|
done
|
||||||
|
echo $seeds
|
||||||
|
|
||||||
|
echo $seeds
|
||||||
|
IP=$(test/p2p/ip.sh 1)
|
||||||
|
curl --data-urlencode "seeds=[$seeds]" "$IP:46657/dial_seeds"
|
|
@ -6,42 +6,10 @@ NETWORK_NAME=$2
|
||||||
N=$3
|
N=$3
|
||||||
PROXY_APP=$4
|
PROXY_APP=$4
|
||||||
|
|
||||||
ID=1
|
cd $GOPATH/src/github.com/tendermint/tendermint
|
||||||
|
|
||||||
echo "----------------------------------------------------------------------"
|
echo "Test reconnecting from the address book"
|
||||||
echo "Testing pex creates the addrbook and uses it if seeds are not provided"
|
bash test/p2p/pex/test_addrbook.sh $DOCKER_IMAGE $NETWORK_NAME $N $PROXY_APP
|
||||||
echo "(assuming peers are started with pex enabled)"
|
|
||||||
|
|
||||||
echo "1. restart peer $ID"
|
echo "Test connecting via /dial_seeds"
|
||||||
docker stop "local_testnet_$ID"
|
bash test/p2p/pex/test_dial_seeds.sh $DOCKER_IMAGE $NETWORK_NAME $N $PROXY_APP
|
||||||
# preserve addrbook.json
|
|
||||||
docker cp "local_testnet_$ID:/go/src/github.com/tendermint/tendermint/test/p2p/data/mach1/core/addrbook.json" "/tmp/addrbook.json"
|
|
||||||
docker rm -vf "local_testnet_$ID"
|
|
||||||
|
|
||||||
# NOTE that we do not provide seeds
|
|
||||||
bash test/p2p/peer.sh "$DOCKER_IMAGE" "$NETWORK_NAME" "$ID" "$PROXY_APP" "--pex"
|
|
||||||
docker cp "/tmp/addrbook.json" "local_testnet_$ID:/go/src/github.com/tendermint/tendermint/test/p2p/data/mach1/core/addrbook.json"
|
|
||||||
echo "with the following addrbook:"
|
|
||||||
docker exec "local_testnet_$ID" cat "/go/src/github.com/tendermint/tendermint/test/p2p/data/mach1/core/addrbook.json"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# if the client runs forever, it means addrbook wasn't saved or was empty
|
|
||||||
bash test/p2p/client.sh "$DOCKER_IMAGE" "$NETWORK_NAME" "pex_$ID" "test/p2p/pex/check_peer.sh $ID $N"
|
|
||||||
|
|
||||||
echo "----------------------------------------------------------------------"
|
|
||||||
echo "Testing other peers connect to us if we have neither seeds nor the addrbook"
|
|
||||||
echo "(assuming peers are started with pex enabled)"
|
|
||||||
|
|
||||||
echo "1. restart peer $ID"
|
|
||||||
docker stop "local_testnet_$ID"
|
|
||||||
docker rm -vf "local_testnet_$ID"
|
|
||||||
|
|
||||||
# NOTE that we do not provide seeds
|
|
||||||
bash test/p2p/peer.sh "$DOCKER_IMAGE" "$NETWORK_NAME" "$ID" "$PROXY_APP" "--pex"
|
|
||||||
|
|
||||||
# if the client runs forever, it means other peers have removed us from their books (which should not happen)
|
|
||||||
bash test/p2p/client.sh "$DOCKER_IMAGE" "$NETWORK_NAME" "pex_$ID" "test/p2p/pex/check_peer.sh $ID $N"
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "PASS"
|
|
||||||
echo ""
|
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
#! /bin/bash
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
DOCKER_IMAGE=$1
|
||||||
|
NETWORK_NAME=$2
|
||||||
|
N=$3
|
||||||
|
PROXY_APP=$4
|
||||||
|
|
||||||
|
ID=1
|
||||||
|
|
||||||
|
echo "----------------------------------------------------------------------"
|
||||||
|
echo "Testing pex creates the addrbook and uses it if seeds are not provided"
|
||||||
|
echo "(assuming peers are started with pex enabled)"
|
||||||
|
|
||||||
|
echo "1. restart peer $ID"
|
||||||
|
docker stop "local_testnet_$ID"
|
||||||
|
# preserve addrbook.json
|
||||||
|
docker cp "local_testnet_$ID:/go/src/github.com/tendermint/tendermint/test/p2p/data/mach1/core/addrbook.json" "/tmp/addrbook.json"
|
||||||
|
set +e #CIRCLE
|
||||||
|
docker rm -vf "local_testnet_$ID"
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# NOTE that we do not provide seeds
|
||||||
|
bash test/p2p/peer.sh "$DOCKER_IMAGE" "$NETWORK_NAME" "$ID" "$PROXY_APP" "--pex"
|
||||||
|
docker cp "/tmp/addrbook.json" "local_testnet_$ID:/go/src/github.com/tendermint/tendermint/test/p2p/data/mach1/core/addrbook.json"
|
||||||
|
echo "with the following addrbook:"
|
||||||
|
docker exec "local_testnet_$ID" cat "/go/src/github.com/tendermint/tendermint/test/p2p/data/mach1/core/addrbook.json"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# if the client runs forever, it means addrbook wasn't saved or was empty
|
||||||
|
bash test/p2p/client.sh "$DOCKER_IMAGE" "$NETWORK_NAME" "pex_$ID" "test/p2p/pex/check_peer.sh $ID $N"
|
||||||
|
|
||||||
|
echo "----------------------------------------------------------------------"
|
||||||
|
echo "Testing other peers connect to us if we have neither seeds nor the addrbook"
|
||||||
|
echo "(assuming peers are started with pex enabled)"
|
||||||
|
|
||||||
|
echo "1. restart peer $ID"
|
||||||
|
docker stop "local_testnet_$ID"
|
||||||
|
set +e #CIRCLE
|
||||||
|
docker rm -vf "local_testnet_$ID"
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# NOTE that we do not provide seeds
|
||||||
|
bash test/p2p/peer.sh "$DOCKER_IMAGE" "$NETWORK_NAME" "$ID" "$PROXY_APP" "--pex"
|
||||||
|
|
||||||
|
# if the client runs forever, it means other peers have removed us from their books (which should not happen)
|
||||||
|
bash test/p2p/client.sh "$DOCKER_IMAGE" "$NETWORK_NAME" "pex_$ID" "test/p2p/pex/check_peer.sh $ID $N"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "PASS"
|
||||||
|
echo ""
|
|
@ -0,0 +1,32 @@
|
||||||
|
#! /bin/bash
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
DOCKER_IMAGE=$1
|
||||||
|
NETWORK_NAME=$2
|
||||||
|
N=$3
|
||||||
|
PROXY_APP=$4
|
||||||
|
|
||||||
|
ID=1
|
||||||
|
|
||||||
|
cd $GOPATH/src/github.com/tendermint/tendermint
|
||||||
|
|
||||||
|
echo "----------------------------------------------------------------------"
|
||||||
|
echo "Testing full network connection using one /dial_seeds call"
|
||||||
|
echo "(assuming peers are started with pex enabled)"
|
||||||
|
|
||||||
|
# stop the existing testnet and remove local network
|
||||||
|
set +e
|
||||||
|
bash test/p2p/local_testnet_stop.sh $NETWORK_NAME $N
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# start the testnet on a local network
|
||||||
|
# NOTE we re-use the same network for all tests
|
||||||
|
SEEDS=""
|
||||||
|
bash test/p2p/local_testnet_start.sh $DOCKER_IMAGE $NETWORK_NAME $N $PROXY_APP $SEEDS
|
||||||
|
|
||||||
|
# dial seeds from one node
|
||||||
|
bash test/p2p/client.sh $DOCKER_IMAGE $NETWORK_NAME dial_seeds "test/p2p/pex/dial_seeds.sh $N"
|
||||||
|
|
||||||
|
# test basic connectivity and consensus
|
||||||
|
# start client container and check the num peers and height for all nodes
|
||||||
|
bash test/p2p/client.sh $DOCKER_IMAGE $NETWORK_NAME basic "test/p2p/basic/test.sh $N"
|
|
@ -0,0 +1,12 @@
|
||||||
|
#! /bin/bash
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
N=$1
|
||||||
|
|
||||||
|
cd $GOPATH/src/github.com/tendermint/tendermint
|
||||||
|
|
||||||
|
seeds="$(test/p2p/ip.sh 1):46656"
|
||||||
|
for i in `seq 2 $N`; do
|
||||||
|
seeds="$seeds,$(test/p2p/ip.sh $i):46656"
|
||||||
|
done
|
||||||
|
echo $seeds
|
|
@ -13,9 +13,11 @@ set +e
|
||||||
bash test/p2p/local_testnet_stop.sh $NETWORK_NAME $N
|
bash test/p2p/local_testnet_stop.sh $NETWORK_NAME $N
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
SEEDS=$(bash test/p2p/seeds.sh $N)
|
||||||
|
|
||||||
# start the testnet on a local network
|
# start the testnet on a local network
|
||||||
# NOTE we re-use the same network for all tests
|
# NOTE we re-use the same network for all tests
|
||||||
bash test/p2p/local_testnet_start.sh $DOCKER_IMAGE $NETWORK_NAME $N $PROXY_APP
|
bash test/p2p/local_testnet_start.sh $DOCKER_IMAGE $NETWORK_NAME $N $PROXY_APP $SEEDS
|
||||||
|
|
||||||
# test basic connectivity and consensus
|
# test basic connectivity and consensus
|
||||||
# start client container and check the num peers and height for all nodes
|
# start client container and check the num peers and height for all nodes
|
||||||
|
|
Loading…
Reference in New Issue