Skip to content

ezraike/story-validator-guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 

Repository files navigation

Guide to run Story Protocol Validator Node

image

About Story Protocol

Story is integrating valuable assets called intellectual property (Intellectual Property or IP) into the blockchain world. Intellectual property encompasses creative works and ideas, such as songs, paintings, inventions, game characters. The aim is to digitally transform these works into assets called “tokens” so that they can be more easily bought, sold and used.

System Requirements

Hardware Recommended
CPU 4 Cores
RAM 8 GB
Disk 200 GB
Bandwith 10 MBit/s

Step 1: System Updates and Installation

Update System Packages

sudo apt update
sudo apt install curl git make jq build-essential gcc unzip wget lz4 aria2 -y
mkdir -p $HOME/go/bin
echo 'export PATH=$PATH:$HOME/go/bin' >> $HOME/.bash_profile
source $HOME/.bash_profile

Install Story-Geth Setup File

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
sudo cp geth-linux-amd64-0.9.2-ea9f0d2/geth $HOME/go/bin/story-geth
story-geth version

image

Story Setup

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
sudo cp story-linux-amd64-0.9.11-2a25df1/story $HOME/go/bin/story
story version

image

Creating a Moniker

Set your Moniker name

story init --network iliad --moniker <moniker-name>

Service Setup for Story-Geth

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

Service Setup for Story

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

Start Story-geth Service

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

Start Story Service

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

Log Control

sudo journalctl -u story-geth -f -o cat

You can add PEER and SNAPSHOT for faster synchronization

PEERS="[email protected]:29931,2f372238bf86835e8ad68c0db12351833c40e8ad@story-testnet-rpc.itrocket.net:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:36656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:36656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:41656,[email protected]:33656,[email protected]:26656,[email protected]:26656"
sed -i -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*persistent_peers *=.*/persistent_peers = \"$PEERS\"/}" $HOME/.story/story/config/config.toml

sudo systemctl restart story

CONTINUE WITH SNAPSHOT (enter the codes one by one)

sudo apt-get install wget lz4 -y

wget -O geth_snapshot.lz4 https://snapshots.mandragora.io/geth_snapshot.lz4
wget -O story_snapshot.lz4 https://snapshots.mandragora.io/story_snapshot.lz4

sudo systemctl stop story-geth
sudo systemctl stop story

sudo cp $HOME/.story/story/data/priv_validator_state.json $HOME/.story/priv_validator_state.json.backup

sudo rm -rf $HOME/.story/geth/iliad/geth/chaindata
sudo rm -rf $HOME/.story/story/data

lz4 -c -d geth_snapshot.lz4 | tar -x -C $HOME/.story/geth/iliad/geth
lz4 -c -d story_snapshot.lz4 | tar -x -C $HOME/.story/story

sudo rm -v geth_snapshot.lz4
sudo rm -v story_snapshot.lz4

sudo cp $HOME/.story/priv_validator_state.json.backup $HOME/.story/story/data/priv_validator_state.json

sudo systemctl start story-geth
sudo systemctl start story

Synchronization Control

curl localhost:26657/status | jq

wait for catching_up to output “false”

Step 2: Validator Installation

Don't install Validator until Catching Up is false!!

Create a wallet

story validator export --export-evm-key --evm-key-path .env
story validator export
story validator export --export-evm-key 

Keep the pubkey information given to you!

image

Faucet

Find your private key

Go inside your server directory and follow the path below

/root/.story/story/story/config/private_key.txt

Creating a validator

story validator create --stake 1000000000000000000

Keep the output URL address and TX Hash!

image

Self delegation

Edit the following code according to the wallet information you have obtained

story validator stake \
   --validator-pubkey "VALIDATOR_PUB_KEY_IN_BASE64" \
   --stake 1000000000000000000 \
   --private-key YOUR-PRIVATE-KEY

There is an error in the Self Delegation section, it is said that the minimum amount has increased to 1024, so you may not be able to delegate to yourself. Dont Worry.

Find your Validator Address

cd $HOME/.story/story/config
cat priv_validator_key.json | grep address

image

Search this address on the internet

https://testnet.story.explorers.guru/validator/<validator_address>

Finally, send your validator URL, validator explorer link and the EVM address of the wallet you created to the “dev-chat” or "validator-support" channel by tagging the authorities. <3

image

addresses where you can contact me if there is a issue

Discord: ezraike

Twitter: ezraike

Telegram: ezraike

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published