This document describes 3 ways to setup a network of atomd nodes, each serving a different usecase:
Single-node, local, manual testnet
Multi-node, local, automated testnet
Multi-node, remote, automated testnet
Supporting code can be found in the networks directory(opens in a new tab) and additionally the local or remote sub-directories.
NOTE: The remote network bootstrapping may be out of sync with the latest releases and is not to be relied upon.
Single-node, Local, Manual Testnet
This guide helps you create a single validator node that runs a network locally for testing and other development-related uses.
Install jq(opens in a new tab) (optional)
Create Genesis File and Start the NetworkThis setup puts all the data for atom in ~/.atom. You can examine the genesis file you created at ~/.atom/config/genesis.json. With this configuration, atom d is also ready to use and has an account with tokens (both staking and custom).
Multi-node, Local, Automated Testnet
From the networks/local directory(opens in a new tab):
Install docker(opens in a new tab)
Install docker-compose(opens in a new tab)
Build the atom binary (linux) and the atom/atom docker image required for running the localnet commands. This binary will be mounted into the container and can be updated without rebuilding the image, so you only need to build the image once.Run Your Testnet
To start a 4 node testnet run:
This command creates a 4-node network using the atomd node image. The ports for each node are found in this table:
To update the binary, just rebuild it and restart the nodes:
The make localnet-start creates files for a 4-node testnet in ./build by calling the atomd testnet command. This outputs a handful of files in the ./build directory:
Each ./build/nodeN directory is mounted to the /atomd directory in each container.
Logs are saved under each ./build/nodeN/atomd/atom.log. You can also watch logs directly via Docker, for example:
Keys & Accounts
To interact with atomd and start querying state or creating txs, you use the iatomd directory of any given node as your home, for example:
Now that accounts exist, you may create new accounts and send those accounts funds!
ℹ️
Note: Each node's seed is located at ./build/nodeN/atom/key_seed.json and can be restored to the CLI using the atomd keys add --restore command
Special Binaries
You can specify which one to run with the BINARY environment variable if you have multiple binaries with different names. The path of the binary is relative to the attached volume. For example: