Sharing my working compiled steps to upgrade nodes to Cardano 1.35.0 for nodes
built using Coincashew or manual methods. This is NOT meant for nodes that were
built using CNTOOLS. Some good reference material have already been built for that.
While there has been material for Coincashew/manual builds, I have not seen a
complete compilation yet which included backup steps, dependency installation, and
some procedures that can reduce total downtime all combined.
As of this writing, Coincashew still had the steps to upgrade to a previous version
which was mostly parameterized. This makes it easy to update but not as easy to follow.
Hopefully, this sharing can help people who need it.
Although these steps are compiled by WISH Pool, we want to give credit also to the
incredible people from whom we copied large portions to create this
procedure. These include IOHK, Coincashew, Jack7E and jf3110
DISCLAIMER:
These upgrade steps are shared in good faith. While I have done multiple tests to
ensure it is working before I shared it, you may encounter issues unique to your
setup. For example, it is likely that your directories and currently installed apps
are different from mine.
Therefore, please do your own checks and adjust the commands accordingly.
I suggest that you backup your node first before doing the upgrade so you can easily
fall back to your backup if something goes wrong. As usual, try the upgrade on your
testnet nodes first and make sure they are working before updating mainnet.
Good luck!
# Start of Cardano 1.35.0 upgrade procedures
# Install new dependencies and update apps
sudo apt-get install nano llvm-12 numactl libnuma-dev autoconf automake libtool -y
sudo apt update
sudo apt upgrade -y
cd ~/git # Create this directory if not existing
####### Remove space in "htt ps" below before running.
git clone htt ps://github.com/bitcoin-core/secp256k1.git
cd secp256k1
git reset --hard ac83be33d0956faf6b7f61a60ab524ef7d6a473a
./autogen.sh
./configure --prefix=/usr --enable-module-schnorrsig --enable-experimental
make
make check
sudo make install
# Upgrade GHCup installer to latest version
ghcup upgrade
ghcup --version
# Install ghc
ghcup install ghc 8.10.7
ghcup set ghc 8.10.7
ghc --version
# Install cabal
ghcup install cabal 3.6.2.0
ghcup set cabal 3.6.2.0
cabal --version
- At this point, if you want to keep your node up as long as possible, I recommend you DO NOT shutdown your node and update your Config files yet. You can do this at a later stage after you have compiled the new binaries
# Build new binaries
cd $HOME/git
rm -rf cardano-node-old
####### Remove space in "htt ps" below before running.
git clone htt ps://github.com/input-output-hk/cardano-node.git cardano-node2
cd cardano-node2
cabal update
git fetch --all --recurse-submodules --tags
git checkout $(curl -s https://api.github.com/repos/input-output-hk/cardano-node/releases/latest | jq -r .tag_name)
cabal configure -O0 -w ghc-8.10.7
Note: The line below changed from replace (>) to append (>>) from previous instructions probably to ensure that the entry “with-compiler: ghc-8.10.7” remains in cabal.project.local
echo -e "package cardano-crypto-praos\n flags: -external-libsodium-vrf" >> cabal.project.local
cabal build cardano-node cardano-cli
######### Do the steps below from another terminal window #######
# Backup files while waiting for the "cabal build" command to complete
# Backup config files (change all testnet to mainnet for Mainnet)
cd $HOME/cardano-my-node
cp -p testnet-alonzo-genesis.json testnet-alonzo-genesis.json.`date +%Y%m%d`
cp -p testnet-byron-genesis.json testnet-byron-genesis.json.`date +%Y%m%d`
cp -p testnet-config.json testnet-config.json.`date +%Y%m%d`
cp -p testnet-shelley-genesis.json testnet-shelley-genesis.json.`date +%Y%m%d`
cp -p testnet-topology.json testnet-topology.json.`date +%Y%m%d`
# Backup binary files
cd /usr/local/bin # Assuming this is the location of your cardano-node and cardano-cli
# Change the version number in the commands below accordingly
sudo cp -p cardano-node cardano-node.1.34.1
sudo cp -p cardano-cli cardano-cli.1.34.1
####### End of commands to be done in another window #######
# Run this after the "cabal build cardano-node cardano-cli" command completes
# This will verify that you have the correct version numbers
$(find $HOME/git/cardano-node2/dist-newstyle/build -type f -name "cardano-node") version
$(find $HOME/git/cardano-node2/dist-newstyle/build -type f -name "cardano-cli") version
### Copy latest config files
# Stop Cardano node before updating config files
sudo systemctl stop cardano-node.service
# Use these commands to refresh the config files from IOHK
cd $HOME/cardano-my-node
wget -N https://hydra.iohk.io/job/Cardano/cardano-node/cardano-deployment/latest-finished/download/1/${NODE_CONFIG}-config.json
wget -N https://hydra.iohk.io/job/Cardano/cardano-node/cardano-deployment/latest-finished/download/1/${NODE_CONFIG}-byron-genesis.json
wget -N https://hydra.iohk.io/job/Cardano/cardano-node/cardano-deployment/latest-finished/download/1/${NODE_CONFIG}-shelley-genesis.json
wget -N https://hydra.iohk.io/job/Cardano/cardano-node/cardano-deployment/latest-finished/download/1/${NODE_CONFIG}-alonzo-genesis.json
* You probably don't want to overwrite your current topology files but if for some reason you want to overwrite your topology file, uncomment the command below and run it
#wget -N https://hydra.iohk.io/job/Cardano/cardano-node/cardano-deployment/latest-finished/download/1/${NODE_CONFIG}-topology.json
# Install the binary files
# Replace binary files
sudo cp $(find $HOME/git/cardano-node2/dist-newstyle/build -type f -name "cardano-node") /usr/local/bin/cardano-node
sudo cp $(find $HOME/git/cardano-node2/dist-newstyle/build -type f -name "cardano-cli") /usr/local/bin/cardano-cli
# Verify versions are properly installed
cardano-node version
cardano-cli version
### Reboot to refresh the system
sudo reboot
# Do this only if you need to manually start cardano service
sudo systemctl start cardano-node.service
# Organize git directory
cd $HOME/git
mv cardano-node/ cardano-node-old/
mv cardano-node2/ cardano-node/
# That's it! You have completed the upgrade to Cardano 1.35.0