GuidesShow TestnetsEmpeiriaInstallation

Empeiria Installation Guide

This guide provides step-by-step instructions for installing a Empeiria node on your system. Before you begin, ensure you have the necessary prerequisites.

Prerequisites

  • Operating System: Linux (Ubuntu/Debian recommended) or macOS
  • Go: Version 1.18 or higher
  • Git: For cloning the repository
  • Terminal: Access to a command-line interface

Hardware Requirement

⚠️

Ensure your system meets the following hardware requirements to run the Empeiria node efficiently:

  • CPU: 4 cores or more
  • RAM: 8 GB or more
  • Disk Space: 200 GB SSD or more
  • Network: Broadband internet connection with at least 1 Mbps upload/download speed

Installation

1. Setup prerequisites

Install Package
sudo apt update -q
sudo apt install -y -qq make unzip clang pkg-config lz4 libssl-dev build-essential git jq ncdu bsdmainutils htop aria2 pv
Install Go
GO_VERSION=$(curl -s https://go.dev/VERSION?m=text | head -n1)
wget "https://dl.google.com/go/${GO_VERSION}.linux-amd64.tar.gz"
sudo tar -C /usr/local -xzf "${GO_VERSION}.linux-amd64.tar.gz"
rm "${GO_VERSION}.linux-amd64.tar.gz"
echo "export GOROOT=/usr/local/go" | tee -a ~/.profile
echo "export GOPATH=\$HOME/go" | tee -a ~/.profile
echo "export PATH=\$PATH:/usr/local/go/bin:\$HOME/go/bin" | tee -a ~/.profile
source ~/.profile

2. Install Empe Binary

Install Empe
OS_TYPE=$(uname -s | tr '[:upper:]' '[:lower:]')
ARCH_TYPE=$(uname -m)
ARCH_TYPE=$(echo $ARCH_TYPE | sed 's/x86_64/amd64/' | sed 's/aarch64/arm64/')
EMPE_NAME="emped_v0.2.2_${OS_TYPE}_${ARCH_TYPE}.tar.gz"
EMPE_DOWNLOAD_URL="https://github.com/empe-io/empe-chain-releases/raw/refs/heads/master/v0.2.2/${EMPE_NAME}"
wget -O $EMPE_DOWNLOAD_URL
tar -xvf $EMPE_NAME
sudo chmod +x emped
sudo mv emped /usr/local/bin/emped

Verify the installation by checking the version

emped version

3. Configure the Node

Use emped init to set up your node for the Odyssey testnet. Replace 'Your Node Name' with a unique identifier.

CHAIN_ID='empe-testnet-2'
MONIKER='Your Node Name'
DAEMON_HOME=$HOME/.empe-chain
emped init $MONIKER --chain-id $CHAIN_ID --home $DAEMON_HOME

4. Configure the Settings

DAEMON_HOME=$HOME/.empe-chain
git clone https://github.com/empe-io/empe-chains.git
DAEMON_HOME=$HOME/.empe-chain
rm -rf ~/.empe-chain/config/genesis.json
cp empe-chains/testnet-2/genesis.json $DAEMON_HOME/config/genesis.json
sed -e "s|persistent_peers = \".*\"|persistent_peers = \"$(cat empe-chains/testnet-2/.data | grep -oP 'Persistent peers\s+\K\S+')\"|g" $DAEMON_HOME/config/config.toml > $DAEMON_HOME/config/config.toml.tmp
mv $DAEMON_HOME/config/config.toml.tmp  $DAEMON_HOME/config/config.toml
sed -e "s|minimum-gas-prices = \".*\"|minimum-gas-prices = \"$(cat empe-chains/testnet-2/.data | grep -oP 'Minimum Gas Price\s+\K\S+')\"|g" $DAEMON_HOME/config/app.toml > $DAEMON_HOME/config/app.toml.tmp
mv $DAEMON_HOME/config/app.toml.tmp  $DAEMON_HOME/config/app.toml

Change custom port (optional)

DAEMON_HOME=$HOME/.empe-chain
PORT_PREFIX=26
sed -i.bak -e "s%:26656%:${PORT_PREFIX}656%g;" ${DAEMON_HOME}/config/client.toml
sed -i.bak -e "s%:1317%:${PORT_PREFIX}317%g; s%:8080%:${PORT_PREFIX}080%g; s%:9090%:${PORT_PREFIX}090%g; s%:9091%:${PORT_PREFIX}091%g; s%:8545%:${PORT_PREFIX}545%g; s%:8546%:${PORT_PREFIX}546%g; s%:6065%:${PORT_PREFIX}065%g" ${DAEMON_HOME}/config/app.toml
sed -i.bak -e "s%:26658%:${PORT_PREFIX}658%g; s%:26657%:${PORT_PREFIX}657%g; s%:6060%:${PORT_PREFIX}060%g; s%:26656%:${PORT_PREFIX}656%g; s%:26660%:${PORT_PREFIX}660%g" ${DAEMON_HOME}/config/config.toml

5. Install and Initialize Cosmovisor

Download the Cosmovisor binary using the go install command

go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@latest
cosmovisor version

Initialize Cosmovisor

DAEMON_NAME=emped DAEMON_HOME=$HOME/.empe-chain cosmovisor init $(which emped)

6. Create Service

To ensure that the Empeiria processes run continuously and restart automatically on failure, you can create a systemd service. This will help manage the lifecycle of the processes and ensure they start on boot.

Create a new systemd service file :

Create Emped Service
sudo tee /etc/systemd/system/emped.service >/dev/null <<EOF
[Unit]
Description=Cosmovisor Empeiria Node
After=network-online.target
 
[Service]
User=$USER
Type=simple
WorkingDirectory=$HOME/.empe-chain
ExecStart=$(which cosmovisor) run start --home $HOME/.empe-chain
Restart=on-failure
RestartSec=3
LimitNOFILE=infinity
LimitNPROC=infinity
Environment="DAEMON_NAME=emped"
Environment="DAEMON_HOME=$HOME/.empe-chain"
Environment="UNSAFE_SKIP_BACKUP=true"
Environment="PATH=$PATH"
 
[Install]
WantedBy=multi-user.target
EOF

Now apply the service configuration and start the services

sudo systemctl enable emped.service
sudo systemctl restart emped.service

To check the logs for the empeiria service, use the following command:

sudo journalctl -fu emped -o cat

6. Applying Peers

To enhance network synchronization, we recommend applying our peers by following the steps below, or you can change the RPC URL to your own desired RPC URL:

PERSISTENT_PEERS=$(curl "https://scan.aldebaranode.xyz/api/scan/peers?rpc_url=https://rpc-empe-testnet.aldebaranode.xyz" | jq -r 'flatten | join(",")')
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PERSISTENT_PEERS\"/" $HOME/.empe-chain/config/config.toml
sudo systemctl restart emped.service

7. Applying Snapshot

To apply a snapshot for faster synchronization, follow the steps below:

Download snapshot

SNAP_NAME=$(curl -s https://snapshot.cryptonode.id/empe-testnet/ | egrep -o ">empe-testnet-snapshot.*.tar.lz4" | tr -d ">")
SNAPSHOT_URL="https://snapshot.cryptonode.id/empe-testnet/${SNAP_NAME}"
(echo $SNAPSHOT_URL;) | aria2c -x 16 -s 16 -k 1M -i -

Stop Service

sudo systemctl stop emped

Backup Files

cp $HOME/.empe-chain/data/priv_validator_state.json $HOME/.empe-chain/priv_validator_state.json.backup

Remove Old Data

rm -rf $HOME/.empe-chain/data

Extract Snapshot

mkdir -p $HOME/.empe-chain/data
lz4 -d -c $SNAP_NAME | pv | tar xv -C $HOME/.empe-chain/ > /dev/null

Restore Files

cp $HOME/.empe-chain/priv_validator_state.json.backup $HOME/.empe-chain/data/priv_validator_state.json

Start Service

sudo systemctl start emped