Logo
Cardano Ecosystem

Cardano en Venezuela

06/05/2021

·

2.1K views


TUTORIAL: creando tokens nativos en Cardano testnet (Linux)

Aprender a crear tus tokens usando cardano-node y Daedalus en la testnet.Basado/inspirado en: Minting Native Tokens on Cardano TestnetEl libro mayor (ledger) de Cardano, posee la característica ‘Multi-activos’ (multi-asset) lo cual permite registrar transacciones en varios activos de forma nativa sin...

TUTORIAL: creando tokens nativos en Cardano testnet (Linux)

Cardano en Venezuela

Aprender a crear tus tokens usando cardano-node y Daedalus en la testnet.

Basado/inspirado en: Minting Native Tokens on Cardano Testnet

El libro mayor (ledger) de Cardano, posee la característica ‘Multi-activos’ (multi-asset) lo cual permite registrar transacciones en varios activos de forma nativa sin necesidad de smart contracts. Los activos que se pueden crear con esta característica en Cardano se llaman ‘tokens nativos’.

Con la actualización Mary lanzada en marzo de 2021, se habilitó esta funcionalidad, permitiendo la creación de 31787 tokens al momento de escribir este artículo.

Al final de este tutorial habrás aprendido a crear una transacción que acuñará un token en la testnet de Cardano con metadata.

Para efectos de demostrar la utilidad y el potencial de los tokens nativos, en esta oportunidad acuñaremos un token que simulará la creación de un certificado de Denominación de Origen, según la propuesta hecha en nuestro artículo: Usando la blockchain Cardano para emitir certificados de Denominación de Origen en Venezuela.

Para ejecutar con éxito la acuñación del token deberás contar con:

  • Daedalus testnet sincronizada al 100%.
  • cardano-node 1.27.0 (lo instalé siguiendo esta guía).

Para poder hacer uso de la sincronización de Daedalus con la blockchain, guardaremos esta variable con la ruta del archivo cardano-node.socket (puede variar entre distribuciones de Linux):

export CARDANO_NODE_SOCKET_PATH=~/.local/share/Daedalus/testnet/cardano-node.socket

Vamos a crear una variable para almacenar el ID de la testnet, lo necesitaremos más adelante:

export TESTNET_ID=1097911063

Almacenemos también el nombre del token y la cantidad:

export TOKEN_NAME=DOC
export TOKEN_AMOUNT=1

Asegúrate de estar en un directorio en el que tengas permiso de escritura, lo mejor es crear uno nuevo para esta operación pues vamos a crear varios archivos y directorios relacionados con la transacción.

Con los siguiente comandos, crearemos un monedero desde el cual acuñaremos el token:

cardano-cli stake-address key-gen --verification-key-file stake.vkey --signing-key-file stake.skeycardano-cli address key-gen --verification-key-file payment.vkey --signing-key-file payment.skeycardano-cli address build --payment-verification-key-file payment.vkey --stake-verification-key-file stake.vkey --out-file payment.addr --testnet-magic $TESTNET_ID

Ahora, podrás encontrar la dirección de tu nuevo monedero en el archivo payment.addr, utiliza Daedalus para enviar algunas ADA de prueba a ese monedero.

¿Donde puedes adquirir ADA en testnet? En el faucet oficial: https://developers.cardano.org/en/testnets/cardano/tools/faucet/

Consultemos nuestro saldo a ver si cayó la transferencia:

cardano-cli query utxo --address $(< payment.addr) --testnet-magic $TESTNET_ID --mary-era

Deberás ver algo como esto:

Los montos son expresados en lovelace (0.000001 ADA)

Exportaremos los parámetros del protocolo, los necesitaremos para calcular la comisión de la transacción. Los guardaremos en un archivo llamado protocol.json:

cardano-cli query protocol-parameters --testnet-magic $TESTNET_ID --out-file protocol.json

Para crear nuestra política, vamos a crear un directorio:

mkdir policy

Ahora, crearemos las llaves que nos ayudarán a generar el policyID, parámetro indispensable para la creación de un token:

cardano-cli address key-gen --verification-key-file policy/policy.vkey --signing-key-file policy/policy.skey

Crearemos ahora el archivo en el cual guardaremos el policy script:

touch policy/policy.script && echo "" > policy/policy.script

Ahora, el policy script más básico posible:

echo "{" >> policy/policy.script echo " \"keyHash\": \"$(cardano-cli address key-hash --payment-verification-key-file policy/policy.vkey)\"," >> policy/policy.script echo " \"type\": \"sig\"" >> policy/policy.script echo "}" >> policy/policy.script

Acá la documentación sobre los policy scripts

Ya podemos generar nuestro policyID:

cardano-cli transaction policyid --script-file ./policy/policy.script >> policy/policyId

A continuación ya podemos crear nuestra transacción.

La creación de un token consiste en la ejecución de una transacción de acuñación compuesta de:

  • Entrada (UXTO)
  • Salida (dirección y monto)
  • Información de acuñación (política y nombre del token)
  • Metadata

Comenzaremos con la metadata, que consiste en un archivo en formato JSON que llamaremos metadata.json. Por exigencia del protocolo, la raíz debe ser un número entero, el resto es la información de la D.O.C. o en tu caso lo que desees incluir:

Para preparar la entrada, consultaremos de nuevo el saldo de nuestro monedero y esta vez nos fijaremos en los datos que lo componen: TxHash (id de la transacción), TxIx (índice), Amount (monto en lovelace).

Guardemos esos datos en variables (en tu caso los valores serán distintos):

export TX_HASH=9bf9d1f58a0b49276c69a2075f19d93660c81af57851d1fcb1db3927
export TX_IX=0
export AVAILABLE_LOVELACE=2000000

Ahora construyamos la transacción en bruto, vamos a guardarla en un archivo llamado matx.raw:

cardano-cli transaction build-raw \
--mary-era \
--fee 0 \
--tx-in $TX_HASH#$TX_IX \
--tx-out $(< payment.addr)+$AVAILABLE_LOVELACE+"$TOKEN_AMOUNT $(< policy/policyId).$TOKEN_NAME" \
--mint="$TOKEN_AMOUNT $(< policy/policyId).$TOKEN_NAME" \
--metadata-json-file metadata.json \
--out-file matx.raw

Luego, procedemos a calcular la tarifa. Este comando nos devolverá el monto en lovelace:

cardano-cli transaction calculate-min-fee \
--tx-body-file matx.raw \
--tx-in-count 1 \
--tx-out-count 1 \
--witness-count 1 \
--testnet-magic $TESTNET_ID \
--protocol-params-file protocol.json

Guardemos el monto de la tarifa en una variable (reemplaza el valor por el que te arrojó en tu consola):

export TX_FEE=176589

Ahora que tenemos la tarifa, volvamos a construir la transacción:

cardano-cli transaction build-raw \
--mary-era \
--fee $TX_FEE \
--tx-in $TX_HASH#$TX_IX \
--tx-out $(< payment.addr)+$(($AVAILABLE_LOVELACE - $TX_FEE))+"$TOKEN_AMOUNT $(< policy/policyId).$TOKEN_NAME" \
--minting-script-file policy/policy.script \
--mint="$TOKEN_AMOUNT $(< policy/policyId).$TOKEN_NAME" \
--metadata-json-file metadata.json \
--out-file matx.raw

Firmamos:

cardano-cli transaction sign \
--signing-key-file payment.skey \
--signing-key-file policy/policy.skey \
--script-file policy/policy.script \
--testnet-magic $TESTNET_ID \
--tx-body-file matx.raw \
--out-file matx.signed

Ya podemos enviar nuestra transacción a la blockchain:

cardano-cli transaction submit --tx-file matx.signed --testnet-magic $TESTNET_ID

Una vez que la transacción haya sido propagada y validada, podremos verla al consultar de nuevo nuestro saldo. Ya tienes en tu monedero el token creado, ahora la puedes enviar a tu monedero Daedalus testnet para que puedas visualizarlo.

Además, con el TxHash puedes también visualizar la transacción en el explorador de la tesnet: https://explorer.cardano-testnet.iohkdev.io/

Puede que al enviar la transacción, te arroje algún error por algún parámetro mal colocado, en esta guía encontrarás los errores más comunes y su solución: Diagnosing transactions problems and troubleshooting.

AD

SNEKbot by DexHunter on CARDANO

Cardano's Telegram Trading Bot live on Cardano mainnet!TRADE NOW!


Read Original Article on Cardano en Venezuela

ORIGINAL SOURCE

https://cardanovenezuela.medium.com/tuto...

Disclaimer: Cardano Feed is a Decentralized News Aggregator that enables journalists, influencers, editors, publishers, websites and community members to share news about the Cardano Ecosystem. User must always do their own research and none of those articles are financial advices. The content is for informational purposes only and does not necessarily reflect our opinion.


Genius Yields DEX Launched!

More from Cardano en Venezuela

See more
Caja de Agua (@_cajadeagua_): NFT musicales en Cardano, hechos en Venezuela
Cardano en Venezuela
Caja de Agua (@_cajadeagua_): NFT musicales en Cardano, hechos en Venezuela

06/17/2021

·

1K views

Related News

See more
Genius Yields DEX Launched!

Featured News

See more



    DEFAULTENGLISH (EN)SPANISH (ES)RUSSIAN (RU)GERMAN (DE)ITALIAN (IT)POLISH (PL)HUNGARIAN (HU)JAPANESE (JA)THAI (TH)ARABIC (AR)VIETNAMESE (VI)PERSIAN (FA)GREEK (EL)INDONESIAN (ID)ROMANIAN (RO)KOREAN (KO)FRENCH (FR)CZECH (CS)PORTUGUESE (PT)TURKISH (TR)