You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
2.3 KiB

  1. # Deploy a Testnet
  2. Now that we've seen how ABCI works, and even played with a few applications on a single validator node,
  3. it's time to deploy a test network to four validator nodes.
  4. For this deployment, we'll use the `basecoin` application.
  5. ## Manual Deployments
  6. It's relatively easy to setup a Tendermint cluster manually.
  7. The only requirements for a particular Tendermint node are a private key for the validator,
  8. stored as `priv_validator.json`, and a list of the public keys of all validators, stored as `genesis.json`.
  9. These files should be stored in `~/.tendermint`, or wherever the `$TMROOT` variable might be set to.
  10. Here are the steps to setting up a testnet manually:
  11. 1) Provision nodes on your cloud provider of choice
  12. 2) Install Tendermint and the application of interest on all nodes
  13. 3) Generate a private key for each validator using `tendermint gen_validator`
  14. 4) Compile a list of public keys for each validator into a `genesis.json` file.
  15. 5) Run `tendermint node --p2p.seeds=< seed addresses >` on each node, where `< seed addresses >` is a
  16. comma separated list of the IP:PORT combination for each node. The default port for Tendermint is `46656`.
  17. 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`,
  18. 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`.
  19. After a few seconds, all the nodes should connect to eachother and start making blocks!
  20. For more information, see the Tendermint Networks section of [the guide to using Tendermint](/docs/guides/using-tendermint).
  21. ## Automated Deployments
  22. While the manual deployment is easy enough, an automated deployment is always better.
  23. For this, we have the [mintnet-kubernetes tool](https://github.com/tendermint/mintnet-kubernetes),
  24. which allows us to automate the deployment of a Tendermint network on an already provisioned kubernetes cluster.
  25. For more details, see the [mintnet-kubernetes repo](https://github.com/tendermint/mintnet-kubernetes),
  26. and check out [Google Cloud Platform](https://cloud.google.com/) for simple provisioning of kubernetes clusters.
  27. TODO: a better tutorial here, and Ansible/Terraform.
  28. ## Next Steps
  29. Done trying out the testnet? Continue [onwards](/docs/getting-started/next-steps).