|
|
@ -0,0 +1,80 @@ |
|
|
|
#!/bin/bash |
|
|
|
|
|
|
|
DATA=$GOPATH/src/github.com/tendermint/tendermint/benchmarks/blockchain/data |
|
|
|
if [ ! -d $DATA ]; then |
|
|
|
echo "no data found, generating a chain... (this only has to happen once)" |
|
|
|
|
|
|
|
tendermint init --home $DATA |
|
|
|
cp $DATA/config.toml $DATA/config2.toml |
|
|
|
echo " |
|
|
|
[consensus] |
|
|
|
timeout_commit = 0 |
|
|
|
" >> $DATA/config.toml |
|
|
|
|
|
|
|
echo "starting node" |
|
|
|
tendermint node \ |
|
|
|
--home $DATA \ |
|
|
|
--proxy_app dummy \ |
|
|
|
--p2p.laddr tcp://127.0.0.1:56656 \ |
|
|
|
--rpc.laddr tcp://127.0.0.1:56657 \ |
|
|
|
--log_level error & |
|
|
|
|
|
|
|
echo "making blocks for 60s" |
|
|
|
sleep 60 |
|
|
|
|
|
|
|
mv $DATA/config2.toml $DATA/config.toml |
|
|
|
|
|
|
|
kill %1 |
|
|
|
|
|
|
|
echo "done generating chain." |
|
|
|
fi |
|
|
|
|
|
|
|
# validator node |
|
|
|
HOME1=$TMPDIR$RANDOM$RANDOM |
|
|
|
cp -R $DATA $HOME1 |
|
|
|
echo "starting validator node" |
|
|
|
tendermint node \ |
|
|
|
--home $HOME1 \ |
|
|
|
--proxy_app dummy \ |
|
|
|
--p2p.laddr tcp://127.0.0.1:56656 \ |
|
|
|
--rpc.laddr tcp://127.0.0.1:56657 \ |
|
|
|
--log_level error & |
|
|
|
sleep 1 |
|
|
|
|
|
|
|
# downloader node |
|
|
|
HOME2=$TMPDIR$RANDOM$RANDOM |
|
|
|
tendermint init --home $HOME2 |
|
|
|
cp $HOME1/genesis.json $HOME2 |
|
|
|
printf "starting downloader node" |
|
|
|
tendermint node \ |
|
|
|
--home $HOME2 \ |
|
|
|
--proxy_app dummy \ |
|
|
|
--p2p.laddr tcp://127.0.0.1:56666 \ |
|
|
|
--rpc.laddr tcp://127.0.0.1:56667 \ |
|
|
|
--p2p.seeds 127.0.0.1:56656 \ |
|
|
|
--log_level error & |
|
|
|
|
|
|
|
# wait for node to start up so we only count time where we are actually syncing |
|
|
|
sleep 0.5 |
|
|
|
while curl localhost:56667/status 2> /dev/null | grep "\"latest_block_height\": 0," > /dev/null |
|
|
|
do |
|
|
|
printf '.' |
|
|
|
sleep 0.2 |
|
|
|
done |
|
|
|
echo |
|
|
|
|
|
|
|
echo "syncing blockchain for 10s" |
|
|
|
for i in {1..10} |
|
|
|
do |
|
|
|
sleep 1 |
|
|
|
HEIGHT="$(curl localhost:56667/status 2> /dev/null \ |
|
|
|
| grep 'latest_block_height' \ |
|
|
|
| grep -o ' [0-9]*' \ |
|
|
|
| xargs)" |
|
|
|
let 'RATE = HEIGHT / i' |
|
|
|
echo "height: $HEIGHT, blocks/sec: $RATE" |
|
|
|
done |
|
|
|
|
|
|
|
kill %1 |
|
|
|
kill %2 |
|
|
|
rm -rf $HOME1 $HOME2 |