Back to all services Back to all services
Story logo

Story

Aeneid

chainID: aeneid TESTNET

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