Now that we've seen how ABCI works, and even played with a few applications on a single validator node,
it's time to deploy a test network to four validator nodes.
For this deployment, we'll use the basecoin
application.
It's relatively easy to setup a Tendermint cluster manually.
The only requirements for a particular Tendermint node are a private key for the validator,
stored as priv_validator.json
, and a list of the public keys of all validators, stored as genesis.json
.
These files should be stored in ~/.tendermint
, or wherever the $TMROOT
variable might be set to.
Here are the steps to setting up a testnet manually:
tendermint gen_validator
genesis.json
file.tendermint node --p2p.seeds=< seed addresses >
on each node, where < seed addresses >
is a
comma separated list of the IP:PORT combination for each node. The default port for Tendermint is 46656
.
Thus, if the IP addresses of your nodes were 192.168.0.1, 192.168.0.2, 192.168.0.3, 192.168.0.4
,
the command would look like: tendermint node --p2p.seeds=192.168.0.1:46656,192.168.0.2:46656,192.168.0.3:46656,192.168.0.4:46656
.After a few seconds, all the nodes should connect to eachother and start making blocks! For more information, see the Tendermint Networks section of the guide to using Tendermint.
While the manual deployment is easy enough, an automated deployment is always better. For this, we have the mintnet-kubernetes tool, which allows us to automate the deployment of a Tendermint network on an already provisioned kubernetes cluster.
For more details, see the mintnet-kubernetes repo, and check out Google Cloud Platform for simple provisioning of kubernetes clusters.
TODO: a better tutorial here, and Ansible/Terraform.
Done trying out the testnet? Continue onwards.