🇪🇸 Instrucciones para un Pool con Multi-Propietarios

:cuba: :es: 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.

angel

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 !!! :+1: