Skip to main content

System requirements (official)

ComponentRecommended (Mainnet)
CPUDedicated 8 cores
RAM32 GB
Disk500 GB NVMe
Bandwidth25 MBit/s
1

System prep

  • Ubuntu 22.04 LTS
  • Open ports: 30303 (Geth P2P), 8545/8546 (JSON-RPC/WS, optional), 26656/26657 (consensus P2P/RPC), 26660 (Prometheus)
sudo apt update && sudo apt install -y curl git unzip wget jq make build-essential lz4
2

Install story-geth (execution)

# Download latest mainnet binary
cd $HOME
curl -L -o story-geth https://github.com/piplabs/story-geth/releases/latest/download/geth-linux-amd64
chmod +x story-geth && sudo mv story-geth /usr/local/bin/story-geth

# Verify
story-geth version
3

Install story (consensus) + Cosmovisor

# Cosmovisor
go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@v1.6.0
cosmovisor version

# Download latest story binary
cd $HOME
curl -L -o story https://github.com/piplabs/story/releases/latest/download/story-linux-amd64
chmod +x story && sudo mv story /usr/local/bin/story
story version
4

Initialize node data

# Initialize consensus store for mainnet
cosmovisor init $(which story)
cosmovisor run init --network story --moniker "$HOSTNAME"
5

Create services

# story-geth
sudo tee /etc/systemd/system/story-geth.service > /dev/null <<EOF
[Unit]
Description=Story Geth (execution) — Mainnet
After=network-online.target
[Service]
User=${USER}
ExecStart=/usr/local/bin/story-geth --story --syncmode full
Restart=on-failure
RestartSec=5
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF

# story via Cosmovisor
sudo tee /etc/systemd/system/story.service > /dev/null <<EOF
[Unit]
Description=Story (consensus) via Cosmovisor — Mainnet
After=network-online.target
[Service]
Type=simple
User=${USER}
ExecStart=$(which cosmovisor) run run --api-enable --api-address=0.0.0.0:1317
Restart=on-failure
RestartSec=5s
LimitNOFILE=65535
Environment="DAEMON_NAME=story"
Environment="DAEMON_HOME=$HOME/.story/story"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
Environment="DAEMON_DATA_BACKUP_DIR=$HOME/.story/story/cosmovisor/backup"
WorkingDirectory=$HOME/.story/story
[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable story-geth story
sudo systemctl start story-geth story
journalctl -u story -f -o cat
6

Verify

# Execution (JSON-RPC): latest block
curl -s -X POST -H "Content-Type: application/json"       --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'       http://localhost:8545

# Consensus (Tendermint RPC): status & peers
curl -s localhost:26657/status | jq
curl -s localhost:26657/net_info | jq '.result.peers[].node_info.moniker'
For versions and release notes, always consult the official Story release pages before installing/upgrading.