Skip to content

Latest commit

 

History

History
179 lines (146 loc) · 4.21 KB

Run-a-Validator.md

File metadata and controls

179 lines (146 loc) · 4.21 KB

Story Validator Install Guide

System Requirements

Category Requirements
CPU 4 cores
RAM 8+ GB
Bandwidth 10 MBps for Download / Upload
Disk 200+ GB

Install dependencies

sudo apt update
sudo apt-get update
sudo apt install curl git make jq build-essential gcc unzip wget lz4 aria2 -y

Download Story-Geth binary

wget https://story-geth-binaries.s3.us-west-1.amazonaws.com/geth-public/geth-linux-amd64-0.9.2-ea9f0d2.tar.gz
tar -xzvf geth-linux-amd64-0.9.2-ea9f0d2.tar.gz
[ ! -d "$HOME/go/bin" ] && mkdir -p $HOME/go/bin
if ! grep -q "$HOME/go/bin" $HOME/.bash_profile; then
  echo 'export PATH=$PATH:$HOME/go/bin' >> $HOME/.bash_profile
fi
sudo cp geth-linux-amd64-0.9.2-ea9f0d2/geth $HOME/go/bin/story-geth
source $HOME/.bash_profile
story-geth version

Download Story binary

wget https://story-geth-binaries.s3.us-west-1.amazonaws.com/story-public/story-linux-amd64-0.9.11-2a25df1.tar.gz
tar -xzvf story-linux-amd64-0.9.11-2a25df1.tar.gz
[ ! -d "$HOME/go/bin" ] && mkdir -p $HOME/go/bin
if ! grep -q "$HOME/go/bin" $HOME/.bash_profile; then
  echo 'export PATH=$PATH:$HOME/go/bin' >> $HOME/.bash_profile
fi
sudo cp story-linux-amd64-0.9.11-2a25df1/story $HOME/go/bin/story
source $HOME/.bash_profile
story version

Init Iliad node

story init --network iliad --moniker "Your_moniker_name"

Create story-geth service file

sudo tee /etc/systemd/system/story-geth.service > /dev/null <<EOF
[Unit]
Description=Story Geth Client
After=network.target

[Service]
User=root
ExecStart=/root/go/bin/story-geth --iliad --syncmode full
Restart=on-failure
RestartSec=3
LimitNOFILE=4096

[Install]
WantedBy=multi-user.target
EOF

Create story service file

sudo tee /etc/systemd/system/story.service > /dev/null <<EOF
[Unit]
Description=Story Consensus Client
After=network.target

[Service]
User=root
ExecStart=/root/go/bin/story run
Restart=on-failure
RestartSec=3
LimitNOFILE=4096

[Install]
WantedBy=multi-user.target
EOF

Reload and start story-geth

sudo systemctl daemon-reload && \
sudo systemctl start story-geth && \
sudo systemctl enable story-geth && \
sudo systemctl status story-geth

Reload and start story

sudo systemctl daemon-reload && \
sudo systemctl start story && \
sudo systemctl enable story && \
sudo systemctl status story

Check logs

sudo journalctl -u story-geth -f -o cat
  • Wait a minute for connect peers
sudo journalctl -u story -f -o cat

Check sync status

curl localhost:26657/status | jq

image

  • Waiting for your node catching_up is false you can create validator.

Create validator

Export validator Public Key & Private key

By default, when you run story init a validator key is created for you. To view your validator key, run the following command:

story validator export

In addition, if you want to export the derived EVM private key of your validator into the default data config directory, please run the following:

story validator export --export-evm-key
  • Important: Please keep your private key in a safe place Your EVM Private Key saved to: /root/.story/story/config/private_key.txt

Create validator

story validator create --stake 1000000000000000000 --private-key "your_private_key"

Validator Staking

story validator stake \
   --validator-pubkey "VALIDATOR_PUB_KEY_IN_BASE64" \
   --stake 1000000000000000000 \
   --private-key xxxxxxxxxxxxxx
  • Replace VALIDATOR_PUB_KEY_IN_BASE64

Check your Validator on Explorer

  • Get your validator info:

curl -s localhost:26657/status | jq -r '.result.validator_info'

Result:

{ 
    "address": "D6F92FD7D0460AA9E4CF4D299FE479E93395DCF3", 
    "pub_key": { 
          "type": "tendermint/PubKeySecp256k1",
          "value": "A+46wEmBx5QQscNOKhmJgaAQjdr85s1OzvNimMiaysp3" 
    }, 
     "voting_power": "15000" 
}