Love2Stake Docs
  • Home
  • Cardano Wallets
    • Daedalus wallet
      • How to install Daedalus
      • How to create Wallet
      • How to transfer ADA to Wallet
      • How to delegate your ADA
  • How to create Stakepool
    • Mainnet
      • Create Stakepool on Mainnet
      • KES Renewal
    • Testnet
      • Create Stakepool on Testnet
  • Upgrade Cardano Node
    • Untitled
  • Cardano Node Set-up using CNTOOLs.
  • Stakepool Operator tools
    • Stakepool Sites
    • Leader Log Scripts
      • Epoch nonce
  • Security
    • Cardano Security for Stakepool Operators
  • About
  • Disclaimer
  • Support
Powered by GitBook
On this page

Was this helpful?

  1. How to create Stakepool
  2. Mainnet

KES Renewal

Renewing cardano node operational certificate.

PreviousCreate Stakepool on MainnetNextTestnet

Last updated 4 years ago

Was this helpful?

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 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.

https://pooltool.io/