* minor doc cleanup * docs/tools: link fixes and readme * docs/networks: networks/local/README.md * docs: update vuepress config * docs: fixes from review
2.5 KiB
Deploy a Testnet
DEPRECATED DOCS!
See Networks.
Manual Deployments
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
, a node key, stored as
node_key.json
and a list of the public keys of all validators, stored
as genesis.json
. These files should be stored in
~/.tendermint/config
, or wherever the $TMHOME
variable might be set
to.
Here are the steps to setting up a testnet manually:
- Provision nodes on your cloud provider of choice
- Install Tendermint and the application of interest on all nodes
- Generate a private key and a node key for each validator using
tendermint init
- Compile a list of public keys for each validator into a
new
genesis.json
file and replace the existing file with it. - Get the node IDs of any peers you want other peers to connect to by
running
tendermint show_node_id
on the relevant machine - Set the
p2p.persistent_peers
in the config for all nodes to the comma separated list ofID@IP:PORT
for all nodes. Default port is 26656.
Then start the node
tendermint node --proxy_app=kvstore
After a few seconds, all the nodes should connect to each other and start making blocks! For more information, see the Tendermint Networks section of the guide to using Tendermint.
But wait! Steps 3, 4 and 5 are quite manual. Instead, use the tendermint testnet
command. By default, running tendermint testnet
will create all the
required files, but it won't populate the list of persistent peers. It will do
it however if you provide the --populate-persistent-peers
flag and optional
--starting-ip-address
flag. Run tendermint testnet --help
for more details
on the available flags.
tendermint testnet --populate-persistent-peers --starting-ip-address 192.168.0.1
This command will generate four folders, prefixed with "node" and put them into the "./mytestnet" directory by default.
As you might imagine, this command is useful for manual or automated deployments.
Automated Deployments
The easiest and fastest way to get a testnet up in less than 5 minutes.
Local
With docker
and docker-compose
installed, run the command:
make localnet-start
from the root of the tendermint repository. This will spin up a 4-node local testnet. Review the target in the Makefile to debug any problems.
Cloud
See the next section for details.