Update to 8.7.3 for Coincashew users

Hi all,

Here’s another quick upgrade guide for 8.7.3 for Coincashew users. Especially those with older Coincashew installs.

This release brings better p2p networking but isn’t a hard fork, so you could still be running 8.1.2 if you wanted.

The numbering has been updated to reflect the protocol version, i.e. version 8.X.X is protocol v8.

Update Instructions:

Update your instance:

sudo apt-get update && sudo apt-get upgrade

You need blst now as well. So install this before you upgrade.

cd $HOME/git
git clone https://github.com/supranational/blst
cd blst
git checkout v0.3.10
./build.sh
cat > libblst.pc << EOF
prefix=/usr/local
exec_prefix=\${prefix}
libdir=\${exec_prefix}/lib
includedir=\${prefix}/include

Name: libblst
Description: Multilingual BLS12-381 signature library
URL: https://github.com/supranational/blst
Version: 0.3.10
Cflags: -I\${includedir}
Libs: -L\${libdir} -lblst
EOF
sudo cp libblst.pc /usr/local/lib/pkgconfig/
sudo cp bindings/blst_aux.h bindings/blst.h bindings/blst.hpp /usr/local/include/
sudo cp libblst.a /usr/local/lib
sudo chmod u=rw,go=r /usr/local/{lib/{libblst.a,pkgconfig/libblst.pc},include/{blst.{h,hpp},blst_aux.h}}

Download latest cardano-node git and checkout latest branch:

cd $HOME/git
git clone https://github.com/IntersectMBO/cardano-node.git cardano-node2
cd cardano-node2/
git fetch --all --recurse-submodules --tags
git checkout tags/8.7.3

Then upgrade ghcup and do a cabal update.

ghcup upgrade
ghcup install ghc 8.10.7
ghcup set ghc 8.10.7
ghcup install cabal 3.8.1.0
ghcup set cabal 3.8.1.0
cabal update
ghc --version
cabal --version

Note: make sure you have ghc 8.10.7 and cabal 3.8.1.0 before proceeding.

Build the node:

cd $HOME/git/cardano-node2
cabal configure -O0 -w ghc-8.10.7
echo -e "package cardano-crypto-praos\n flags: -external-libsodium-vrf" >> cabal.project.local
cabal build cardano-node cardano-cli

The build takes about 20 minutes.

Check cardano-cli and cardano-node that the build was successful:

$(find $HOME/git/cardano-node2/dist-newstyle/build -type f -name "cardano-cli") version
$(find $HOME/git/cardano-node2/dist-newstyle/build -type f -name "cardano-node") version

The cardano-node version should be 8.7.3 and cardano-cli is 8.17.0 (previous versions had cardano-node and cardano-cli at the same tag but now they’re different for some reason.

Stop your node

sudo systemctl stop cardano-node

Then copy over the new executables

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

Check that successful version is reported:

cardano-node version
cardano-cli version

You also need to download the new Conway Genesis file again (Environments - The Cardano Operations Book ) and update the ConwayGensesisHash in the config.json file to

"f7d46bdd3b3c8caf38351c4eef3346a89241707270be0d6106e8a407db294cc6", 

You can also just download the new config.json file. Note that p2p is enabled by default. There are other instructions for setting up the p2p config on your bp so it doesn’t connect to other relays. Otherwise, turnoff EnableP2P.

Then start your node.

sudo systemctl start cardano-node

Just be aware, it will replay the ledger, which can take an hour or two, so make sure you are doing this when you aren’t scheduled for a block any time soon.

Then a quick clean up:

cd $HOME/git/
rm -rf cardano-node-old
mv cardano-node cardano-node-old
mv cardano-node2 cardano-node

Monitor the progress by either using gliveview or journalctl:

journalctl --unit=cardano-node --follow

4 Likes

for me the hash had to be

f7d46bdd3b3c8caf38351c4eef3346a89241707270be0d6106e8a407db294cc6

any idea why? It would not startup unless I changed it to this

2 Likes

Oops, good spotting. I grabbed the old hash instead of the new one. I’ll correct my post above.

2 Likes

Thank you for this guide. Much appreciated. Out of curiosity as this is a bit over my head, how do you go about calculating the new hash when a new config file is needed? Is this provided by Cardano or are we able to figure this out ourselves?

1 Like

It’s provided in the config.json file. So for a new setup you can just download the config.json and the other genesis files and it should all be consistent. You can also just download new versions when you upgrade too.

It is better to use the provided hashes, as those are the ones that are verify the intended genesis files. If you modify the genesis file (you shouldn’t) then you could calculate a new hash and put that into the config file, but there shouldn’t be a need for that.

1 Like

Thank you!

1 Like