Story: upgrade guide
Upgrade History
The following table presents a list of the iliad-0
testnet upgrades history.
Each version is identified by a specific id, tag, block height, and usually software upgrade proposal. For Story' testnet iliad-0
it is announcements in Medium/Discord
Consensus client - story
Execution client - story-geth
ID | Tag | Client | Starting Block | Release | Proposal / Announcement |
---|---|---|---|---|---|
`` | v0.9.13 |
Consensus | 0 | Release | N.A. (Genesis) |
`` | v0.9.2 |
Execution | 0 | Release | N.A. (Genesis) |
> | |||||
v0.10.0 |
v0.10.1 |
Consensus | 626575 | Release | Discord, Medium |
> | |||||
v0.9.3 |
v0.9.3 |
Execution | 1069000 | Release | Discord, Medium |
> | |||||
v0.10.0 |
v0.10.2 |
Consensus | 1069001 | Release | |
> | |||||
v0.11.0 |
v0.11.0 |
Consensus | 1325860 | Release | Discord |
> | |||||
v0.9.4 |
v0.9.4 |
Execution | 1441500 | Release | Discord |
Upgrade binaries
story v0.9.13 (Consensus)
{
"binaries": {
"darwin/arm64": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/story-public/story-darwin-arm64-0.9.13-b4c7db1.tar.gz",
"darwin/amd64": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/story-public/story-darwin-amd64-0.9.13-b4c7db1.tar.gz",
"linux/arm64": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/story-public/story-linux-arm64-0.9.13-b4c7db1.tar.gz",
"linux/amd64": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/story-public/story-linux-amd64-0.9.13-b4c7db1.tar.gz",
}}
geth v0.9.2 (Execution)
{
"binaries": {
"darwin/arm64": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/geth-public/geth-darwin-arm64-0.9.2-ea9f0d2.tar.gz",
"darwin/amd64": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/geth-public/geth-darwin-amd64-0.9.2-ea9f0d2.tar.gz",
"linux/arm64": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/geth-public/geth-linux-arm64-0.9.2-ea9f0d2.tar.gz",
"linux/amd64": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/geth-public/geth-linux-amd64-0.9.2-ea9f0d2.tar.gz",
"linux/arm32": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/geth-public/geth-linux-arm-0.9.2-ea9f0d2.tar.gz",
"linux/amd32": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/geth-public/geth-linux-386-0.9.2-ea9f0d2.tar.gz"
}}
story v0.10.0 (Consensus)
{
"binaries": {
"darwin/arm64": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/story-public/story-darwin-arm64-0.10.1-57567e5.tar.gz",
"darwin/amd64": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/story-public/story-darwin-amd64-0.10.1-57567e5.tar.gz",
"linux/arm64": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/story-public/story-linux-arm64-0.10.1-57567e5.tar.gz",
"linux/amd64": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/story-public/story-linux-amd64-0.10.1-57567e5.tar.gz",
}}
geth v0.9.3 (Execution)
{
"binaries": {
"darwin/arm64": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/geth-public/geth-darwin-arm64-0.9.3-b224fdf.tar.gz",
"darwin/amd64": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/geth-public/geth-darwin-amd64-0.9.3-b224fdf.tar.gz",
"linux/arm64": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/geth-public/geth-linux-arm64-0.9.3-b224fdf.tar.gz",
"linux/amd64": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/geth-public/geth-linux-amd64-0.9.3-b224fdf.tar.gz",
"linux/arm32": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/geth-public/geth-linux-arm-0.9.3-b224fdf.tar.gz",
"linux/amd32": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/geth-public/geth-linux-386-0.9.3-b224fdf.tar.gz"
}}
story v0.10.2 (Consensus), after geth upgrade patch
{
"binaries": {
"darwin/arm64": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/story-public/story-darwin-arm64-0.10.2-f7b649d.tar.gz",
"darwin/amd64": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/story-public/story-darwin-amd64-0.10.2-f7b649d.tar.gz",
"linux/arm64": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/story-public/story-linux-arm64-0.10.2-f7b649d.tar.gz",
"linux/amd64": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/story-public/story-linux-amd64-0.10.2-f7b649d.tar.gz",
}}
story v0.11.0 (Consensus)
{
"binaries": {
"darwin/arm64": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/story-public/story-darwin-arm64-0.11.0-aac4bfe.tar.gz",
"darwin/amd64": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/story-public/story-darwin-amd64-0.11.0-aac4bfe.tar.gz",
"linux/arm64": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/story-public/story-linux-arm64-0.11.0-aac4bfe.tar.gz",
"linux/amd64": "https://story-geth-binaries.s3.us-west-1.amazonaws.com/story-public/story-linux-amd64-0.11.0-aac4bfe.tar.gz",
}}
geth v0.9.4 (Execution)
{
"binaries": {
"darwin/arm64": "https://github.com/piplabs/story-geth/releases/download/v0.9.4/geth-darwin-arm64",
"darwin/amd64": "https://github.com/piplabs/story-geth/releases/download/v0.9.4/geth-darwin-amd64",
"linux/arm64": "https://github.com/piplabs/story-geth/releases/download/v0.9.4/geth-linux-arm64",
"linux/amd64": "https://github.com/piplabs/story-geth/releases/download/v0.9.4/geth-linux-amd64",
}}
Upgrade preparations
####install dependencies, if needed
sudo apt install curl git wget htop tmux build-essential jq make lz4 gcc unzip -y
Option 1. Download prebuilt binaries
Geth client (Execution)
Choose the right binary to download (see upgrade announcements), depends on your system and architecture. For example, for Linux/Amd64 and latest version it will be:
url_for_download="https://github.com/piplabs/story-geth/releases/download/v0.9.4/geth-linux-amd64";
name=$(echo ${url_for_download} | rev | cut -d/ -f1 | rev);
echo ${name}
>geth-linux-amd64
Create directory for download bin:
mkdir -vp ${HOME}/prebuilt_bin/
Download and unzip binaries:
wget -O "${HOME}/prebuilt_bin/${name}" ${url_for_download};
cd ${HOME}/prebuilt_bin;
mv ${name} geth;
chmod +x geth;
#check version
./geth version
#output
>Version: 0.9.4-stable
>Git Commit: 5fac2533c21a511aa6e9d0cf3f80b4c3f98cbf73
>Git Commit Date: 20241014
>Architecture: amd64
>Go Version: go1.21.13
>Operating System: linux
Story client (Consensus)
Choose the right binary to download (see upgrade announcements), depends on your system and architecture. For example, for Linux/Amd64 and latest version it will be:
url_for_download="https://story-geth-binaries.s3.us-west-1.amazonaws.com/story-public/story-linux-amd64-0.11.0-aac4bfe.tar.gz";
name=$(echo ${url_for_download} | rev | cut -d/ -f1 | rev);
echo ${name}
>story-linux-amd64-0.11.0-aac4bfe.tar.gz
Create directory for download bin:
mkdir -vp ${HOME}/prebuilt_bin/
Download and unzip binaries:
wget -O "${HOME}/prebuilt_bin/${name}" ${url_for_download}
tar -xzf ${HOME}/prebuilt_bin/${name} -C ${HOME}/prebuilt_bin/ && \
rm ${HOME}/prebuilt_bin/${name}
cd ${HOME}/prebuilt_bin/story-*
chmod +x story
Option 2. Build binarys from the source code
Here you can find how to build Story node with pebbledb. Below we will describe goleveldb upgrade process.
Story client (Consensus)
Fetch new data from the Story' Repo:
git clone https://github.com/piplabs/story.git;
cd $HOME/story;
git pull;
git fetch;
git reset --hard;
Ceckout new version and confirm the branch:
vers="v0.11.0";
git checkout ${vers};
git log -1 --pretty=oneline ;
>aac4bfe46e52e54acf3f1b05a39c17f156942017 (HEAD, tag: v0.11.0, origin/release/0.11) Merge remote-tracking branch 'origin/iliad' into release/0.11
Build binary and check version & commit
go build -o ./build/story ./client;
cd $HOME/story/build;
./story version;
#output
>Version v0.11.0-stable
>Git Commit aac4bfe
>Git Timestamp 2024-10-04T22:01:32Z
Geth client (Execution)
Fetch new data from the Story' Repo:
git clone https://github.com/piplabs/story-geth.git;
cd $HOME/story-geth;
git pull;
git fetch;
git reset --hard;
Ceckout new version and confirm the branch:
vers="v0.9.4"
git checkout ${vers}
git log -1 --pretty=oneline ;
>5fac2533c21a511aa6e9d0cf3f80b4c3f98cbf73 (HEAD, tag: v0.9.4, origin/release/0.9) Merge remote-tracking branch 'origin/iliad' into release/0.9
Build binary and check version & commit
make geth
cd $HOME/story-geth/build/bin/
./geth version
#output
>Version: 0.9.4-stable
>Git Commit: 5fac2533c21a511aa6e9d0cf3f80b4c3f98cbf73
>Architecture: amd64
>Go Version: go1.22.3
Story (consesus client). During the upgrade.
- Stop the Story/cosmovisor service file.
sudo systemctl stop storyd.service && systemctl status storyd.service
- Save current binary (just in case):
bin_path=$(which story) && echo ${bin_path}
# example of the output
>~/go/bin/story
#save old binary (just in case)
mv ${bin_path} ${bin_path}_before_upgrade
- Replace old binary with the new one:
Option 1.
cd ${HOME}/prebuilt_bin/story-*;
mv story ${bin_path};
cd;
rm -rf $HOME/prebuilt_bin/story-*
Option 2.
mv $HOME/story/build/story ${bin_path}
and confirm the new version:
story version
#output
>Version v0.11.0-stable
>Git Commit aac4bfe
- Restart the service file:
sudo systemctl restart storyd.service && journalctl -u storyd -f -o cat
- During the consensus phase backup your current
priv_validator_state.json
(just in case)
cp "$HOME/.story/story/data/priv_validator_state.json" $HOME
- Checkout your prevote:
data_folder=story/story
PORT=<YOUR_STORY_NODE_RPC_PORT>
# find out the current round:
round=$(jq '.round | tonumber ' $HOME/.${data_folder}/data/priv_validator_state.json) && echo "current round you have voted for: ${round}"
curl -s localhost:${PORT}/consensus_state -s | jq '' | grep $(curl -s localhost:${PORT}/status | jq -r .result.validator_info.address[:12])
If you see your prevote, then you are ok! Well Done! 👍👏🏻🚀
Geth (Execution client). Before the scheduled upgrade height.
- Stop the Geth service file.
sudo systemctl stop story_gethd.service && systemctl status story_gethd.service
- Save current binary (just in case):
bin_path=$(which geth) && echo ${bin_path};
# example of the output
>~/go/bin/geth
cur_vers=($(geth version | grep "Version"));
cur_vers=${cur_vers[1]} && echo ${cur_vers};
#save old binary (just in case)
mv ${bin_path} ${bin_path}_before_upgrade
- Replace old binary with the new one:
Option 1.
cd ${HOME}/prebuilt_bin/;
mv geth ${bin_path};
cd;
Option 2.
mv $HOME/story-geth/build/bin/geth ${bin_path}
and confirm the new version:
geth version;
#output
>Version: 0.9.4-stable
>Git Commit: 5fac2533c21a511aa6e9d0cf3f80b4c3f98cbf73
- Restart the service file:
sudo systemctl restart story_gethd.service && journalctl -u story_gethd -f -o cat