cd ~/.local/bin/
# let's create a folder with the version number
mkdir -p $(cardano-node version | grep -oP '(?<=cardano-node )[0-9\.]+')
# copying files to the created folder
cp cardano-node $(cardano-node version | grep -oP '(?<=cardano-node )[0-9\.]+')/
cp cardano-cli $(cardano-node version | grep -oP '(?<=cardano-node )[0-9\.]+')/
2. Upgrading and updating the system packages
# let's update the system first
sudo bash -c 'sudo apt-get update -y; sudo apt-get upgrade -y'
3. Updating the Cardano node requirements
ghcup install ghc 8.10.7
ghcup install cabal 3.8.1.0
ghcup set ghc 8.10.7
ghcup set cabal 3.8.1.0
sudo apt install -y libsodium-dev libtool autoconf make
mkdir -p ~/git && cd ~/git
rm -rf secp256k1
git clone https://github.com/bitcoin-core/secp256k1
cd secp256k1
git checkout ac83be33
./autogen.sh
./configure --enable-module-schnorrsig --enable-experimental
make
sudo make install
mkdir -p ~/git && cd ~/git
git clone https://github.com/input-output-hk/libsodium
cd libsodium
git checkout dbb48cc
./autogen.sh
./configure
make
sudo make install
4. Downloading configuration files (leaving old topology file in place):
cd ~/cnode/config
#downloading configuration files
curl -o config.json https://book.world.dev.cardano.org/environments/mainnet/config.json
curl -o byron-genesis.json https://book.world.dev.cardano.org/environments/mainnet/byron-genesis.json
curl -o shelley-genesis.json https://book.world.dev.cardano.org/environments/mainnet/shelley-genesis.json
curl -o alonzo-genesis.json https://book.world.dev.cardano.org/environments/mainnet/alonzo-genesis.json
curl -o conway-genesis.json https://book.world.dev.cardano.org/environments/mainnet/conway-genesis.json
# just in case you still have old naming
mv mainnet-topology.json topology.json
#list downloaded files
ls -al *
cd ~/cnode/config
#downloading configs
wget -q -O config.json https://book.world.dev.cardano.org/environments/preprod/config.json
wget -q -O alonzo-genesis.json https://book.world.dev.cardano.org/environments/preprod/alonzo-genesis.json
wget -q -O byron-genesis.json https://book.world.dev.cardano.org/environments/preprod/byron-genesis.json
wget -q -O shelley-genesis.json https://book.world.dev.cardano.org/environments/preprod/shelley-genesis.json
wget -q -O topology.json https://book.world.dev.cardano.org/environments/preprod/topology.json
wget -q -O conway-genesis.json https://book.world.dev.cardano.org/environments/preprod/conway-genesis.json
# just in case you still have old naming
mv testnet-topology.json topology.json
#list downloaded files
ls -al
5. Proceeding with Cardano Node binary updates
# let's create a directory where we will be downloading source code
cd ~ && mkdir -p git
cd git
# just in case you already had a source directory with cardano-node source code - let's delete it and download fresh one.
rm -rf cardano-node
# let's clone source code from git
git clone https://github.com/input-output-hk/cardano-node.git
cd cardano-node
git fetch --all --recurse-submodules --tags
# checking out the 8.7.2 version
git checkout tags/8.7.2
# let's check if we have successfully installed the latst cardano-node and cardano-cli versions.
which cardano-node && which cardano-cli
cardano-node --version
cardano-cli --version
and check the log files if everything is starting up as planned:
journalctl -u cardano-node.service -f -o cat
that's it - you have upgraded your node to the latest cardano-node version, now do the same update on all of your other production servers (or copy generated cardano-cli / cardano-node bin files).