¿Cómo diseñar e implementar su primer contrato inteligente?

Un contrato inteligente se utiliza para describir el código de un programa informático capaz de facilitar, ejecutar y hacer cumplir un acuerdo utilizando la tecnología Blockchain. Los contratos inteligentes le ayudan a intercambiar dinero, propiedades, acciones o cualquier cosa de valor de forma transparente y sin conflictos, evitando los servicios de terceros o intermediarios. El término "contratos inteligentes" fue propuesto por primera vez por Nick Szabo, el informático estadounidense que inventó la moneda virtual llamada "BitGold" en 1998. Definió los contratos inteligentes como protocolos de transacción computarizados que ejecutan los términos del contrato. Los contratos inteligentes hacen que las transacciones sean transparentes, rastreables e irreversibles.
¿Qué es Solidity?
Es un lenguaje de programación de alto nivel orientado a objetos que se utiliza para implementar contratos inteligentes. Solidity ayuda a crear contratos para financiación colectiva, subastas a ciegas, votaciones y carteras multifirma. Solidity está influenciado por lenguajes como Python, JavaScript y C++. Admite herencia y tiene tipos estáticos. Siempre es importante utilizar la última versión de Solidity al implementar contratos inteligentes, ya que se introducen nuevas funciones y correcciones de errores con regularidad.
Comprendamos los pasos necesarios para crear e implementar su primer contrato inteligente. Este artículo se centrará en la redacción e implementación de un contrato inteligente mediante Remix IDE.
Estructura de un contrato inteligente
Un contrato inteligente de Solidity incluye lo siguiente:
- Datos: Esto mantiene el estado actual del contrato.
- Función: Esto aplica la lógica para realizar la transición del estado del contrato.
Los contratos inteligentes de Solidity tienen una estructura estándar. Cualquier contrato inteligente comienza con la siguiente declaración.
Directiva Pragma
La palabra clave 'pragma' se utiliza para habilitar algunas funciones o comprobaciones del compilador.
1
solidez pragmática =0,4,0 =0,6,0
Esta declaración define que el contrato inteligente (archivo fuente) no se compilará con un compilador anterior a la versión 0.4.0 y posterior a la 0.6.0. Al introducir esta declaración, no se producirá ningún comportamiento no deseado si se introduce una nueva versión del compilador.
Declaración de contrato
Esto se declara mediante la palabra clave 'contract'. Esto declarará un contrato vacío identificado con el nombre de "PurchaseOrder". Esto se representa de la siguiente manera:
1
2
contrato Orden de compra{
}
Desarrollo de contratos inteligentes
Hay dos tipos de variables con las que uno debe estar familiarizado en los contratos inteligentes.
Tipo de valor : estas variables se pasan por valor. Esto significa que siempre se copian cuando se utilizan en asignaciones o como argumentos de funciones. Las direcciones de números enteros y booleanos son algunos ejemplos destacados.
Tipo de referencia : estas variables son de tipos complejos y se pasan por referencia. Copiarlas es costoso y, por lo tanto, debe gestionarse con cuidado; además, estas variables no caben en un formato de 256 bits.
Cómo agregar datos en un contrato inteligente
El primer paso consiste en añadir algunas variables de datos al contrato inteligente. Para cada pedido, debe haber una cantidad asociada a él. Por ejemplo, en el caso de un pedido de compra, debe haber una determinada cantidad de producto asociada a él. La variable que se introduce ahora es un entero sin signo y se representa mediante uint256. Aquí, 256 significa el almacenamiento de 256 bits. Ahora entendamos estos términos.
- INT se refiere a un número entero.
- U significa sin signo, lo que significa que este tipo solo puede representar números enteros positivos y no tanto números enteros positivos como negativos.
- 256- Esto se refiere a los 256 bits de tamaño.
- El valor mínimo de uint 256 se puede asignar a 0.
- El valor máximo que se puede asignar para uint 256 es 2^256-1.
Definiendo el Constructor
Un constructor es aquel que se llama en el momento de la implementación de un contrato. El constructor utiliza algunos valores para inicializar el contrato. También es posible crear un constructor parametrizado que se puede crear pasando una variable e inicializando la función utilizando el valor pasado. El modificador de acceso “public” asociado con el constructor es el punto clave a tener en cuenta aquí. La palabra clave “public” denota que cualquiera puede acceder a la función. Por lo tanto, no se trata de una función restringida.
Agregar funciones
Ahora agregaremos funciones para que nuestro programa sea interactivo. Las funciones hacen referencia a capacidades controladas que se pueden agregar a un programa. Cualquier función siempre estará precedida por la palabra clave function. Una declaración de función se ve así: “función nombre de función acceso modificado mutador de estado valor de retorno”.
Obtener función
En cualquier programa, el requisito más común es leer el valor almacenado. Por ejemplo, consideremos el valor product_quantity. Para proporcionar esta capacidad, se agrega una función de lectura u obtención. En esta función, no manipularemos el valor almacenado, sino que simplemente lo recuperaremos. La función de obtención se puede desglosar de la siguiente manera:
- Palabra clave: nombre de función; valor: get_quantity()
- Palabra clave: modificador de acceso; Valor: público (cualquiera puede acceder a la función)
- Palabra clave: mutador de estado; Valor: Vista (La función solo lee el estado del contrato y no lo cambia)
- Palabra clave: Devuelve; Valor: Define una variable de tipo uint256.
Función de establecimiento
Es necesario leer los datos, pero también es necesario tener la capacidad de escribirlos o actualizarlos. Esta capacidad se agrega a través de una función de configuración. Esta función tomará un valor del usuario en forma de parámetro de entrada. Ahora desglosaremos nuestra función de configuración. Ahora agregaremos una función de muestra para actualizar el valor de la cantidad del producto.
Palabra clave: Nombre de la función; Valor: update_quantity
Palabra clave: Modificador de acceso; Valor: Público
Palabra clave: mutador de estado; Valor: no es necesario ya que las funciones actualizan el estado.
Palabra clave: Devuelve; Valor: Devuelve una variable de tipo uint256.
Implementación de contratos inteligentes
Ahora es el momento de implementar el contrato inteligente. Usaremos Remix Online IDE para probar el contrato inteligente. Remix es un entorno de desarrollo en línea que se utiliza para los contratos inteligentes de Ethereum. Está completamente basado en un navegador. Proporciona un entorno de desarrollo integrado donde puede escribir sus contratos inteligentes. Remix proporciona una capacidad de compilación de solidez en línea. Remix IDE ayuda a compilar un contrato inteligente sin problemas utilizando una versión específica del compilador. Ayuda en la prueba rápida de un contrato inteligente. Remix está equipado con un conjunto de herramientas completo para comenzar el desarrollo del contrato inteligente y la prueba unitaria del contrato inteligente, sin la necesidad de instalación en su máquina local. Al usar Remix IDE, puede comenzar con el desarrollo de contratos inteligentes solo con una conexión a Internet y un navegador.
Comprendamos los pasos para implementar un contrato inteligente con Remix IDE.
- Cree un nuevo archivo haciendo clic en el ícono más.
- Esto creará un archivo vacío. Haga clic para abrir este archivo.
- Copie y pegue el contrato en este archivo.
- Haga clic en el segundo ícono que está justo debajo del ícono del archivo en el menú de la izquierda para que aparezca la opción del compilador de Solidity.
- Vaya a la etiqueta del compilador y seleccione la versión del compilador. Después de seleccionar la versión del compilador, haga clic en el archivo. Esto compilará el contrato inteligente.
- Después de la compilación, haga clic en el botón de detalles del compilador. Esto le proporcionará dos datos clave, como el código de bytes y la interfaz binaria de la aplicación. El código de bytes es aquel en el que el código operativo de la máquina virtual Ethereum (EVM) y la lógica del contrato inteligente se convierten en código de bytes después de la compilación. La interfaz binaria de la aplicación es un archivo JSON que proporciona los detalles de todos los métodos expuestos en el contrato inteligente.
- Para probar el contrato inteligente, es necesario implementarlo. Para implementar el contrato inteligente, haga clic en el ícono del menú de la izquierda debajo del ícono de compilación.
Interactuando con el contrato implementado
- El contrato implementado tiene métodos de interacción mediante los cuales puede interactuar con el contrato inteligente.
- Éstos son los métodos públicos mencionados en el contrato.
- Hay un cuadro de entrada que puedes usar para ingresar tus parámetros.
Cualquier operación que provoque la operación de escritura en el estado de un contrato da como resultado una transacción.
Conclusión
Con estos pasos, ya puedes crear tu primer contrato inteligente. En este artículo, hemos comprendido lo que se necesita para probar el contrato inteligente desde su implementación hasta el inicio de una transacción. Espero que hayas comprendido y asimilado los nuevos conceptos que se abordaron en este artículo. Si eres de los que quiere desarrollar su carrera en blockchain, asegúrate de consultar el consejo de blockchain y obtener actualizaciones exclusivas.
Deja una respuesta