Story draws inspiration from ETH PoS in decoupling execution and consensus clients. The execution client story-geth relays EVM blocks into the story consensus client via Engine ABI, using an ABCI++ adapter to make EVM state compatible with that of CometBFT. With this architecture, consensus efficiency is no longer bottlenecked by execution transaction throughput.
Requirements
The minimum hardware requirements for running an Story Node are:
# switch root user
# Set home dir, example: /data/story-geth
sudo -i
export DIR=/data/story-geth
mkdir -pv $DIR/data
export TAG=v0.10.1
cd $DIR
wget https://github.com/piplabs/story-geth/releases/download/v0.10.1/geth-linux-amd64
mv geth-linux-amd64 story-geth
chmod +x story-geth
./story-geth version
# output
Geth
Version: 0.10.1-stable
Git Commit: b60a3ba8d47e60a6c78ca0570f7dac66e8976d93
Git Commit Date: 20241119
Architecture: amd64
Go Version: go1.22.0
Operating System: linux
GOPATH=
GOROOT=/opt/hostedtoolcache/go/1.22.0/x64
# gen start_node.sh
random_hex=$(openssl rand -hex 32)
echo $random_hex > $DIR/.jwt.hex
tee $DIR/start_node.sh > /dev/null << EOF
#!/bin/bash
${DIR}/story-geth \
--odyssey --syncmode full \
--datadir $DIR/data \
--http \
--http.addr "0.0.0.0" \
--authrpc.jwtsecret=${DIR}/.jwt.hex \
--authrpc.vhosts="*"
EOF
# gen service file
tee /etc/systemd/system/story-geth.service > /dev/null << EOF
[Unit]
Description=story geth client
After=network-online.target
[Service]
User=root
ExecStart=bash start_node.sh
Restart=on-failure
RestartSec=10
LimitNOFILE=65535
WorkingDirectory=$DIR
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl start story-geth
# query run log
journalctl -u story-geth.service -f -o cat
Consensus Client Install
IMPORTANT: If you are setting up a new node, you must start with version v0.12.0, as this base version is required before applying any subsequent upgrades. Afterward, install each subsequent upgrade in order. Follow these steps carefully:
Initialize and run version v0.12.0 following the initialization and run instructions provided above.