Page cover

Creating a second stake pool before moving to the Babbage era

The decentralization parameter is removed in the Babbage era (Vasil hard fork). This means that current BFT nodes will not be able to continue producing blocks in Babbage. You will need at least one more stake pool:

mkdir pool2

Create keys and an address to send some funds to the second pool.

The payment keys:

cardano-cli address key-gen \
--verification-key-file pool2/payment.vkey \
--signing-key-file pool2/payment.skey

The stake keys:

cardano-cli stake-address key-gen \
--verification-key-file pool2/stake.vkey \
--signing-key-file pool2/stake.skey

Build the address:

cardano-cli address build \
--payment-verification-key-file pool2/payment.vkey \
--stake-verification-key-file pool2/stake.vkey \
--out-file pool2/payment.addr \
--testnet-magic 42

Build transactions to send some funds to the second pool owner:

cardano-cli transaction build \
--alonzo-era \
--testnet-magic 42 \
--invalid-hereafter $(expr $(cardano-cli query tip --testnet-magic 42 | jq .slot) + 1000) \
--tx-in $(cardano-cli query utxo --address $(cat utxo-keys/user1.payment.addr) --testnet-magic 42 --out-file  /dev/stdout | jq -r 'keys[]') \
--tx-out $(cat pool2/payment.addr)+50000000000000 \
--change-address $(cat utxo-keys/user1.payment.addr) \
--out-file transactions/tx6.raw

Sign the transaction:

Submit it to the blockchain:

Generate cold keys:

Generate VRF keys:

Generate KES keys:

Issue the operational certificate:

Create a topology file for pool2 and update pool1 topology. You will shut down bft0 and bft1 after the Vasil hard fork so there is no need to update them:

You can now write a script to start the pool2 node:

Give it executable permissions:

Start the node from the pool2 directory.

Registering the stake key

Create a registration certificate:

Registering a stake pool

Reuse the metadata file https://git.io/JJWdJ :

Get the metadata and save it:

Generate the registration certificate:

Create a delegation certificate:

Build the transaction to register the pool and the delegation certificate:

Wait for two epochs for pool2 to start producing blocks.

Bringing decentralization down to 0

Last updated

Was this helpful?