Node Install
Guide to Set Up a Story Mainnet Node
Prerequisites
Operating System: Linux (preferably Ubuntu 20.04 or later).
- 4 CPUs
- 32 GB RAM
- 500 GB of disk space
- Installed software:
- curl, jq, go (version 1.21 or later)
Network Details
Chain ID: story-1
Binary version: geth v1.0.2, storyd v1.1.1
Installation and Configuration
1. Install dependencies:
sudo apt update
sudo apt-get install git curl build-essential make jq gcc snapd chrony lz4 tmux unzip bc -y
2. Install geth:
cd $HOME
wget https://github.com/piplabs/story-geth/releases/download/v1.2.1/geth-linux-amd64
mv geth-linux-amd64 story-geth
chmod +x story-geth
mv story-geth $HOME/go/bin/
story-geth -v
# geth version 1.2.1-stable
3. Install Story binary:
cd $HOME
wget https://github.com/piplabs/story/releases/download/v1.5.2/story-linux-amd64
mv story-linux-amd64 story
chmod +x story
mv story $HOME/go/bin/
story version
# Version v1.5.2-stable
# Git Commit ff2b411
# Git Timestamp 2025-02-26T06:27:05Z
4. Initialize the node:
story init --network story --moniker (moniker)
5. Download Genesis file:
curl -Ls https://ss.story.nodestake.org/genesis.json > $HOME/.story/story/config/genesis.json
6. Download Addrbook file:
curl -Ls https://ss.story.nodestake.org/addrbook.json > $HOME/.story/story/config/addrbook.json
7. Create systemd service for Story:
sudo tee /etc/systemd/system/story.service > /dev/null <<EOF
[Unit]
Description=Story Consensus Client
After=network.target
[Service]
Type=simple
User=$USER
ExecStart=$(which story) run --network story --api-enable --api-address=0.0.0.0:1307 --engine-endpoint=http://127.0.0.1:8551
Restart=on-failure
RestartSec=5s
LimitNOFILE=65535
WorkingDirectory=/home/$USER/.story/story
[Install]
WantedBy=multi-user.target
EOF
8. Create systemd service for Geth:
sudo tee /etc/systemd/system/story-geth.service > /dev/null <<EOF
[Unit]
Description=Story Geth Client
After=network.target
[Service]
User=$USER
ExecStart=/home/$USER/go/bin/story-geth --story --syncmode full --authrpc.addr 127.0.0.1 --authrpc.port 8551 --authrpc.vhosts="*" --http --http.addr 0.0.0.0 --http.port 8546 --http.api eth,net,web3,engine --http.corsdomain "*" --http.vhosts "*"
Restart=on-failure
RestartSec=3
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target
EOF
9. Start and enable services:
sudo systemctl daemon-reload
sudo systemctl enable story story-geth
sudo systemctl restart story-geth && sleep 5 && sudo systemctl restart story
10. Check logs:
journalctl -u story -u story-geth -f