All networks
Explorer
Chain4Energy logo

Chain4Energy

mainnet
Chain ID
perun-1
Node
1.4.3

πŸ“š 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.19.1" && \
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.19.1 linux/amd64

Download binary for work

git clone https://github.com/chain4energy/c4e-chain
cd c4e-chain
git checkout 1.4.3
make install

Specify variables, for ease of work

echo 'export c4e_moniker="Validator_name"' >> $HOME/.profile
echo 'export c4e_wallet="Wallet_name"' >> $HOME/.profile
echo 'export c4e_port="111"' >> $HOME/.profile
source $HOME/.profile

Initialize the node

c4ed init $c4e_moniker --chain-id perun-1

Set the settings

c4ed config chain-id perun-1 && \
peers=e8086cf746917cbe7090e5879d4a51147a1a6c61@65.21.167.185:27256,b7a8ba1cf07accf8fbb4d957f946d55d19ed1fd6@135.181.133.178:26656,7f56312b4d382d18dd2e9b7957c7e827cf01514d@193.34.213.223:14656,792dd2a1b100cd9e8c2b724722e7b0964ef5b107@138.201.85.176:10156,6273a979798e3ec7e325da010e2120d4d6d9bdb7@84.244.95.248:26656,bf78d9bd64cf7e83357966aa3b4ca19d996ef1ef@51.75.55.49:26656,091e465b77450f72ac44e107893720199e171557@185.111.159.233:2000,d09b54188bda615c13cdd92a18bef11bed8d4735@79.137.68.96:26656,8a0f5d3663611458e9ac2fe532446d940a0e51e9@65.109.78.246:26456,eb6d4504241599224cd4e9e3c28a0d7d6dce0bab@139.144.96.120:26656 && \
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.c4e-chain/config/config.toml && \
seeds="6b0ffcce9b59b91ceb8eea5d4599e27707e3604a@seeds.stakeup.tech:10217" && \
sed -i.bak -e "s/^seeds =.*/seeds = \"$seeds\"/" $HOME/.c4e-chain/config/config.toml

Create wallet

c4ed keys add $c4e_wallet

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

c4ed keys add $c4e_wallet --recover

Download Genesis

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

Optional Settings

Memory optimization
cd $HOME/.c4e-chain/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/.c4e-chain/config && \
sed -i.bak \
    -e "s/:\s*26656/:${c4e_port}56/g" \
    -e "s/:\s*26657/:${c4e_port}57/g" \
    -e "s/:\s*26658/:${c4e_port}58/g" \
    -e "s/:\s*26660/:${c4e_port}59/g" \
    -e "s/:\s*6060/:${c4e_port}61/g" \
    config.toml

sed -i.bak \
    -e "s/:\s*1317/:${c4e_port}17/g" \
    -e "s/:\s*8080/:${c4e_port}80/g" \
    -e "s/:\s*9090/:${c4e_port}90/g" \
    -e "s/:\s*9091/:${c4e_port}91/g" \
    app.toml && \
echo 'export c4e_node=http://localhost:${c4e_port}57' >> $HOME/.bash_profile && \
source $HOME/.bash_profile && \
c4ed config node $c4e_node

Create a service file

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

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

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