Update Pool - solidsnakedev/cardano_commands GitHub Wiki

Requirements

NODE_HOME=/node
POOL_KEYS=${NODE_HOME}/pool-keys
DATA=${POOL_KEYS}/data
NETWORK=--mainnet

Download last "pool metadata"

URL_METADATA=https://solidsnakedev.github.io/poolMetadata.json
wget ${URL_METADATA} -O ${DATA}/pool_Metadata.json

Calculate the hash of your metadata file

cardano-cli stake-pool metadata-hash --pool-metadata-file ${DATA}/pool_Metadata.json > ${DATA}/pool_MetadataHash.txt

Air-gapped machine

Update the below registration-certificate

PLEDGE=100000000000
COST=340000000
MARGIN=0.019

IP Based

RELAY=194.163.164.5
cardano-cli stake-pool registration-certificate \
--cold-verification-key-file ${POOL_KEYS}/cold.vkey \
--vrf-verification-key-file ${POOL_KEYS}/vrf.vkey \
--pool-pledge ${PLEDGE} \
--pool-cost ${COST} \
--pool-margin ${MARGIN} \
--pool-reward-account-verification-key-file ${POOL_KEYS}/stake.vkey \
--pool-owner-stake-verification-key-file ${POOL_KEYS}/stake.vkey \
--mainnet \
--pool-relay-ipv4 ${RELAY} \
--pool-relay-port 6000 \
--metadata-url ${URL_METADATA} \
--metadata-hash $(cat ${DATA}/pool_MetadataHash.txt) \
--out-file ${DATA}/pool-registration.cert

DNS based

DNS_RELAY=relay-1.elemt.xyz
cardano-cli stake-pool registration-certificate \
--cold-verification-key-file ${POOL_KEYS}/cold.vkey \
--vrf-verification-key-file ${POOL_KEYS}/vrf.vkey \
--pool-pledge ${PLEDGE} \
--pool-cost ${COST} \
--pool-margin ${MARGIN} \
--pool-reward-account-verification-key-file ${POOL_KEYS}/stake.vkey \
--pool-owner-stake-verification-key-file ${POOL_KEYS}/stake.vkey \
--mainnet \
--single-host-pool-relay ${DNS_RELAY} \
--pool-relay-port 6000 \
--metadata-url ${URL_METADATA} \
--metadata-hash $(cat ${DATA}/pool_MetadataHash.txt) \
--out-file ${DATA}/pool-registration.cert

To honor your pledge, create a delegation certificate:

cardano-cli stake-address delegation-certificate \
    --stake-verification-key-file ${POOL_KEYS}/stake.vkey \
    --cold-verification-key-file ${POOL_KEYS}/cold.vkey \
    --out-file ${DATA}/delegation.cert

Build the transaction.

cardano-cli transaction build \
    ${NETWORK} \
    --witness-override 3 \
    --tx-in $(cardano-cli query utxo --address $(cat ${POOL_KEYS}/payment.addr) ${NETWORK} --out-file  /dev/stdout | jq -r 'keys[0]') \
    --change-address $(cat ${POOL_KEYS}/payment.addr) \
    --certificate-file ${DATA}/pool-registration.cert \
    --out-file ${DATA}/tx.raw

Air-gapped machine

Sign the transaction.

cardano-cli transaction sign \
    --tx-body-file ${DATA}/tx.raw \
    --signing-key-file ${POOL_KEYS}/payment.skey \
    --signing-key-file ${POOL_KEYS}/stake.skey \
    --signing-key-file ${POOL_KEYS}/cold.skey \
    ${NETWORK} \
    --out-file ${DATA}/tx.signed

Block producer

Send the transaction.

cardano-cli transaction submit \
    --tx-file ${DATA}/tx.signed \
    ${NETWORK}