Update 1.24.2 to 1.25.1 for nodes configured with CoinCashew guide

I updated all my relays and a node from 1.25.1 to 1.26.1 with the following commands. I recommend you running those step by step. Do not just copy the whole text and paste it. It may ask for a password at sudo commands again after a long build process.

#
# UPDATE YOUR SERVER FIRST
#
sudo apt-get update -y
sudo apt-get upgrade -y


cd $HOME

#
# MAKE SURE YOU HAVE CABAL REQUIREMENTS INSTALLED FOT THE NEXT STEP
# (libncurses5 was missing for me)
#
sudo apt-get install build-essential curl libffi-dev libffi7 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5 -y

# In the following step during installation press:
# Enter, Enter
# NO - to Do you want to install haskell-language-server (HLS) now?
# YES - to If you want ghcup to automatically add the required PATH variable to "/home/cardano/.bashrc"...
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh

#
# MAKE ghcup COMMAND AVAILABLE
#
source $HOME/.bashrc

#
# JUST TO MAKE SURE EVERYTHING IS UPGRADED AND SET
#
ghcup upgrade
ghcup install cabal 3.4.0.0
ghcup set cabal 3.4.0.0
ghcup install ghc 8.10.4
ghcup set ghc 8.10.4
cabal update
cabal --version
ghc --version


#
# BACKUP PREVIOUS NODE SOURCES AND DOWNLOAD 1.26.1
#
cd $HOME/git
mv cardano-node cardano-node-1.25.1
git clone https://github.com/input-output-hk/cardano-node.git
cd cardano-node
git fetch --all --recurse-submodules --tags
git checkout tags/1.26.1

#
# CONFIGURE BUILD OPTIONS
#
cabal configure -O0 -w ghc-8.10.4
echo -e "package cardano-crypto-praos\n flags: -external-libsodium-vrf" > cabal.project.local
sed -i $HOME/.cabal/config -e "s/overwrite-policy:/overwrite-policy: always/g"
rm -rf $HOME/git/cardano-node/dist-newstyle/build/x86_64-linux/ghc-8.10.4


#
# BUILD (THIS PROCESS WILL TAKE TIME)
#
cabal build cardano-cli cardano-node


#
# STOP THE NODE TO BE ABLE TO REPLACE BINARIES
#
sudo systemctl stop cardano-node

#
# COPY NEW BINARIES
#
sudo cp $(find $HOME/git/cardano-node/dist-newstyle/build -type f -name "cardano-cli") /usr/local/bin/cardano-cli
sudo cp $(find $HOME/git/cardano-node/dist-newstyle/build -type f -name "cardano-node") /usr/local/bin/cardano-node

#
# CHECK NEW INSTALLED VERSIONS
#
cardano-node version
cardano-cli version


#
# UPDATE VALUE OF NODE_BUILD_NUM AND UPATE mainnet-config.json
#
cd $NODE_HOME
export NODE_BUILD_NUM=$(curl https://hydra.iohk.io/job/Cardano/iohk-nix/cardano-deployment/latest-finished/download/1/index.html | grep -e "build" | sed 's/.*build\/\([0-9]*\)\/download.*/\1/g')
sed -i $HOME/.bashrc \
    -e "s/export NODE_BUILD_NUM=[0-9]\+/export NODE_BUILD_NUM=${NODE_BUILD_NUM}/g"
source $HOME/.bashrc

wget -N https://hydra.iohk.io/build/${NODE_BUILD_NUM}/download/1/${NODE_CONFIG}-config.json
sed -i ${NODE_CONFIG}-config.json \
    -e "s/TraceBlockFetchDecisions\": false/TraceBlockFetchDecisions\": true/g"
	
	
	
# START THE NODE
# !!! IMPORTANT, VERSION 1.26.1 REQUIRES DB MIGRATION
# IT MAY TAKE 30min OR MORE DEPENDING ON YOUR CPU
# MIGRATION PROCESS WILL START AUTOMATICALLY AFTER YOU START THE NODE
# YOU CAN CHECK MIGRATION STATUS BY RUNNING: journalctl -u cardano-node.service -f
# READ BELOW IF YOU ALREADY HAVE ONE NODE UPDATED AND MIGRATED

sudo systemctl start cardano-node

Once you have at least one node updated and migrated, you can save time with migration by copying migrated DB before running the last command (starting the node). To do that run:
rsync -arzv --delete --delete-during username@YourMigratedNodeIP:/home/cardano/cardano-my-node/db/* $NODE_HOME/db/
You need to run this command on a non-migrated node to copy files from external YourMigratedNodeIP, Make sure you change the username, IP and paths correctly.

1 Like