Skip to content

Epix Mainnet Validator

The world's first blockchain powering a completely decentralized internet where websites are hosted by everyone, controlled by no one.

Chaind IDLast Version Tag
epix_1916-1v0.5.5
ServiceURL
Dashboardhttps://astrostake.xyz/networks/epix

Binary Upgrade

Upgrade to v0.5.5

Target block: 3080000

Download & Extract Binary

bash
cd $HOME
rm -rf epix
git clone https://github.com/EpixZone/EpixChain.git epix
cd epix
git checkout v0.5.5
make build
./build/epixd version

Start a new tmux session

bash
tmux new -s epix-upgrade

Run the auto-upgrade script.

⚠️ NOTE: Make sure you adjust the following according to your setup:

bash
UPGRADE_SCRIPT="https://raw.githubusercontent.com/astrostake/scripts/refs/heads/main/upgrade_binary.sh"

curl -sL $UPGRADE_SCRIPT | bash -s -- \
-b "epixd" \
-t "3080000" \
-n "$HOME/epix/build/epixd" \
-p "$HOME/go/bin" \
-r "http://localhost:14657" \
-i "7" \
-a "http://localhost:14317" \
-d "https://discord.com/api/webhooks/xxx/yyy" \ # optional
--progress-interval 0
Flag explanation:
FlagNameDescription
-bbinary-nameName of the running daemon (e.g. epixd)
-ttarget-blockBlock height at which the upgrade should happen
-nnew-binary-pathFull path to the new binary
-pinstall-pathPath where the current binary is installed (default: $HOME/go/bin)
-rrpc-urlRPC endpoint used to monitor current block height
-iproposal-id(Optional) Proposal ID to validate governance status
-aapi-url(Optional) API endpoint used to fetch proposal status

Installation

  1. Install Dependencies
bash
sudo apt update && sudo apt upgrade -y
sudo apt install curl git wget htop tmux build-essential jq make lz4 gcc unzip -y
  1. Install Go
bash
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"
[ ! -f ~/.bash_profile ] && touch ~/.bash_profile
echo "export PATH=$PATH:/usr/local/go/bin:~/go/bin" >> ~/.bash_profile
source $HOME/.bash_profile
[ ! -d ~/go/bin ] && mkdir -p ~/go/bin
  1. Set Vars

Configuration:

Generated Code:

Loading...
  1. Download Binary
bash
cd $HOME
rm -rf EpixChain
git clone https://github.com/EpixZone/EpixChain.git epix
cd epix
git checkout v0.5.5
make install
  1. Initialized
bash
epixd init $MONIKER --chain-id $EPIX_CHAIN_ID
epixd config set client chain-id $EPIX_CHAIN_ID
  1. Download addrbook & genesis
bash
wget -O $HOME/.epixd/config/genesis.json https://snapshots.linknode.org/epix/genesis
wget -O $HOME/.epixd/config/addrbook.json https://snapshots.linknode.org/epix/addrbook
  1. Configure Node

Configure peers

bash
SEEDS=""
PEERS="8c865d562c0219fc79258553177015a948c11466@2a03:26656,8c76baa377f8a4280283310d99aeb1905ebd0d44@2a0a:14656,9545f8bbcad275605a4451f73c9ae5b9ee409106@2a01:26656,1b7b67ff660e8609ad8dc75149509fafff7bd82b@84.203.116.103:26656,2a8dd565aec7a6defc73711ab3fc2d053791b9e4@2a01:30656,62bece330bbb7efa9436c12791c1a970ad36f8be@152.53.254.219:15056,fd5c256dcd3c23d97fb09d537fb6571038dc2ef0@2a0a:39956,ca1c511957a8f1b4968ea1e1bc766d91f3863d01@2001:26686,714cd38b09ffdccec67eecf35a3908c4fa8a1d5b@2a00:37656,1d17e520821b9ace0dbc22bc363eca1f4db56fca@2a01:29656,3799adb9015f67953e8ca5d9722b7f86c3b42fc0@2a0e:10256,1d029b1cb7427fd6ffd2d1d12d0fb604453a330a@84.247.184.122:29656,18de06740b9cebf146c867ea40ef4dacbba6cc8f@2a0a:17756,eda5187cc313920dfec564a757eb0bab71371c2a@2a0a:16556,4dd1f44bb3d0e2a325d1b9af51e8360dc963c7cc@2a01:39956,e856349614761f33cadd276c5ea7da78c2582ec4@2a01:37656,af0af7aecbe587caa77df2409cbae2ab3901d90a@46.232.248.39:37656"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.epixd/config/config.toml

Update app.toml ports

bash
sed -i.bak -e "s%:1317%:${EPIX_PORT}317%g;
s%:8080%:${EPIX_PORT}080%g;
s%:9090%:${EPIX_PORT}090%g;
s%:9091%:${EPIX_PORT}091%g;
s%:8545%:${EPIX_PORT}545%g;
s%:8546%:${EPIX_PORT}546%g;
s%:6065%:${EPIX_PORT}065%g" $HOME/.epixd/config/app.toml

Update config.toml ports

bash
sed -i.bak -e "s%:26658%:${EPIX_PORT}658%g;
s%:26657%:${EPIX_PORT}657%g;
s%:6060%:${EPIX_PORT}060%g;
s%:26656%:${EPIX_PORT}656%g;
s%^external_address = \"\"%external_address = \"$(wget -qO- eth0.me):${EPIX_PORT}656\"%;
s%:26660%:${EPIX_PORT}660%g" $HOME/.epixd/config/config.toml

Configure Pruning

Pruning Strategy
Select a strategy to manage your node's storage usage.
💡Recommended for Validators to fine-tune storage.
Number of recent blocks/states to keep in disk.
blocks
Frequency of deletion. E.g., 10 means prune every 10 blocks.
blocks
Loading...

Set Minimum Gas Fee & Other Parameters

bash
sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "0.001aepix"|g' $HOME/.epixd/config/app.toml
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.epixd/config/config.toml
sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $HOME/.epixd/config/config.toml
  1. Create Services
bash
sudo tee /etc/systemd/system/epixd.service > /dev/null <<EOF
[Unit]
Description=epix-mainnet
After=network-online.target

[Service]
User=$USER
ExecStart=$(which epixd) start --home $HOME/.epixd
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF
  1. Start Services
bash
sudo systemctl daemon-reload
sudo systemctl enable epixd
sudo systemctl restart epixd && sudo journalctl -u epixd -fo cat

Useful Commands

INFO

For a complete guide to creating a validator, visit our Cheat Sheet & Key Management page. It covers all the necessary commands and crucial steps for securing your keys.

Check logs

bash
sudo journalctl -u epixd -fo cat

Check Sync

bash
curl -sL https://raw.githubusercontent.com/astrostake/scripts/refs/heads/main/cosmos_sync_monitor.sh | bash -s -- --directory $HOME/.epixd --public-rpc https://epix-rpc.linknode.org --interval 5

🛡️ Security

To apply a quick security baseline, you can configure your firewall like this:

bash
sudo ufw allow ${EPIX_PORT}656/tcp comment 'EPIX Node p2p Port'

🔐 For a more secure and maintainable setup, check out our Essentials Guide, including SSH key setup, Fail2Ban protection, and a full VPS hardening checklist.