HOW TO: Upgrade to 1.35.3 (Vasil) for CNTOOLS users

I’m not seeing any simple guides here on how to upgrade to 1.35.3 so I’m thinking I’ll help those out since I myself would have needed one. Would’ve saved me a alot of time.

Update your system

sudo apt-get update
sudo apt-get upgrade
sudo reboot 

Stop your node

sudo systemctl stop cnode

Next, we will download, compile and install libsodium.

cd $HOME/git
git clone https://github.com/input-output-hk/libsodium
cd libsodium
git checkout 66f017f1
./autogen.sh
./configure
make
sudo make install

Then we will add the following environment variables to your shell profile. E.G $HOME/.zshrc or $HOME/.bashrc depending on what shell application you are using. Add the following to the bottom of your shell profile/config file so that the compiler can be aware that libsodium is installed on your system.

export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH"

Once saved, we will then reload your shell profile to use the new variables. We can do that by typing source $HOME/.bashrc or source $HOME/.zshrc (depending on the shell application you use).

We need to install Secp256k1 what is required for 1.35.3 cardano-node version

cd $HOME/git
git clone https://github.com/bitcoin-core/secp256k1
cd secp256k1
git checkout ac83be33
./autogen.sh
./configure --enable-module-schnorrsig --enable-experimental
make
make check
sudo make install

Reboot

sudo reboot

Build your node

sudo systemctl stop cnode
cd ~/git
sudo rm -R cardano-node
git clone https://github.com/input-output-hk/cardano-node 
cd cardano-node

git fetch --tags --all
git checkout 1.35.3


echo -e "package cardano-crypto-praos\n  flags: -external-libsodium-vrf" > cabal.project.local
$CNODE_HOME/scripts/cabal-build-all.sh

Start your node

sudo systemctl start cnode

You’ve now got Vasil!

6 Likes

I have also provided a Github repository for building cardano-node as a deb package.

This way you let the package manager install all files in the correct locations and don’t need to make changes to LD_LIBRARY_PATH, PKG_CONFIG_PATH and no manual copying. Build once and install on as many nodes as you like.

I notice that you are using CNTools but there is no mention of prereqs.sh. Doesn’t that script typically handle the installation of these dependencies? Have you tried it and found deficiencies?

You can use prereqs.sh with the alpha branch tag. It will indeed install your dependencies for you.

./prereqs.sh -b alpha

At the time of writing, the alpha branch on cntools has not been merged with the master branch. Use at your own risk, as the alpha branch is not “meant” for mainnet. The merge should happen soon. I have used the scripts without an issue on the PreProd testnet, however, I am personally waiting for the merge to master before using on main net nodes.

1 Like

U will need to downlod also prereqs.sh from alpha branch… the script from master will not install libsecp256k1 (u can check the script on github)

2 Likes

For those who still working on upgrading to 1.35.3 (Vasil), below is a repo I created to automate the installation/update process. It installs cntools as well.

but if you have the master branch version and run ./prereqs.sh -b alpha it will fetch the alpha version for you. then you just run the same command again

Thankyou - worked perfectly :saluting_face:

1 Like