Run a full node
This document provides an introduction to joining the Artela TestNet as a full node.
It is recommended to use
ubuntu
operating system.
Hardware Recommended Requirements:
8 CPU Cores
16GB of Memory
1TB SSD
200mbps Network Bandwidth
1. Prepare artelad
You can start with install artelad or build source code
Option 1: Build the source.
1). Prepare the development tools
Skip this if you have already got your go development environment.
sudo apt-get update
sudo apt-get install -y make gcc
wget https://go.dev/dl/go1.20.3.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.20.3.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
You need to create a folder to store your source files, for example, /home/user1/go/src
. Replace user1
to your account, e.g. ubuntu
.
mkdir -p /home/user1/go/src
Then, set /home/user1/go
as the GOPATH by using the following command:
export GOPATH=/home/user1/go
This ensures that the necessary Go environment variables are configured correctly.
2). Clone and build the code
cd $GOPATH/src
git clone https://github.com/artela-network/artela
# git clone https://github.com/artela-network/artela-cosmos-sdk
# git clone https://github.com/artela-network/artela-cometbft
cd artela
git checkout main
make clean && make
cp ./build/artelad $HOME/go/bin/.
export PATH=$PATH:$HOME/go/bin
Option 2: Download and Install Artelad
Find the binary artelad
at Artela Network github repository, releases link.
Copy the binary artelad
to /usr/local/bin
.
2. Init node
1). Init
artelad init <custom_moniker> # e.g artelad init test111
2). Copy genesis from genesis.json, and move to the home directory.
mv genesis.json $HOME/.artelad/config/genesis.json
3). Configure
Get presistent seeds from 2. Persistent nodes
Add two of them to seeds
in config.toml
cd $HOME/.artelad/config
# e.g sed -i 's/seeds = ""/seeds = "[email protected]:26656,[email protected]:26656"/' config.toml
sed -i 's/seeds = ""/seeds = "<node-id-1@node-1-ip:port>,<node-id-2@node-2-ip:port>"/' config.toml
3. Set state sync
cd $HOME/.artelad/config
sed -i 's/enable = false/enable = true/' config.toml
sed -i 's/trust_height = 0/trust_height = <BLOCK_HEIGHT>/' config.toml
sed -i 's/trust_hash = ""/trust_hash = "<BLOCK_HASH>"/' config.toml
# e.g sed -i 's/rpc_servers = ""/rpc_servers = "172.16.10.2:26657,172.16.10.4:26657"/' config.toml
sed -i 's/rpc_servers = ""/rpc_servers = "node-1-ip:port,node-2-ip:port"/' config.toml
Get BLOCK_HEIGHT
and BLOCK_HASH
from 3. Trust block and height
Get rpc_servers
from 4. RPC servers
4. Recommended config
4.1 app.toml
It is recommended that you modify the app.toml configuration items to be consistent with the following
# app.toml
minimum-gas-prices = "0.02uart"
pruning = "custom"
pruning-keep-recent = 362880
pruning-interval = 100
pruning-keep-every = 0
[api]
enable = true
address = "tcp://0.0.0.0:1317"
[grpc]
address = "0.0.0.0:9090"
[grpc-web]
address = "0.0.0.0:9091"
[state-sync]
snapshot-interval = 1000
snapshot-keep-recent = 10
[json-rpc]
address = "0.0.0.0:8545"
4.2 config.toml
It is recommended that you modify the config.toml configuration items to be consistent with the following
# config.toml
proxy_app = "tcp://0.0.0.0:26658"
[rpc]
laddr = "tcp://0.0.0.0:26657"
[consensus]
timeout_commit = "500ms"
5. Launch Artela node
export PATH=$PATH:$HOME/go/bin
artelad start --log_level debug
Optional: Launch Artela node as a background service
5.1 Install pm2 on ubuntu OS
sudo apt update
sudo apt install npm -y
sudo npm install -g n
n latest
hash -r
npm install pm2@latest -g
5.2 Launch Artela node
pm2 start artelad -- start && pm2 save && pm2 startup
5.3 Check status
pm2 status
5.4 Check logs
pm2 logs
When it syncs with all blocks, the output looks like: