Retirar un pool
Procedimiento para retirar un pool. Se recomienda dar al menos un par de epochs para que los delegadores tengan tiempo de buscar otro pool donde delegar su stake.
Es muy recomendado que toda operación que implique acceso a las cold keys, payment.addr o stake.addr se realicen en una maquina sin acceso a internet a fin de minimizar posibilidades de exponer info sensitiva de nuestro pool y/o fondos a terceros mal intencionados. Luego se copian los archivos firmados al BP o un relay online y desde ahí se les agrega a la blockchain.
Para esto necesitamos crear un certificado de des-registro y someter la transacción. El retiro del pool se hará al final del epoch que indiquemos en nuestro certificado. El mismo debe ser un epoch mayor al actual y menor que eMax, cuyo valor podemos consultar en el protocol.json.
1
cd ~/cardano-node
2
cardano-cli query protocol-parameters \
3
--mainnet \
4
--out-file out/protocol.json
5
6
cat out/protocol.json | jq .eMax
Copied!
Necesitamos consultar también el epoch actual, una forma simple y rápida es consultar las métricas de cardano-node.
1
curl -s http://127.0.0.1:12798/metrics | grep epoch
Copied!
Para este ejemplo tenemos que eMax es igual a 18 y el epoch actual es 200, es decir que nuestro epoch para retirar el pool debe estar comprendido entre 201 y 218.

Certificado de des-registro

Generamos un certificado indicando el epoch en que retiraremos el pool
1
cardano-cli stake-pool deregistration-certificate \
2
--cold-verification-key-file pool-keys/cold.vkey \
3
--epoch 210 \
4
--out-file out/pool.deregistration
Copied!

Borrador de transacción

Consultamos nuestros UTXO y tip. Luego generamos nuestro borrador.
1
cardano-cli query utxo \
2
--address $(cat payment.addr) \
3
--mainnet
4
5
cardano-cli query tip --mainnet | jq .slotNo
6
7
cardano-cli transaction build-raw \
8
--tx-in 4fec1c3bcd8752befae60ca69f....28cb28319cba44115281f925add#0 \
9
--tx-out $(cat payment.addr)+0 \
10
--ttl 0 \
11
--fee 0 \
12
--out-file tmp/tx.draft \
13
--certificate-file out/pool.deregistration
Copied!

Cálculo de saldo, fees y ttl

Aplicamos la fórmula Saldo_UTXO - fee. Para el --ttl podemos usar un valor seguro como tip + 2000.
1
cardano-cli transaction calculate-min-fee \
2
--tx-body-file tmp/tx.draft \
3
--tx-in-count 1 \
4
--tx-out-count 1 \
5
--witness-count 1 \
6
--byron-witness-count 0 \
7
--mainnet \
8
--protocol-params-file out/protocol.json
9
10
expr 1000000 - 173567
Copied!

Generar transacción

Ahora si generamos nuestra transacción con los valores obtenidos, la firmamos y sometemos a la blockchain
1
cardano-cli transaction build-raw \
2
--tx-in 4fec1c3bcd8752befae60ca69f6042......8319cba44115281f925add#0 \
3
--tx-out $(cat payment.addr)+826433\
4
--ttl 5027980 \
5
--fee 826433 \
6
--out-file tmp/tx.raw \
7
--certificate-file out/pool.deregistration
8
9
cardano-cli transaction sign \
10
--tx-body-file tmp/tx.raw \
11
--signing-key-file payment.skey \
12
--signing-key-file pool-keys/cold.skey \
13
--mainnet \
14
--out-file tmp/tx.signed
15
16
cardano-cli transaction submit \
17
--tx-file tmp/tx.signed \
18
--mainnet
Copied!
Se debe tener en cuenta ademas que luego de retirar el pool se deben esperar 2 epochs para recibir el depósito de 500 ADA en nuestro stake.addr.
Última actualización 8mo ago