Elys logo

Elys

mainnet
Chain ID
elys-1
Node
v6.7.0

πŸ“š Node installation

Update packages

sudo apt update && sudo apt upgrade -y

Install dependencies

sudo apt install curl tar wget clang pkg-config libssl-dev libleveldb-dev jq build-essential bsdmainutils git make ncdu htop screen unzip bc lz4 gcc -y

Install Go

cd $HOME && \
ver="1.22.3" && \
wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz" && \
sudo rm -rf /usr/local/go && \
sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz" && \
rm "go$ver.linux-amd64.tar.gz" && \
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile && \
source $HOME/.bash_profile && \
go version

The output should be: go version go1.22.3 linux/amd64

Download binary for work

git clone https://github.com/elys-network/elys
cd elys
git checkout v6.7.0
make install

Specify variables, for ease of work

echo 'export elys_moniker="Validator_name"' >> $HOME/.profile
echo 'export elys_wallet="Wallet_name"' >> $HOME/.profile
echo 'export elys_port="111"' >> $HOME/.profile
source $HOME/.profile

Initialize the node

elysd init $elys_moniker --chain-id elys-1

Set the settings

elysd config set chain-id elys-1 && \
peers=b7ef73bbf7459e053d10580274fa8e455d1f3ec4@66.94.121.25:26656,b4f02b4dbeb369dd9b4e81a16e0db4194e351ffb@85.10.207.118:26656,9abe7b0e0227e2cd1f31b8c48a6c12c3c3672308@elys-mainnet-rpc.itrocket.net:41656,336b4190e2bbd194509f452ab53f301a361a4349@51.178.89.172:26656,e1a76bcd086a9f3b7eda28e2c11a981ad9f8f09e@57.128.117.105:26656,7e0e2a7a6c435274399d1df9cf65dc4b8b4ebf04@51.89.64.156:26656,2a899b63889ac5caa4c0219fa37992fa624b79de@51.161.118.222:26656,aa387e8f121acf33417e8cbbc6f197ee461e0951@elys.rpc.m.anode.team:26926,1abb2208e9a29c511f692cddf904b9c3aa9f0b95@148.251.176.103:26656,41defad48e55a1f69753d50a0b9686d03502e3c6@51.89.235.111:26656,637077d431f618181597706810a65c826524fd74@elys.rpc.nodeshub.online:22056,6185b8cbf01c697d116c84378eecc8f433024065@144.76.115.182:26656,2507d94809df3b6dbf5bdaa4840dbdc38356cb10@37.27.108.165:26656,d45163d8b41c13aab73b8c4f8472c63aab7b78ef@142.132.155.178:16656,a55791453fb0cd9f123b9c1eef76cb8c2fe64c55@65.108.225.69:26656,454c0999c525c1350f103151dbc49bdf5c5edd9b@elys-rpc.stake-town.com:38656,b42c60adafb47b19f0b36c58985364a897db6b85@65.109.26.242:22056,50c189f8a8902302718ae684fce6f0799345d3f3@rpc.elys.indonode.net:27656,c5f791d8385a5d7e946f2fc659489fd4c8e51fbd@73.40.158.140:33656,c0587c432d74238baab0e4ff70a400cb4bc78be0@65.108.230.113:31126 && \
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.elys/config/config.toml && \
seeds="6b0ffcce9b59b91ceb8eea5d4599e27707e3604a@seeds.stakeup.tech:10226" && \
sed -i.bak -e "s/^seeds =.*/seeds = \"$seeds\"/" $HOME/.elys/config/config.toml
sed -i.bak -e "s|^minimum-gas-prices =.*|minimum-gas-prices = \"0.001uelys\"|" $HOME/.elys/config/app.toml

Create wallet

elysd keys add $elys_wallet

Save the wallet. Or restore if there is a mnemonic:

elysd keys add $elys_wallet --recover

Download Genesis

wget -O genesis.json "https://snapshots.stakeup.tech/elys/genesis.json" --inet4-only
mv genesis.json ~/.elys/config

Optional Settings

Memory optimization
cd $HOME/.elys/config && \
indexer="null" && \
snapshot_interval="0" && \
pruning="custom" && \
pruning_keep_recent="1000" && \
pruning_interval="50" && \
sed -i.bak -e "s/^indexer *=.*/indexer = \"$indexer\"/" config.toml && \
sed -i.bak -e "s/^snapshot-interval *=.*/snapshot-interval = \"$snapshot_interval\"/" app.toml && \
sed -i.bak -e "s/^pruning *=.*/pruning = \"$pruning\"/" app.toml && \
sed -i.bak -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" app.toml && \
sed -i.bak -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" app.toml
Change port
cd $HOME/.elys/config && \
sed -i.bak \
    -e "s/:\s*26656/:${elys_port}56/g" \
    -e "s/:\s*26657/:${elys_port}57/g" \
    -e "s/:\s*26658/:${elys_port}58/g" \
    -e "s/:\s*26660/:${elys_port}59/g" \
    -e "s/:\s*6060/:${elys_port}61/g" \
    config.toml

sed -i.bak \
    -e "s/:\s*1317/:${elys_port}17/g" \
    -e "s/:\s*8080/:${elys_port}80/g" \
    -e "s/:\s*9090/:${elys_port}90/g" \
    -e "s/:\s*9091/:${elys_port}91/g" \
    app.toml && \
echo 'export elys_node=tcp://localhost:${elys_port}57' >> $HOME/.bash_profile && \
source $HOME/.bash_profile && \
elysd set client node $elys_node

Create a service file

sudo tee /etc/systemd/system/elysd.service > /dev/null <<EOF
[Unit]
Description=elys
After=network-online.target

[Service]
User=$USER
ExecStart=$(which elysd) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload &&
sudo systemctl enable elysd &&
sudo systemctl restart elysd && sudo journalctl -u elysd -f -o cat