Rotar KES

Cada cierto tiempo es necesario volver a generar el certificado que demuestra que eres productor de bloques.

Necesitamos los siguientes archivos para rotar el certificado: kes.vkey cold.skey cold.counter.

Para saber cuánto dura un período y cuánto tiempo dura un certificado, podemos buscar en el archivo de génesis mainnet-shelley-genesis.json:

slotsPerKESPeriod=$(cat $HOME/cnode/config/mainnet-shelley-genesis.json | jq -r '.slotsPerKESPeriod')

Obtenemos el último slot:

export CARDANO_NODE_SOCKET_PATH=~/cnode/sockets/node.socket
slotNo=$(cardano-cli query tip --mainnet | jq -r '.slotNo')
echo slotNo: ${slotNo}

Antes de que podamos crear un certificado operativo para nuestro nodo, necesitamos averiguar el inicio del período de validez de KES, es decir, en qué período de evolución de KES estamos.

kesPeriod=$((${slotNo} / ${slotsPerKESPeriod}))
echo kesPeriod: ${kesPeriod}
cardano-cli node issue-op-cert \
--kes-verification-key-file kes.vkey \
--cold-signing-key-file node.skey \
--operational-certificate-issue-counter node.counter \
--kes-period ${kesPeriod} \
--out-file node.cert