3-Node Docker DevNet
IMPORTANT
Whenever you use und to send Txs or query the chain ensure you pass the correct data to the --chain-id and if necessary --node= flags so that you connect to the correct network!
The repository contains a ready to deploy Docker composition for local development and testing. The Docker composition will spin up a DevNet using the current checked out branch's code to build and run the und binaries.
Contents
Getting DevNet
Check out the mainchain repository:
git clone https://github.com/unification-com/mainchain
cd mainchainSpinning up DevNet
DevNet can be started by using the make target:
make devnetTo bring DevNet down cleanly, use Ctrl+C, followed by:
make devnet-downDevNet Chain ID
IMPORTANT
DevNet's Chain ID is FUND-DevNet-2. Any und commands intended for DevNet should use the flag --chain-id FUND-DevNet-2
DevNet RPC Nodes
By default und will attempt to broadcast transactions to tcp://localhost:26656. However, any of the DevNet nodes can be used to send transactions via und using the --node= flag, for example:
und query tx TX_HASH --chain-id FUND-DevNet-2 --node=tcp://172.25.0.3:26661See below for each node's RPC IPs and Ports.
DevNet Docker containers
The DevNet composition will spin up three full validator nodes and a proxy server in the following Docker containers:
dn_node1- Full validation node, RPC on 172.25.0.3:26661, P2P on 172.25.0.3:26651dn_node2- Full validation node, RPC on 172.25.0.4:26662, P2P on 172.25.0.4:26652dn_node3- Full validation node, RPC on 172.25.0.5:26663, P2P on 172.25.0.5:26653proxy- a small proxy server allowing CORS queries to thedn_node1REST API via 172.25.0.7:1318
The RPC interface is available via dn_node1 on port 26661, and non-CORS REST on port 1317
NOTE
The DevNet nodes:
P2P ports set to 26651, 26652 and 26653 respectively, and not the default 26656.
RPC ports set to 26661, 26662 and 26663 respectively, and not the default 26657.
DevNet test accounts, wallets and keys
DevNet is deployed with a pre-defined genesis.json, containing several test accounts loaded with FUND and pre-defined validators with self delegation.
See https://github.com/unification-com/mainchain/blob/master/Docker/README.md for the mnemonic phrases and keys used by the above nodes, and for test accounts included in DevNet's genesis.
Importing the DevNet keys
The DevNet accounts can be imported as follows. First, build the und and und binaries:
make buildThen, for each account run the following command:
./build/und keys add devnet_node1 --recoverYou will be prompted to enter the mnemonic phrase, and a password for your OS's keyring. Change devnet_node1 to an appropriate moniker for each imported account.
Useful DevNet Defaults for und
und defaults for DevNet can be set as follows. This will set the corresponding values in $HOME/.und_mainchain/config/client.toml
und config chain-id FUND-DevNet-2
und config node tcp://localhost:26661REST API Endpoints
With DevNet up, the REST API endpoints can be seen via http://localhost:1317/swagger/
Next
Creating and importing accounts and wallets, sending transactions

