Update KES Keys - solidsnakedev/cardano_commands GitHub Wiki
Block producer
Set cardano home
NODE_HOME=/node
POOL_KEYS=${NODE_HOME}/pool-keys
CONFIGURATION=${NODE_HOME}/configuration
Query slot number
slotNo=$(cardano-cli query tip --mainnet | jq -r '.slot')
Get Slots per KESPeriod from genesis
slotsPerKESPeriod=$(cat ${CONFIGURATION}/shelley-genesis.json | jq -r '.slotsPerKESPeriod')
Calculate KES Period
kesPeriod=$((${slotNo} / ${slotsPerKESPeriod}))
startKesPeriod=${kesPeriod}
echo startKesPeriod: ${startKesPeriod}
Generate KES Keys
cd $POOL_KEYS
cardano-cli node key-gen-KES \
--verification-key-file kes.vkey \
--signing-key-file kes.skey
Copy kes.vkey
to Air Gapped Node
AIR GAPPED NODE
Set Poolkeys directory
POOL_KEYS=/home/amnesia/pool-keys
Copy cold keys to POOL_KEYS
directory
Generate operational certificate (node cert)
cardano-cli node issue-op-cert \
--kes-verification-key-file $POOL_KEYS/kes.vkey \
--cold-signing-key-file $POOL_KEYS/cold.skey \
--operational-certificate-issue-counter $POOL_KEYS/cold.counter \
--kes-period ### \
--out-file $DATA/node.cert
Save new cold.counter
to cold storage
Verify Kes info in block producer node
cardano-cli query kes-period-info --mainnet --op-cert-file ${POOL_KEYS}/node.cert