Evmos node installation guid
Link to the official documentation https://evmos.dev/testnet/join.html
Minimum Requirements:
- 4 or more physical CPU cores
- At least 500GB of SSD disk storage
- At least 16GB of memory (RAM)
- At least 100mbps network bandwidth
The purpose of this document is to guid you through instalation procees very quickly and to test node setup happy path.
I am using Ubunty 18.04
for the instalation.
sudo apt update && sudo apt upgrade -y
sudo apt install make clang pkg-config libssl-dev libclang-dev build-essential git curl ntp jq llvm tmux vim
At the moment of writing this document Evmos is built using Go version 1.17+
download go
archive
wget https://golang.org/dl/go1.17.2.linux-amd64.tar.gz
install go
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.17.2.linux-amd64.tar.gz
Add /usr/local/go/bin to the PATH environment variable :
echo 'export PATH=$PATH:/usr/local/go/bin' >> $HOME/.profile
echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> $HOME/.profile
source $HOME/.profile
check that go
successfully installed:
go version
you should see following output go version go1.17.2 linux/amd64
git clone https://github.com/tharsis/evmos.git
cd evmos
checkout to the latest version from here: https://github.com/tharsis/evmos/releases
In this example we will checkout to version v0.1.3
git checkout v0.1.3
install evmos
make install
check that evmos installed
evmosd version
you should see following output 0.1.3
Configure chain-id
export CHAIN_ID=evmos_9000-1
evmosd config chain-id $CHAIN_ID
Lets create an environment variable with yours node name, in our example it will be testnode999
, you could choose any name you want
export NODE_NAME=testnode999
evmosd init $NODE_NAME --chain-id $CHAIN_ID
Copy genesis.json
file to the ~/.evmosd/config/genesis.json
curl https://raw.githubusercontent.com/tharsis/testnets/main/arsia_mons/genesis.json > ~/.evmosd/config/genesis.json
Then verify the correctness of the genesis configuration file:
evmosd validate-genesis
You should see following output File at /root/.evmosd/config/genesis.json is a valid genesis file
Add Seed Nodes
Open following file $HOME/.evmosd/config/config.toml
and find following configuration seeds = "<node-id>@<ip>:<p2p port>"
You should populate seed
with the value presented here https://github.com/tharsis/testnets/blob/main/arsia_mons/seeds.txt
Here is an example how it should look like
seeds = "c36cec90ded95d162b85f8ecd00ecd7c8849ca75@arsiamons.seed.evmos.org:26656"
Creat evmos testnet-key
key and request some tokens using instruction from here https://evmos.dev/testnet/faucet.html.
We will use testnet-key
to setup node
Befor creating a validator you need to sync to the network. We are going to use tmux
as an example to run a node in separate session
tmux new -s evmos
evmosd start
When node is synced create validator:
evmosd tx staking create-validator \
--amount=1000000000000aphoton \
--pubkey=$(evmosd tendermint show-validator) \
--moniker=$NODE_NAME \
--chain-id=$CHAIN_ID \
--commission-rate="0.10" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1000000" \
--gas="auto" \
--gas-prices="0.025aphoton" \
--from=testnet-key
create file evmosd.service
with the following content:
[Unit]
Description=Evmos Node
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/root
ExecStart=/root/go/bin/evmosd start
Restart=on-failure
RestartSec=3
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target
Put file to the following directory: /etc/systemd/system
The execute following commands:
systemctl enable evmosd
systemctl start evmosd
To check logs you could run:
journalctl -u evmosd -f
Check active validators:
evmosd q staking validators -o json --limit=1000 | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '.tokens + " - " + .description.moniker' | sort -gr | nl
View account info:
evmosd q bank balances $ACCOUNT
Unjail command:
evmosd tx slashing unjail \
--from="testnet-key" \
--chain-id="evmos_9000-1"
Delegate command:
evmosd tx staking delegate $ACCOUNT_TO_DELEGATE 1000200270498332004aphoton --gas auto --from testnet-key
evmosd tx staking delegate evmosvaloper1jfdvzp4c3a9lc8fegyrl5sf46p59xuh9z4eg93 9037258182710000000000atevmos --from wallet --keyring-backend os --gas=auto --gas-adjustment 1.4 --gas-prices 0.02atevmos --chain-id evmos_9000-4 --yes --broadcast-mode sync
Rewards destribution
evmosd tx distribution withdraw-all-rewards --from $WALLET --chain-id $CHAIN