Hello SPOs!!!
It is recommended all nodes be updated to version 1.24.2 ASAP in preparation for the upcoming HFE (hard for event) on December 16, 2020. Nodes that are not updated after the chain transitions will not mint blocks!!!
Also, as a reminder - PLEASE CHECK YOUR KES KEY EXPIRATION - many are coming due and will need to be rotated. A block producing node with expired KES keys will NOT be able to mint!
check kes expiration from your block producer:
curl localhost:12798/metrics | grep -i forge
and look for the following line item:
cardano_node_Forge_metrics_remainingKESPeriods_int xx
the âxxâ integer displayed reflects the remaining valid KES periods (1 KES period = 1.5 days)
1.24.2 Upgrade Guide provided on behalf of SPOCRA
first letâs update our linux packages on our nodes:
sudo apt-get update
sudo apt-get upgrade -y
now letâs see if ghcup is installed:
ghcup --version
install ghcup if needed:
curl --proto â=httpsâ --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
answer âNOâ to:
âDo you want to install haskell-language-server (HLS) now?â
type âNOâ and press Enter
answer âYESâ to:
"If you want ghcup to automatically add the required PATH variable to "/home/[user]/.bashrc
type âYESâ and press Enter
if by chance you receive the following error: âsh: 277: cannot create /home/[user]/.bashrc: Permission deniedâ, you will need to manually update your .bashrc and add the following:
[ -f â/home/[user]/.ghcup/envâ ] && source â/home/[user]/.ghcup/envâ # ghcup-env
now source your .bashrc:
source .bashrc
confirm ghcup is installed:
ghcup --version
make sure ghcup is on the latest version; you may need to run more than once (current version is v0.1.12):
ghcup upgrade
*note - if ghcup --version outputs v0.1.11, this can be remedied via running the following again:
curl --proto â=httpsâ --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
install ghc 8.10.2:
ghcup install ghc 8.10.2
set ghc 8.10.2 as the default version:
ghcup set ghc 8.10.2
verify version 8.10.2 is set correctly:
ghc --version
// The Glorious Glasgow Haskell Compilation System, version 8.10.2
// yay!
Now we need to ensure proper write protections on block producer hot keys (KES, VRF and opcert) - make sure they are read only. This will be required if upgrading from 1.21.1 (and already in place if upgrading from a later version). You can perform a simple chmod 400 xxx where xxx is the name of your key file to set the file options right. Your core-node will not start up without proper write protection on hot key files! chmod 600 xxx is ok too.
navigate to the folder containing your block producerâs hot keys and set appropriate file permissions:
chmod 400 vrf.skey
chmod 400 kes.skey
chmod 400 opcert
now we need to update our mainnet-config.json file - per the release notes, âStake Pool Operators (SPOs) and Exchanges should update their node config âoptionsâ section with an extra entry:â
âoptionsâ: {
âmapBackendsâ: {
âcardano.node.resourcesâ: [
âEKGViewBKâ
],
given there are subtle differences, SPOCRA recommends pulling the new config file from the code-locked build repo:
navigate to the folder containing your config file and rename your existing config file:
mv mainnet-config.json mainnet-config-old.json
pull in the latest config file:
wget https://hydra.iohk.io/build/5102327/download/1/mainnet-config.json
// in the future you can find the latest config file via https://hydra.iohk.io/job/Cardano/iohk-nix/cardano-deployment/latest-finished/download/1/mainnet-config.json
reference your mainnet-config-old.json and update your node logging preferences in your new mainnet-config.json
remove your mainnet-config-old.json:
rm mainnet-config-old.json
for better block visibility performance, add the following line to the mainnet-config.json just for your relay node(s):
âMaxConcurrencyDeadlineâ:2,
On setups with more networking resources / bandwidth available it is recommended to set MaxConcurrencyDeadline to 3 or 4 on relays and 2 on block producers
The MaxConcurrencyDeadline parameter tells your relays how many duplicate blocks to pull in to help ensure the relay propagates correct blocks. The higher the value for MaxConcurrencyDeadline, the more resources the node will utilize (default is 1)
now we update our nodes to cardano-node version 1.24.2:
cd
cd cardano-node
cabal clean
cabal update
git fetch --all --tags
git checkout tags/1.24.2
cabal build all
[stop your node]
copy over binaries - this assumes cardano-node is located in ~/.local/bin/ (update for cardano-node in ~/.cabal/bin/ as necessary):
cp -p dist-newstyle/build/x86_64-linux/ghc-8.10.2/cardano-node-1.24.2/x/cardano-node/build/cardano-node/cardano-node ~/.local/bin/
cp -p dist-newstyle/build/x86_64-linux/ghc-8.10.2/cardano-cli-1.24.2/x/cardano-cli/build/cardano-cli/cardano-cli ~/.local/bin/
[start your node]
confirm the correct version is installed 1.24.2:
cardano-node --version
verify your node is up and on tip!
cardano-cli query tip --mainnet
*notice we removed the âshelleyâ keyword from the above command!
Please post any questions and/or feedback! Thank you and happy updating!
Your Friend, FROG