PIXEL FACEBOOK
logo-blanco

Desarrollar e implementar contratos inteligentes de Tezos

Tezos es una de las cadenas de bloques de contratos inteligentes más antiguas, siendo Ethereum la primera.

Si bien Ethereum es una opción popular entre los desarrolladores para desarrollar e implementar contratos inteligentes, sus aplicaciones no son muy escalables debido a las altas tarifas y las transacciones lentas. Por otro lado, las aplicaciones de Tezos son muy eficientes y económicas de configurar.

En esta guía, aprenderá a desarrollar e implementar contratos inteligentes en Tezos con SmartPy CLI. Cubriremos:

Puede obtener el código del proyecto final de este repositorio de GitHub.

condiciones previas

Para seguir este artículo, debe estar familiarizado con la cadena de bloques de Tezos. Su conocimiento no necesita ser profundizado.

El conocimiento de la cadena de bloques de Ethereum no es necesario, pero ayuda mucho.

¿Qué es Tezos?

Tezos es una red de cadena de bloques y una plataforma de contrato inteligente diseñada para ser adaptable a través de su modelo de gobierno y capacidad de actualización automática.

Si bien Tezos y Ethereum son cadenas de bloques similares que admiten contratos inteligentes y desarrollo de DApp, son diferentes en varios aspectos. El siguiente gráfico de Tezos vs Ethereum muestra algunas de las diferencias entre las dos redes.

Tezos vs. Ethereum: un cuadro comparativo

Tezos
Etéreo

Los desarrolladores hacen propuestas para actualizar el protocolo de la cadena de bloques en la red Los desarrolladores usan un hardfork para actualizar el protocolo de la cadena de bloques Las partes interesadas controlan las actualizaciones del protocolo de la cadena de bloques votando para aceptar o rechazar las propuestas Los creadores de la cadena de bloques de la red gobiernan las actualizaciones del protocolo de la cadena de bloques Utiliza la verificación formal para la ejecución de contratos inteligentes Utiliza EVM para almacenar y ejecutar contratos inteligentes en la red Los participantes (nodos) tienen la opción de proporcionar recursos informáticos o delegar sus tokens para participar en la validación de transacciones Todos los participantes (nodos) deben proporcionar recursos informáticos y apostar sus monedas para participar en validación de transacciones Las tarifas de gas son bajas, lo que lo hace muy escalable Las tarifas de gas son muy altas, lo que lo hace no escalable

¿Qué es Smartpy?

SmartPy es una herramienta que le permite crear fácilmente contratos inteligentes en la cadena de bloques de Tezos.

Escribes contratos en SmartPy usando Python. Si ya conoce Python, no necesita aprender un nuevo lenguaje de programación de contratos inteligentes.

SmartPy está disponible en otras dos variantes que usan otras sintaxis: SmartTS, que usa TypeScript, y SmartML, que usa OCaml.

SmartPy compila scripts de Python para Michelson. Michelson es un lenguaje de programación de bajo nivel para contratos inteligentes en Tezos. SmartTS y SmartML también se pueden compilar con la herramienta SmartPy.

¿Qué son los contratos inteligentes?

Los contratos inteligentes son programas que puede crear, implementar y ejecutar en una red de cadena de bloques. No necesita poseer un nodo en la red antes de implementar su contrato inteligente.

Con los contratos inteligentes, puede crear aplicaciones que sean accesibles para todos los dispositivos sin tener ni mantener un servidor. Estas aplicaciones totalmente descentralizadas requieren poco o ningún mantenimiento.

Los contratos inteligentes utilizan todo el potencial de las cadenas de bloques, lo que le permite ejecutar programas en la cadena e interactuar con la cadena misma. Puede retener o transferir tokens y acceder a funciones especializadas en la cadena de bloques con un contrato inteligente.

Primeros pasos con SmartPy CLI

Para instalar SmartPy CLI, ejecute el siguiente comando:

Este comando crea un directorio smartpy-cli en casa con este árbol:

Más artículos interesantes de LogRocket:

Para confirmar la instalación, ejecute el siguiente comando:

Como un paso adicional para hacer que SmartPy.sh sea fácilmente accesible, cree un alias copiando lo siguiente en su archivo .bashrc o archivo de perfil asociado:

Ahora puedes usar:

En lugar de:

Configurando el cliente tezos

Esta guía utiliza tezos-client para interactuar con un contrato inteligente implementado. Para instalar tezos-client, ejecute uno de los siguientes comandos, dependiendo de si está utilizando un sistema operativo Mac o Linux:

Tenga en cuenta que si está utilizando Windows, debe instalar una distribución de Linux con wsl y ejecutar la instalación de Linux.

Después de instalar tezos-client, debe configurarlo. Comience ejecutando el siguiente comando:

Esta guía utiliza la red de prueba Jarkatanet para implementar e interactuar con un contrato inteligente. El comando anterior conecta tezos-client a la red de prueba de Jakartanet a través del nodo https://jakartanet.ecadinfra.com en la red.

Antes de realizar cualquier operación con tezos-client, debe iniciar sesión en una cuenta. Tezos proporciona cuentas Faucet que le permiten interactuar con la red de forma gratuita.

Debe visitar el sitio web de Jakartanet Faucet y descargar el archivo Faucet. Después de eso, abra la carpeta de descarga en su terminal y ejecute este comando:

El comando activa la cuenta Faucet en su cliente tezos y le asigna un alias faucet. Para verificar el saldo de esta cuenta, abra el archivo jakartanet.json, copie el valor pkh y luego ejecute este comando:

Reemplazar por el valor pkh que copiaste.

Tenga en cuenta que las cuentas de Tezos Faucet están disponibles públicamente para todos y tienen una cantidad limitada de tokens Tez, por lo que debe regular su uso.

Desarrollando un contrato inteligente de Tezos con SmartPy

Para comenzar a crear nuestro contrato inteligente de muestra, cree un nuevo archivo store_text.py y copie lo siguiente en él:

Así es como funciona el contrato anterior, pieza por pieza:

Primero, importamos la biblioteca smartpy:

A continuación, definimos una clase que extiende sp.Contract:

Finalmente, definimos algunas cosas en el contrato inteligente; primero, un constructor para inicializar el texto:

En segundo lugar, un punto de entrada para reemplazar el valor del texto:

Tercero, un punto de entrada para agregar una cadena al texto:

A continuación, veamos cómo probar el contrato inteligente.

Probando el contrato inteligente de Tezos

Los contratos inteligentes que se implementan en Tezos no se pueden modificar ni eliminar. Esto puede ser un problema porque podría haber errores en el contrato, y los errores podrían conducir a errores costosos y pérdida de fondos.

SmartPy le brinda la posibilidad de probar fácilmente su contrato antes de implementarlo. La prueba de contrato no requiere ningún token o cuenta de billetera para operar. Todo lo que tiene que hacer es abrir el archivo store_text.py y copiar a continuación:

Así es como funciona el extracto. Primero, registramos una función de prueba como script de prueba:

A continuación, definimos la función de prueba:

En las líneas restantes, creamos un caso de prueba:

Inicializó el contrato con «Hola»:

Agregando la instancia del contrato al escenario:

Comprobado que el valor del texto del contrato es «Hola»:

Llamó a los puntos de entrada de reemplazo y anexo:

Y finalmente, verificó que el valor del texto del contrato ahora sea «Hola, que tal»:

Después de agregar la prueba, guarde el archivo y ejecute este comando:

Si pasa la prueba, el compilador no arrojará un mensaje de error.

Compilación de contrato inteligente en Michelson

Antes de implementar su contrato inteligente, debe compilarlo en Michelson. Como se mencionó anteriormente, Michelson es un lenguaje de programación de bajo nivel utilizado para contratos inteligentes en la cadena de bloques de Tezos.

Para compilar store_text.py, ejecute lo siguiente:

Si se compiló con éxito, debería ver una carpeta de salida como la siguiente:

El directorio de salida contiene todos los archivos necesarios para implementar el contrato inteligente.

Despliegue del contrato inteligente de Tezos

Para implementar store_text.py, abra la carpeta output/storeMessage en la terminal y ejecute el siguiente comando:

Así es como funciona el comando:

  • origin-contrat le dice a tezos-client que implemente («origine») un contrato
  • –code step_000_cont_0_contract.json apunta al archivo de contrato compilado
  • –storage step_000_cont_0_storage.json apunta al archivo de almacenamiento compilado
  • –rpc https://jakartanet.ecadinfra.com apunta a un nodo RPC en la red en la que está implementando

Los contratos inteligentes de Tezos generalmente involucran dos componentes: el almacenamiento y el contrato. El almacenamiento contiene los datos que almacena el contrato, y el contrato contiene la lógica del contrato inteligente.

Tenga en cuenta que puede implementar el contrato con cualquiera de las compilaciones de contrato o almacenamiento. Solo necesitan tener la misma extensión de archivo cuando usa el comando.

De manera predeterminada, si está implementando en una red de prueba, el compilador usará una cuenta de Faucet. Si está implementando en la red principal o desea usar su cuenta de billetera, agregue el indicador –private-key seguido de la clave privada de la cuenta.

Interactuar con el contrato inteligente implementado

Antes de interactuar con el contrato inteligente implementado, debe saber cómo se ve actualmente el contrato. Para hacer esto, abra el explorador SmartPy en su navegador y siga estos pasos:

  • Navegue a «Nodos alternativos»
  • Pegue la dirección del contrato en la entrada «Contrato»
  • En «Explorar en un nodo específico», cambie de mainnet a jakartanet
  • Pegue la URL de RPC https://jakartanet.ecadinfra.com en el cuadro de texto
  • Haga clic en «Explorar en un nodo específico»

Cuando aparezcan los datos del contrato, el almacenamiento de texto debería mostrarse como «¡Hola, allí!»

Ahora que conoce el texto del contrato, puede cambiarlo a «¡Hola!» llamando al punto de entrada de reemplazo con este comando:

Si el comando fue exitoso, cuando actualice el explorador, el almacenamiento ahora debería mostrar «¡Hola!»

Tenga en cuenta que debe reemplazar por la dirección del contrato desplegado antes de ejecutar el comando.

Conclusión

Este artículo cubre el proceso de creación de contratos inteligentes en Tezos con SmartPy. La creación de contratos inteligentes le permite aprovechar al máximo la red blockchain para crear aplicaciones y organizaciones descentralizadas.

Espero que este artículo te haya ayudado a comprender el proceso de creación de contratos inteligentes en Tezos. Si desea obtener más información sobre los contratos inteligentes, consulte este artículo sobre los errores de contratos inteligentes que debe evitar.

¡Gracias por leer! Y buen día. Desarrollo e implementación de contratos inteligentes de Tezos.

Únase a organizaciones como Bitso y Coinsquare que usan LogRocket para monitorear proactivamente sus aplicaciones Web3

Los problemas del lado del cliente que afectan la capacidad de los usuarios para activar y realizar transacciones en sus aplicaciones pueden afectar significativamente sus resultados. Si desea monitorear problemas de UX, mostrar automáticamente errores de JavaScript y rastrear solicitudes de red lentas y tiempos de carga de componentes, pruebe LogRocket.
Banner de prueba gratuita de LogRocket Dashboard
https://logrocket.com/regístrate/

LogRocket es como un DVR para aplicaciones web y móviles, grabando todo lo que sucede en su sitio o aplicación web. En lugar de adivinar por qué ocurren los problemas, puede agregar e informar sobre métricas clave de rendimiento de interfaz, reproducir sesiones de usuario con el estado de la aplicación, registrar solicitudes de red e informar automáticamente todos los errores.

Modernice la forma en que depura las aplicaciones web y móviles: comience a monitorear de forma gratuita.

Fuente

Facebook
Twitter
LinkedIn
WhatsApp

Deja una respuesta

Artículos Relacionados

Síguenos
Últimos Entradas
EnglishPortugueseSpanish