Page cover

💠Story Protocol

The World’s ꧁IP꧂ Blockchain

Public Endpoints

RPC https://story-testnet-rpc.validator247.com

API https://story-testnet-api.validator247.com

Explorer

https://testnet.story.explorers.guru/validator/storyvaloper1hce0zrf60rq7nttz72mxzyt8hk0uzzz37zlpraEVM Address: 0x1B6518B6794eD12CAAa75924164494EB02896DbA

--validator-pubkey: A0vX1mg9wseYtm39MUl1eBOaq/ROfWmIWZItiT11UuOn

Update system

sudo apt update
sudo apt-get install git curl build-essential make jq gcc snapd chrony lz4 tmux unzip bc -y

Install Go

rm -rf $HOME/go
sudo rm -rf /usr/local/go
cd $HOME
curl https://dl.google.com/go/go1.22.1.linux-amd64.tar.gz | sudo tar -C/usr/local -zxvf -
cat <<'EOF' >>$HOME/.profile
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
EOF
source $HOME/.profile
go version

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

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
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 <Your_node_name> iliad

story-geth service

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

sudo systemctl daemon-reload
sudo systemctl enable story-geth

Start story-geth & Check logs

sudo systemctl start story-geth
sudo systemctl status story-geth

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

story service

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


sudo systemctl daemon-reload
sudo systemctl enable story

Start story & Check logs

sudo systemctl start story
sudo systemctl status story

sudo journalctl -u story -f -o cat

Check sync

curl localhost:26657/status | jq

Download Genesis & Addrbook

curl -o genesis.json https://raw.githubusercontent.com/Validator247/Story-Protocol/main/genesis.json
curl -o addrbook.json https://raw.githubusercontent.com/Validator247/Story-Protocol/main/addrbook.json

Peer Live

URL="https://story-testnet-rpc.validator247.com/net_info"
# Fetch data
response=$(curl -s $URL)
# Parse JSON and construct PEERS string using jq
PEERS=$(echo $response | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):" + (.node_info.listen_addr | capture("(?<ip>.+):(?<port>[0-9]+)$").port)' | paste -sd "," -)
# Display the PEERS string
echo "PEERS=\"$PEERS\""
# Set peers
sed -i 's|^persistent_peers *=.*|persistent_peers = "'$PEERS'"|' $HOME/.story/story/config/config.toml

Peer Retrieval

curl -s https://story-testnet-rpc.validator247.com/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr | capture("(?<ip>.+):(?<port>[0-9]+)$").port)"'

Validator Operations

Validator Key Export

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

Validator Creation

To create a new validator, run the following command:

( your_private_key : /root/.story/story/config/private_key.txt )

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

Staking

story validator stake \
  --validator-pubkey A0vX1mg9wseYtm39MUl1eBOaq/ROfWmIWZItiT11UuOn \
  --stake 2000000000000000000 \
  --private-key <your-private_key>

Note: change number 2 in paragraph 2000000000000000000 equal to the number of tokens you have (>=1 minus gas)

Peer:

Upgrade

Upgrade v0.10.0 at height: 626575

sudo systemctl stop story story-geth
cd $HOME
rm -rf story
git clone https://github.com/piplabs/story
cd $HOME/story
git checkout v0.10.0
go build -o story ./client
sudo mv $HOME/story/story $(which story)
sudo systemctl restart story && sudo journalctl -u story -f -o cat

Last updated