Installation

System Specs

HardwareRequirement

CPU

4 Cores

RAM

8 GB

Disk

200 GB

Bandwidth

10 MBit/s

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

Waiting for your nodecatching_up is falseyou can create validator.

Create validator

Export 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:

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

Note that to participate in consensus, at least 1 IP must be staked (equivalent to 1000000000000000000 wei)! Faucet link: https://faucet.story.foundation/

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

Backup the validator key:

  • File location: /root/.story/story/config/priv_validator_key.json

  • Copy this file to your local machine.

  • Store it carefully; this is the most crucial key for your validator.

Validator Staking

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

Replace VALIDATOR_PUB_KEY_IN_BASE64

Amount: 1000000000000000000=1 IP Token

Check your Validator on Explorer: https://testnet.story.explorers.guru/

Paste HEX Validator Address: D6F92FD7D0460AA9E4CF4D299FE479E93395DCF3 to search

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