Installation

Update dependencies

sudo apt update
sudo apt-get install git curl build-essential make jq gcc snapd chrony lz4 tmux unzip bc -y

Install GoLang

# Install Go
cd $HOME
curl https://dl.google.com/go/go1.22.5.linux-amd64.tar.gz | sudo tar -C/usr/local -zxvf -
  
# Update environment variables to include go
cat <<'EOF' >>$HOME/.profile
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
EOF
  
source $HOME/.profile
  
# check go version
go version

Node Install

# Create GO Bin Folder
mkdir go/bin

# Install Story Binary
cd $HOME
rm -rf story
git clone https://github.com/piplabs/story.git
cd story
git checkout v0.13.0
go build -o story ./client
cp story $HOME/go/bin/
cd $HOME

cd $HOME
rm -rf story-geth
git clone https://github.com/piplabs/story-geth.git
cd story-geth
git checkout v0.10.1
make geth
cp $HOME/story-geth/build/bin/geth $HOME/go/bin/
cd $HOME

# Create story and geth folder
mkdir -p $HOME/.story/story
mkdir -p $HOME/.story/geth

Initialize the Node

# Initialize Node
story init --moniker "Your Node Names" --network odyssey

# Initialize geth
geth --odyssey --syncmode full

# Press Ctrl + C to exit geth

Genesis & Addressbook

curl -Ls https://support.synergynodes.com/genesis/story_testnet/genesis.json > $HOME/.story/story/config/genesis.json
curl -Ls https://support.synergynodes.com/addrbook/story_testnet/addrbook.json > $HOME/.story/story/config/addrbook.json

Add / Update Persistent Peers

# Add / Update Peers
PEERS=c2a6cc9b3fa468624b2683b54790eb339db45cbf@story-testnet-peer.itrocket.net:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:52656,[email protected]:42656,[email protected]:16756,[email protected]:26656,[email protected]:45656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:33556,[email protected]:26656,[email protected]:26656
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = "$PEERS"/" $HOME/.story/story/config/config.toml

Create Geth Service File

sudo tee /etc/systemd/system/geth.service > /dev/null <<EOF
[Unit]
Description=Geth daemon
After=network-online.target

[Service]
User=$USER
ExecStart=$HOME/go/bin/geth --odyssey --syncmode full
Restart=on-failure
RestartSec=3
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target
EOF

Create Story Service File

sudo tee /etc/systemd/system/story.service > /dev/null <<EOF
[Unit]
Description=Story Service
After=network.target

[Service]
User=$USER
Group=$USER
WorkingDirectory=$HOME/.story/story
ExecStart=$HOME/go/bin/story run

LimitNOFILE=65535
KillMode=process
KillSignal=SIGINT
TimeoutStopSec=90
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target
EOF

Download Snapshot (Prunned)

Start the Node

# Enable GETH and Story Services
sudo systemctl enable geth
sudo systemctl enable story

# Start the services
sudo service geth start && sudo service story start

# Check GETH Services logs
sudo journalctl -fu geth -o cat

# Check Story Services logs
sudo journalctl -fu story -o cat

Last updated