Traducción de multiowner-pool-instructions publicado por el operador de Stake Pool ANGEL
Instrucciones (Flujo de Trabajo) para configurar un pool con multi-propietarios (desde 0), teniendo los fondos asegurados en un dispositivos hardware.
Ambos usuarios usan billeteras hardware para asegurar el Pledge.
Requerimientos
Ambos propietarios necesitarán instalar cardano-hw-cli en el escritorio con las billeteras hardware conectadas.
Paso 1: Crear las llaves y direcciones
Generar las llaves de pago y las llaves de stake, derivar las direcciones correspondientes y enviar fondos con al menos 503 ADA para el depósito del pool.
cardano-cli address key-gen ...
cardano-cli stake-address key-gen ...
cardano-cli address build ...
cardano-cli stake-address build ...
Paso 2: Crear llaves y certificados de entorno frío, así como llaves vrf y kes de entorno caliente
cardano-cli node key-gen ...
cardano-cli node key-gen-VRF ...
cardano-cli node issue-op-cert …
Paso 3: Registrar dirección de stake en la blockchain.
cardano-cli stake-address registration-certificate …
Paso 4: Registrar certificado de delegación y pool de un solo propietario
Pool de un solo propietario (1era iteración)
cardano-cli stake-pool registration-certificate \
--cold-verification-key-file node-cold.vkey \
--vrf-verification-key-file vrf.vkey \
--pool-pledge 0 \
--pool-cost 340000000 \
--pool-margin <comisión variable, ejemplo- 0.011 para 1.1%> \
--pool-reward-account-verification-key-file cli-stake-rewards.vkey \
--pool-owner-stake-verification-key-file cli-stake-rewards.vkey \
--mainnet \
--single-host-pool-relay <IP del relay público> --pool-relay-port <puerto> \
--metadata-url <dominio>/nombre_del_pool.json \
--metadata-hash <hash de metadatos> \
--out-file pool.cert
Crear certificado de delegación
cardano-cli stake-address delegation-certificate \
--staking-verification-key-file cli-stake-rewards.vkey \
--stake-pool-verification-key-file node-cold.vkey \
--out-file delegation.cert
Construir transacción incluyendo
--certificate-file pool.cert \
--certificate-file delegation.cert \
Firmar con las siguientes llaves privadas
--signing-key-file cli-payment.skey \
--signing-key-file cli-stake-rewards.skey \
--signing-key-file node-cold.skey \
Enviarlo a la blockchain
cardano-cli shelley transaction submit
Paso 5: Delegar las billeteras hardware en el pool usando Daedalus o Yoroi.
Tanto el propietario como el copropietario deben delegar en el pool usando la delegación interactiva disponible tanto en Daedalus como Yoroi (~2.18 ADA)
Paso 6: Exportar las llaves públicas de las billeteras hardware.
Propietario
cardano-hw-cli shelley address key-gen
--path 1852H/1815H/0H/2/0
--verification-key-file hw-stake1.vkey
--hw-signing-file stake1.hwsfile
cardano-hw-cli shelley address key-gen
--path 1852H/1815H/0H/0/0
--verification-key-file hw-payment1.vkey
--hw-signing-file payment1.hwsfile
Copropietario:
cardano-hw-cli shelley address key-gen
--path 1852H/1815H/0H/2/0
--verification-key-file hw-stake2.vkey
--hw-signing-file stake2.hwsfile
cardano-hw-cli shelley address key-gen
--path 1852H/1815H/0H/0/0
--verification-key-file hw-payment2.vkey
--hw-signing-file payment2.hwsfile
Paso 7: Registrar certificado del pool con multi propietarios
Obtén la llave hw-stake2.vkey del copropietario
Crea otro certificado para el pool usando las llaves públicas de los propietarios (hw-stake1.vkey & hw-stake2.vkey), y se debe especificar cli-stake-rewards para las recompensas. Las recompensas deben ser distribuidas manualmente luego de cada epoch.
cardano-cli stake-pool registration-certificate \
--cold-verification-key-file node-cold.vkey \
--vrf-verification-key-file vrf.vkey \
--pool-pledge <pledge acordado> \
--pool-cost <comisión fija> \
--pool-margin <comisión variable, ejemplo- 0.011 para 1.1%> \
--pool-reward-account-verification-key-file cli-stake-rewards.vkey \
--pool-owner-stake-verification-key-file hw-stake1.vkey \
--pool-owner-stake-verification-key-file hw-stake2.vkey \
--mainnet \
--single-host-pool-relay <IP pública del relay> --pool-relay-port <puerto> \
--metadata-url <dominio>/nombre_del_pool.json \
--metadata-hash <hash de metadatos> \
--out-file pool.cert
Crea la transacción tx-pool.raw que incluye el certificado de este pool.
--certificate-file pool.cert
Se requieren 4 testigos
- node-cold.vkey
- hw-stake1.vkey
- hw-stake2.vkey
- cli-payment (que se usa para pagar la comisión de la trx y los 500 ADA de depósito)
Desde un servidor sin conexión:
Nodo frío
cardano-cli transaction witness \
--tx-body-file tx-pool.raw \
--signing-key-file node-cold.skey \
--mainnet \
--out-file node-cold.witness
Pago
cardano-cli transaction witness \
--tx-body-file tx-pool.raw \
--signing-key-file cli-payment.skey \
--mainnet \
--out-file cli-payment.witness
A continuación necesitamos copiar el archivo tx-pool.raw hacia el escritorio
Primero creamos un testigo usando la llave hw-stake1.vkey en el escritorio (donde está conectado el ledger)
Llave hw-stake1
cardano-hw-cli shelley transaction witness
--tx-body-file tx-pool.raw
--hw-signing-file stake1.hwsfile
--mainnet
--out-file hw-stake1.witness
Luego enviamos el archivo tx-pool.raw hacia el copropietario, el cual creará un testigo:
Llave hw-stake2 del copropietario
cardano-hw-cli shelley transaction witness
--tx-body-file tx-pool.raw
--hw-signing-file stake2.hwsfile
--mainnet
--out-file hw-stake2.witness
A continuación el copropietario envía de regreso el archivo hw-stake2.witness, el cual será usado para armar los testigos y enviar la transacción multi-firma, así:
cardano-cli transaction assemble \
--tx-body-file tx-pool.raw \
--witness-file node-cold.witness \
--witness-file cli-payment.witness \
--witness-file hw-stake1.witness \
--witness-file hw-stake2.witness \
--out-file tx-pool.multisign
Finalmente envías el archivo tx-pool.multisign desde un nodo caliente
cardano-cli shelley transaction submit
… y hecho !!!