Run a localnet with Docker
Last updated
Was this helpful?
Last updated
Was this helpful?
This document provides instructions on how to run a localnet with multiple validator/non-validator nodes. This can be useful if you are developing applications to work on cheqd network, or in automated testing pipelines.
The techniques described here are used in CI/CD contexts, for example, in this repository itself in the .
A clone of the
Either , or (the latter is mandatory if you've modified any code in the repository cline).
Docker Engine and Docker Compose (same versions as described in )
A cheqd-node binary to run the network config generation script below.
Our localnet setup instructions are designed to set up a local network with the following node types:
3x validator nodes
1x non-validator/observer node
1x seed node
The definition for this network is described in a , which can be modified as required for your specific use case. Since it's not possible to cover all possible localnet setups, the following instructions describe the steps necessary to execute a setup similar to that using in .
You may modify the output if you want a different mix of node types.
Modify the docker-compose.yml
file if necessary, along with the per-container environment variables under the container-env
folder.
The default Docker localnet will configure a running network with a pre-built image or custom image.
The five nodes and corresponding ports set up by the default Docker Compose setup will be:
Validator nodes
validator-0
P2P: 26656
RPC: 26657
validator-1
P2P: 26756
RPC: 26757
validator-2
P2P: 26856
RPC: 26857
validator-3
P2P: 26956
RPC: 26957
Seed node
seed-0
P2P: 27056
RPC: 27057
Observer node
observer-0
P2P: 27156
RPC: 27157
You can tests connection to a node using browser: http://localhost:<rpc_port>
. Example for the first node: http://localhost:26657
.
Key and corresponding accounts will be placed in the network config folder by the import-keys.sh
script, which are used within the nodes configured above.
When connecting using CLI, provide the --home
parameter to any CLI command to point to the specific home directory of the corresponding node: --home network-config/validator-x
.
Execute the to generate validator keys and node configuration for the node types above.
Import the keys generated using the :
See to learn about the most common CLI commands.