Skip to main content

Installation

Minimum hardware requirement

4 Cores, 8G Ram, 160G SSD, Ubuntu 22.04

Server preparation

sudo apt update && sudo apt upgrade -y
sudo apt install make curl git wget -y
sudo apt install htop tmux build-essential jq make lz4 gcc unzip -y

Install GO

if ! which go ; then
#Install GO
ver="1.22.4"
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
fi

Download and build binaries

cd $HOME
rm -rf $HOME/arkeo
git clone https://github.com/arkeonetwork/arkeo
cd arkeo
git checkout v1.0.11
make install

Set vars

echo "export WALLET="wallet"" >> $HOME/.bash_profile
echo "export MONIKER="NodeName"" >> $HOME/.bash_profile
echo "export ARKEO_CHAIN_ID="arkeo-main-v1"" >> $HOME/.bash_profile
echo "export ARKEO_PORT="19"" >> $HOME/.bash_profile
source $HOME/.bash_profile

Initialize the node

arkeod config set client chain-id $ARKEO_CHAIN_ID
arkeod config set client keyring-backend os
arkeod config set client node tcp://localhost:${ARKEO_PORT}657
arkeod init "$MONIKER" --chain-id $ARKEO_CHAIN_ID --home $HOME/.arkeo
# Download genesis and addrbook files
curl -L https://snapshots.nodesync.top/Mainnet/Arkeo/genesis.json > $HOME/.arkeo/config/genesis.json
curl -L https://snapshots.nodesync.top/Mainnet/Arkeo/addrbook.json > $HOME/.arkeo/config/addrbook.json
# Set seeds
sed -i -e 's|^seeds *=.*|seeds = "[email protected]:26656,[email protected]:26656,[email protected]:26656,ebc272824924ea1a27ea3183dd0b9ba713494f83@akash-mainnet-peer.autostake.com:27356"|' $HOME/.arkeo/config/config.toml

# Set minimum gas price
sed -i -e 's|^minimum-gas-prices *=.*|minimum-gas-prices = "0.01uarkeo"|' $HOME/.arkeo/config/app.toml

# Set pruning
sed -i \
-e 's|^pruning *=.*|pruning = "custom"|' \
-e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' \
-e 's|^pruning-interval *=.*|pruning-interval = "17"|' \
$HOME/.arkeo/config/app.toml

# Enable prometheus
sed -i -e 's|^prometheus *=.*|prometheus = true|' $HOME/.arkeo/config/config.toml
# Change ports
sed -i.bak -e "s%:1317%:${ARKEO_PORT}317%g;
s%:8080%:${ARKEO_PORT}080%g;
s%:9090%:${ARKEO_PORT}090%g;
s%:9091%:${ARKEO_PORT}091%g;
s%:8545%:${ARKEO_PORT}545%g;
s%:8546%:${ARKEO_PORT}546%g;
s%:6065%:${ARKEO_PORT}065%g" $HOME/.arkeo/config/app.toml

sed -i.bak -e "s%:26658%:${ARKEO_PORT}658%g;
s%:26657%:${ARKEO_PORT}657%g;
s%:6060%:${ARKEO_PORT}060%g;
s%:26656%:${ARKEO_PORT}656%g;
s%^external_address = \"\"%external_address = \"$(wget -qO- eth0.me):${ARKEO_PORT}656\"%;
s%:26660%:${ARKEO_PORT}660%g" $HOME/.arkeo/config/config.toml
# Download latest chain data snapshot
curl https://snapshots.nodesync.top/Mainnet/Arkeo/arkeo_latest.tar.lz4 | lz4 -dc - | tar -xf - -C "$HOME/.arkeo"

Create Service and Start node

sudo tee /etc/systemd/system/arkeod.service > /dev/null <<EOF
[Unit]
Description=Arkeo Mainnet
After=network-online.target
[Service]
User=root
ExecStart=$(which arkeod) start
Restart=always
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable arkeod
sudo systemctl restart arkeod
sudo journalctl -u arkeod -f --no-hostname -o cat