Methods of payment Abuse

Story Protocol: Setting up the node

03.09.2024, 15:51

Story Protocol is an innovative platform for creating and managing intellectual property on blockchain. Major funds such as a16z, Polychain Capital and Samsung Next have invested in the project, raising over $134 million. Now you have the opportunity to become a validator in Story's new test network.

Story Protocol

Minimum server requirements

  1. Processor: 4 cores

  2. RAM: 8 GB

  3. Storage: 200 GB

Server preparation

  1. Rent a server from a trusted hosting provider (of course from THE.Hosting, and with promo code TAXI activate a 15% discount on the first order).

  2. Connect to the server via MobaXterm with root access.

Update and install the necessary packages:

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

Install Story-Geth

Download and install Story-Geth:

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

Installing Story

Download and install Story:

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

Initialize the network and set the moniker:

story init --network iliad --moniker MONIKER

Creating and Configuring Service Files

Create a service file 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


Create a service file 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

Restart and run the services:

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

Check node status

Check the node synchronization status:

curl localhost:26657/status | jq

For the first 5-10 minutes the status is true and 0 block_height is normal. After that the blocks will start to grow and the status will change to false.

Installing snapshot (optional)

Stop node:

sudo systemctl stop story

sudo systemctl stop story-geth

Download and install the snapshot to speed up synchronization:

cd $HOME
aria2c -x 16 -s 16 https://vps5.josephtran.xyz/Story/Geth_snapshot.lz4 -o Geth_snapshot.lz4
aria2c -x 16 -s 16 https://vps5.josephtran.xyz/Story/Story_snapshot.lz4 -o Story_snapshot.lz4

Delete old data and extract new data:

rm -rf ~/.story/story/data
rm -rf ~/.story/geth/iliad/geth/chaindata
sudo mkdir -p /root/.story/story/data
lz4 -d Story_snapshot.lz4 | pv | sudo tar xv -C /root/.story/story/
sudo mkdir -p /root/.story/geth/iliad/geth/chaindata
lz4 -d Geth_snapshot.lz4 | pv | sudo tar xv -C /root/.story/geth/iliad/geth/

Restart the node and check the status:

sudo systemctl start story
sudo systemctl start story-geth
curl localhost:26657/status | jq

Creating a validator

Export validator data:

story validator export

Obtaining a private key:

sudo cat /root/.story/story/config/private_key.txt
story validator export --export-evm-ke

Request test $IP tokens from the faucet and create the validator:

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

Useful commands for working with node

Stopping the node:

sudo systemctl stop story
sudo systemctl stop story-geth

Restarting a node:

sudo systemctl start story
sudo systemctl start story-get

Checking status:

curl localhost:26657/status | jq

Viewing logs:

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

Conclusion

You have now successfully installed and configured the Story Protocol node. You can monitor its performance and create validators to participate in the test network.