KES Renewal

Renewing cardano node operational certificate.

Before undertaking these steps the block producing node must be fully synchronised. Otherwise, latest KES period cannot be calculated. Please check block explorer such as https://pooltool.io/ for latest epoch and slot number.

Determine the number of slots per KES period from the genesis file:

slotsPerKESPeriod=$(cat $NODE_HOME/${NODE_CONFIG}-shelley-genesis.json | jq -r '.slotsPerKESPeriod')
echo slotsPerKESPeriod: ${slotsPerKESPeriod}

Find the Slot number:

slotNo=$(cardano-cli shelley query tip --mainnet | jq -r '.slotNo')
echo slotNo: ${slotNo}

Find the kesPeriod by dividing the slot tip number by the slotsPerKESPeriod:

kesPeriod=$((${slotNo} / ${slotsPerKESPeriod}))
echo kesPeriod: ${kesPeriod}
startKesPeriod=${kesPeriod}
echo startKesPeriod: ${startKesPeriod}

Ensure you have kes.vkey, node.skey and node.counter in place before creating the node operational certificate:

cardano-cli shelley node issue-op-cert \
    --kes-verification-key-file $HOME/bp-cold-keys/kes.vkey \
    --cold-signing-key-file $HOME/bp-cold-keys/node.skey \
    --operational-certificate-issue-counter $HOME/bp-cold-keys/node.counter \
    --kes-period <startKesPeriod> \
    --out-file node.cert

With new node.cert, restart your block producer node.

Last updated