3.9 KiB
Validator Upgrade Guide for laconic_81337-5 Testnet v0.6.0 -> v0.7.0
This guide assumes you have followed the instructions to crete a systemd service or docker container validator node v0.6.0 and you perform the upgrade on a machine running v0.6.0
It is highly recommended to make the backup of your datadir after you stop v0.6.0 and before you start v0.7.0. Unless you changed your datadir, it should be located in ~/.laconicd
Systemd service
Skip this section if you use docker
This is very similar to building v0.6.0. We keep v 0.6.0 running until v0.7.0 is built and only after the successful build we should replace 0.6.0 binary with v0.7.0. This is to avoid jailing your validator for long downtime. The general upgrade plan is the following:
- Install Go v1.19.5 (we used 1.18 for v0.6.0)
- Remove old copy of the github repository and build directory
- Download the latest laconicd repository and checkout v0.7.0
- Build laconicd binary (but not install in this moment)
- Stop laconicd systemd service
- Install recently built new version of laconicd
- Start laconicd service
You have ~10 minutes after step 5 to complete steps 6 and 7 before your validator is jailed for downtime. Getting jailed for downtime is not a disaster, however would require manual unjailing.
Install Go 1.19
# Update Ubuntu
sudo apt update
sudo apt upgrade -y
# Install required software packages
sudo apt install git curl build-essential make jq -y
# Remove any existing installation of `go`
sudo rm -rf /usr/local/go
# Install Go version 1.19.5
curl https://dl.google.com/go/go1.19.5.linux-amd64.tar.gz | sudo tar -C/usr/local -zxvf -
Check the version of go installed
go version
# Should return something like: go version go1.19.5 linux/amd64
Remove old copy of laconicd
build
Attention should be paid that the directory mentioned below is
~/laconicd
and NOT~/.laconicd
. The latter is the data directory containing all your node data and configuration and it must be kept during the upgrade.
# Remove the previous build directory
cd ~
rm -rf laconicd
Download laconicd
repository
git clone https://github.com/cerc-io/laconicd.git
cd laconicd
# Checkout 0.7.0 branch
git fetch --all
git checkout v0.7.0
Build the new version of laconicd
# Build laconic (but not install at this moment)
make VERSION=v0.7.0 build
Stop laconicd
systemd service
sudo systemctl stop laconicd
Make sure the service is stopped
sudo systemctl status laconicd
Install new laconicd
version
make VERSION=v0.7.0 install
Verify your installation
laconicd version
This should return 0.7.0
Start laconicd
systemd service
sudo systemctl start laconicd
Verify that the node joined the network and produces new blocks
journalctl -f -u laconicd
Docker container
Upgrade plan:
- Stop running v0.6.0 container
- Delete v0.6.0 container
- Create v0.7.0 container
- Start v0.7.0 container
You have ~10 minutes to complete the upgrade procedure before your validator is jailed for downtime. Getting jailed for downtime is not a disaster, however would require manual unjailing.
Stop running v0.6.0 container
docker stop laconic-testnet-5
Delete v0.6.0 container
docker rm laconic-testnet-5
Create v0.7.0 container
docker create --name laconic-testnet-5 \
--restart always \
-v ~/.laconicd:/root/.laconicd \
-p 26656:26656 \
-p 127.0.0.1:26657:26657 \
-p 127.0.0.1:26660:26660 \
git.vdb.to/cerc-io/laconicd/laconicd:v0.7.0 \
laconicd start --gql-playground --gql-server --log_level=warn
Start v0.7.0 container
docker start laconic-testnet-5
Verify that the node joined the network and produces new blocks
docker logs -f laconic-testnet-5