# Run a Full Node & Join a Public Network
Once you have installed the required software, you can run a full node, join one of the public networks (TestNet or MainNet) and try out becoming a validator.
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!
# Contents
# Prerequisites
Before continuing, ensure you have gone through the following docs:
# Initialising a New Node
Once installed, you will need to initialise your node:
und init [your_node_moniker]
[your_node_moniker]
can be any identifier you like, but are limited to ASCII characters. For example:
und init MyAwesomeNode
Once initialised, you can edit your configuration in $HOME/.und_mainchain/config/config.toml
and in
$HOME/.und_mainchain/config/app.toml
. See configuration reference
for more details on the config file.
NOTE
the default directory used by und
is $HOME/.und_mainchain
. This can be changed by passing the global --home
flag to the und
command, for example und start --home $HOME/.und_mainchain_TestNet
.
# Genesis
The latest genesis for each network can always be found in their respective Github repos:
# Download the latest Genesis
IMPORTANT
Please ensure you download the correct genesis for the network you would like to join! Remember to change the output
directory in the command below if you are using something other than the default $HOME/.und_mainchain
directory!
To spin up your new node, download the latest genesis.json
for the network you would like to join:
# Get the current Chain ID
TIP
You'll need jq
installed to run the command below. Use your package manager to install, for example
sudo apt install jq
on Debian based systems, and sudo yum install jq
on CentOS/RedHat systems.
The Chain ID will need to be passed to all und
commands via the --chain-id
flag. The current Chain ID for the
network your node is connecting to can easily be found by running:
jq --raw-output '.chain_id' $HOME/.und_mainchain/config/genesis.json
This will output, for example:
which can then be passed to your und
commands:
und query tx FCDFE69F20431B23CF16CAA68C10325EB2E1126FCDF8AD4010CCE927A0808740 --chain-id FUND-TestNet-2
# Seed Node Peers
IMPORTANT
Please ensure you get the correct seed node information for the network you would like to join! Remember to change the
directory if you are using something other than the default $HOME/.und_mainchain
directory!
For this guide, we are using /mnt/disks/data/.und_mainchain
for the node's home directory.
Your node will need to know at least one seed node in order to join the network and begin P2P communication with other nodes in the network. The latest seed information will always be available at each network's respective Github repo:
Go to the repo for the network you are connecting to and copy one or more of the seed nodes (you only need
the [email protected]:port
)
Edit your node configuration file using nano:
nano /path/to/.und_mainchain/config/config.toml
Hit Ctrl+W, type [p2p]
(including the square brackets) and hit return - this will take you to
the [p2p]
section of the config file, which begins with:
##### peer to peer configuration options #####
[p2p]
Find the seeds = ""
variable about 12 lines below, and add the seed node information between the double quotes (comma
separated, no spaces if more than one). For example:
seeds = "[email protected]:port"
# Minimum Gas
It is good practice to set the minimum-gas-prices value in $HOME/.und_mainchain/config/app.toml
, in order to protect
your full node from spam transactions. This should be set as a decimal value in nund
, and the recommended value is
currently 25.0nund
. This means your node will ignore any Txs with a gas price below this value. To do so, open
up $HOME/.und_mainchain/config/app.toml
in a text editor, and set minimum-gas-prices
nano $HOME/.und_mainchain/config/app.toml
Change:
minimum-gas-prices = ""
To, for example:
minimum-gas-prices = "25.0nund"
Hit Ctrl+X followed by y
and then return to save the file and exit nano.
# Running your node
Now that you have genesis
, and some seed nodes, you can run your full node. There are two methods currently for
syncing your node: full sync, and statesync
from a snapshot.
# Full Sync
A full sync will sync the entire chain from genesis to the current block. This is simple, but may take several hours or even days depending on the size of the chain since it replays every block. To begin a full sync, simply start the node:
und start
You should see that your node connects to some peers, and after a few seconds begins syncing with the network.
# Using statesync
Snapshots
# Checkin the node's status
Running:
und status
in a separate terminal should output show that the node is running and connected to your chosen network.
By default, any transactions you send via the und
command will be
sent via your local node (which was started using the und start
command, and whose RPC is on tcp://localhost:26656
and only open to localhost
).
TIP
You can use the --node
flag with the und
command to have it send to a different node instead. Default client values
for und
can also be set in $HOME/.und_mainchain/config/client.toml
# Block Explorer
Our public block explorers can be found at:
# TestNet Faucet
Our public TestNet has a faucet which can be used to obtain Test FUND for use exclusively on the TestNet network. You will need an account and its associated address in order to be able to claim Test FUND.
See https://faucet-testnet.unification.io (opens new window)
# Next
Creating and importing accounts and wallets, sending transactions and becoming a Validator