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