tendermint/test/p2p
Anton Kaliaev 432a7276e2
[test_integrations] enable logs from peers by default (Refs #829)
2017-11-09 15:19:49 -05:00
..
atomic_broadcast fix bash linter warnings for atomic_broadcast integration test 2017-11-09 14:58:16 -05:00
basic test: jq .result[1] -> jq .result 2017-04-28 22:31:30 -04:00
data abci.Info takes a struct; less merkleeyes 2017-09-22 11:42:40 -04:00
fast_sync enable unsafe rpc routes in tests via flag 2017-05-26 14:20:23 -04:00
kill_all test: jq .result[1] -> jq .result 2017-04-28 22:31:30 -04:00
pex enable unsafe rpc routes in tests via flag 2017-05-26 14:20:23 -04:00
README.md test: p2p.seeds and p2p.pex 2017-05-05 01:28:43 -04:00
clean.sh test: refactor bash; test fastsync (failing) 2016-08-27 14:50:07 -04:00
client.sh test/p2p: shellcheck 2017-03-06 03:49:48 -05:00
ip.sh test: refactor bash; test fastsync (failing) 2016-08-27 14:50:07 -04:00
local_testnet_start.sh enable unsafe rpc routes in tests via flag 2017-05-26 14:20:23 -04:00
local_testnet_stop.sh test/p2p: shellcheck 2017-03-06 03:49:48 -05:00
peer.sh [test_integrations] enable logs from peers by default (Refs #829) 2017-11-09 15:19:49 -05:00
seeds.sh test/p2p: shellcheck 2017-03-06 03:49:48 -05:00
test.sh test/p2p: shellcheck 2017-03-06 03:49:48 -05:00

README.md

Tendermint P2P Tests

These scripts facilitate setting up and testing a local testnet using docker containers.

Setup your own local testnet as follows.

For consistency, we assume all commands are run from the Tendermint repository root (ie. $GOPATH/src/github.com/tendermint/tendermint).

First, build the docker image:

docker build -t tendermint_tester -f ./test/docker/Dockerfile .

Now create the docker network:

docker network create --driver bridge --subnet 172.57.0.0/16 my_testnet

This gives us a new network with IP addresses in the rage 172.57.0.0 - 172.57.255.255. Peers on the network can have any IP address in this range. For our four node network, let's pick 172.57.0.101 - 172.57.0.104. Since we use Tendermint's default listening port of 46656, our list of seed nodes will look like:

172.57.0.101:46656,172.57.0.102:46656,172.57.0.103:46656,172.57.0.104:46656

Now we can start up the peers. We already have config files setup in test/p2p/data/. Let's use a for-loop to start our peers:

for i in $(seq 1 4); do
	docker run -d \
	  --net=my_testnet\
	  --ip="172.57.0.$((100 + $i))" \
	  --name local_testnet_$i \
	  --entrypoint tendermint \
	  -e TMHOME=/go/src/github.com/tendermint/tendermint/test/p2p/data/mach$i/core \
	  tendermint_tester node --p2p.seeds 172.57.0.101:46656,172.57.0.102:46656,172.57.0.103:46656,172.57.0.104:46656 --proxy_app=dummy
done

If you now run docker ps, you'll see your containers!

We can confirm they are making blocks by checking the /status message using curl and jq to pretty print the output json:

curl 172.57.0.101:46657/status | jq .