Running Stratis Validator Node

By running a validator, you'll be responsible for securing the network and receive continuous payouts for actions that help the network reach consensus.

· guide incentive

In this article/blog we will explain and give a tutorial to set up a stratis node validator and run it.

Program Overview

In celebration of the Stratis Auroria Testnet launch, Stratis is offering two campaigns offering participants a share of a 1,000,000 STRAX (StratisEVM) prize pool.

Here’s what you can take away from participating in the campaign:

Understand the Testnet

The Auroria Testnet represents a sandbox environment where developers and users can experiment with Stratis blockchain features without risking real assets.

Set Up for Staking

To participate in the staking campaign, you’ll need to send STRAX to the Staking Deposit Contract and operate an execution node, a consensus node and a validator.

Active Participation

Staking isn’t just about holding tokens; it’s about actively participating in the network. Ensure your staking setup is online and operational to support the testnet, maximizing your chances to earn rewards.

Engage with the Community

The Stratis community is a vibrant ecosystem of blockchain enthusiasts, developers, and innovators. Engaging with the Stratis community through social media(s) and the official Discord Server can enhance your experience and provide valuable insight into what’s to come for Stratis and its journey with StratisEVM.

More details about the incentive program : https://www.stratisplatform.com/2024/02/07/500k-strax-airdrop-staking-quick-start-guide/

Okay let’s continue running the stratis validator node


Setting up stratis validator node

1. Introduction and prerequisites

we’ll walk through the following flow:

  • Configure an execution node using an execution-layer client.
  • Configure a beacon node using Prysm, a consensus-layer client.
  • Configure a validator client and stake STRAX using Prysm.
  • OS: 64-bit Linux, Mac OS X 10.14+, Windows 10+ 64-bit | We use 64-bit Linux in this guide .
  • CPU: 4+ cores @ 2.8+ GHz
  • Memory: 8GB+ RAM
  • Storage: SSD with at least 1TB free space
  • Network: 8 MBit/sec broadband

Port Requirements

  • GETH: Allow: 30303/UDP+TCP in+out; Block: 8545/TCP all
  • Prysm beacon-chain: Allow: */TCP+UDP out, 13000/TCP in+out, 12000/UDP in+out; Block: 3500/TCP all, 8551/TCP all, 4000/TCP all

Validator Requirements

  • 20,000 STRAX Testnet
  • New account / account testnet Metamask

Let’s start by logging in to your ssh server

Create user ( optional )

sudo adduser stratis

confirm password or next output

  • Add user to sudo
sudo usermod -aG sudo stratis
  • Exit ssh and log in again as the user we just created

Install dependencies

sudo apt update && sudo apt upgrade -y
sudo apt install git build-essential curl jq wget tar ufw -y
  • Port configure ( It’s default but you can costum with flags)
sudo ufw allow ssh
sudo ufw allow 30303/tcp
sudo ufw allow 13000
sudo ufw allow 12000
sudo ufw enable
sudo ufw reload
  • Install go
VER="1.21.5"
wget "https://go.dev/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" >> ~/.bash_profile
source ~/.bash_profile

check go

go version 
  • Create ~/go/bin dir
cd $HOME
mkdir -p go/bin

2. Configure and Run an Execution Client ( geth )

  • Get geth
cd $HOME &&\
wget https://github.com/stratisproject/go-stratis/releases/download/0.1.1/geth-linux-amd64-5c4504c.tar.gz &&\
tar -xzf geth-linux-amd64-5c4504c.tar.gz &&\
rm -r geth-linux-amd64-5c4504c.tar.gz &&\
mv ./geth ./go/bin
  • Create geth service file
sudo tee /etc/systemd/system/geth.service > /dev/null <<EOF
[Unit]
Description="geth client"
After=network-online.target

[Service]
User=$USER
ExecStart=$(which geth) --auroria --http --http.api eth,net,engine,admin --datadir=$HOME/.geth --authrpc.addr=127.0.0.1 --authrpc.jwtsecret=jwtsecret --syncmode=full
Restart=always
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF
  • Start geth
sudo systemctl daemon-reload
sudo systemctl enable geth
sudo systemctl restart geth
journalctl -fu geth -o cat

You should see logs like this, meaning geth is running and synchronizing at the highest block.

stratis-geth-1

3. Configure a Beacon Client

  • Get beacon-chain
cd $HOME
wget https://github.com/stratisproject/prysm-stratis/releases/download/0.1.1/beacon-chain-linux-amd64-0ebd251.tar.gz
tar -xzf beacon-chain-linux-amd64-0ebd251.tar.gz
rm -r beacon-chain-linux-amd64-0ebd251.tar.gz
mv ./beacon-chain ~/go/bin
  • Create beacon service file
tee /etc/systemd/system/beacon-chain.service > /dev/null <<EOF
[Unit]
Description="Beacon client"
After=network-online.target

[Service]
User=$USER
ExecStart=$(which beacon-chain) --auroria --datadir=$HOME/.beacon-chain --execution-endpoint=http://localhost:8551 --jwt-secret=jwtsecret --accept-terms-of-use
Restart=always
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF
  • Run beacon
sudo systemctl daemon-reload
sudo systemctl enable beacon-chain
sudo systemctl restart beacon-chain
journalctl -fu beacon-chain -o cat

4. Generate Keys and Import

Please confirm until “Generate key pairs” appears, input your Metamask wallet address.

example : stratis-gen-key

  • Get Deposit CLI
cd $HOME &&\
wget https://github.com/stratisproject/staking-deposit-cli/releases/download/0.1.0/staking-deposit-cli-linux-amd64.zip &&\
unzip staking-deposit-cli-linux-amd64.zip &&\
tar -C ~/go/bin -xzf staking-deposit-cli-linux-amd64/staking-deposit-cli-linux-amd64.tar.gz &&\
rm -rf staking-deposit-cli-linux-amd64 staking-deposit-cli-linux-amd64.zip
  • Generate keys and deposit-data

Change [YOUR_WALLET_ADDRESS] with your address

deposit new-mnemonic --num_validators 1 --chain auroria --eth1_withdrawal_address [YOUR_WALLET_ADDRESS]

Follow the instructions , You will be asked to create a password and make sure to copy the seed phrase.

Will create a validator_keys folder and contains two files namely deposit_data-*.json, keystore-m_*.json.

stratis-gen-key-2

  • Get Validator CLI
cd $HOME &&\
wget https://github.com/stratisproject/prysm-stratis/releases/download/0.1.1/validator-linux-amd64-0ebd251.tar.gz &&\
tar -xzf validator-linux-amd64-0ebd251.tar.gz &&\
rm -rf validator-linux-amd64-0ebd251.tar.gz &&\
mv ./validator ~/go/bin 
  • Import validator key
validator accounts import --keys-dir=/home/stratis/validator_keys/keystore-m*.json --auroria

Follow the prompted

Enter a wallet directory (default: /home/stratis/.eth2validators/prysm-wallet-v2):
./validator_keys

Download or copy your validator_keys folder to local.

5. Deposit

6. Check deposit progress

  • Check your pubkey
cat ./validator_keys/deposit* | jq '.[].pubkey'
  • Track progress deposit

Go to https://auroria.beacon.stratisevm.com/validator/[YOUR_PUBKEY] .

It looks like this stratis-deposit-2`

It can take up to 16 hours to deposit in the beacon-chain process and your validator become Active .

7. Run validator

  • Create password file

Change “YOUR_WALLET_PASSWORD” with your password

echo "YOUR_WALLET_PASSWORD" >> ./validator_keys/pwd.txt
  • Create service file

Change --suggested-fee-recipient=YOUR_ADDRESS with you address

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

[Service]
User=$USER
ExecStart=$(which validator) --auroria --datadir=$HOME/.validator --wallet-password-file=$HOME/validator_keys/pwd.txt --wallet-dir=$HOME/validator_keys --suggested-fee-recipient=YOUR_ADDRESS --accept-terms-of-use
Restart=always
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF
  • Run validator
sudo systemctl daemon-reload
sudo systemctl enable validator
sudo systemctl restart validator
journalctl -fu validator -o cat

validator logs will look like this until the deposit is confirmed and the validator becomes active.

stratis-validator-1`

Validator Active

Be sure to keep your node validator running .

Once the deposit is confirmed and the validator is active. You will see different logs from the validator node as well on https://auroria.beacon.stratisevm.com/validator/[YOUR_PUBKEY].

example : stratis-validator-2`

That’s it! .

Join our discord server if any question or help : Discord_genznodes .


Resources and About Stratis:


Looking for a node guide or Incentive discuss?