Create Localnet
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.
Requirements
Install atom
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):
Requirements
Install atom
Install docker(opens in a new tab)
Install docker-compose(opens in a new tab)
Build
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:
Copy
This command creates a 4-node network using the atomd node image. The ports for each node are found in this table:
Node IDP2P PortRPC Port
atomnode0
26656
26657
atomnode1
26659
26660
atomnode2
26661
26662
iatomnode3
26663
26664
To update the binary, just rebuild it and restart the nodes:
Copy
Configuration
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:
Copy
Each ./build/nodeN
directory is mounted to the /
atomd
directory in each container.
Logging
Logs are saved under each ./build/nodeN/
atomd/
atom.log
. You can also watch logs directly via Docker, for example:
Copy
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:
Copy
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:
Last updated