¿Cómo escribir e implementar su primer contrato inteligente?

Publicado: 2020-02-13

Los contratos inteligentes son una tendencia líder en la tecnología Blockchain en la actualidad. Si está pensando en desarrollar una carrera en el campo, ¡este artículo lo ayudará con todo lo que necesita saber para escribir su primer contrato inteligente !

Aprenda cursos de software en línea de las mejores universidades del mundo. Obtenga Programas PG Ejecutivos, Programas de Certificado Avanzado o Programas de Maestría para acelerar su carrera.

Tabla de contenido

¿Cómo escribir su primer contrato inteligente?

La era digital actual ha permitido que dos partes celebren acuerdos sin la participación de terceros. Estos contratos digitales son procesados ​​por blockchain y almacenados en una base de datos pública. Por lo tanto, las transacciones son rastreables e irreversibles.

Si desea escribir su primer contrato inteligente , los recursos compilados a continuación lo pondrán en el camino correcto.

Leer: 10 tendencias y predicciones de blockchain para 2020

Definición de contratos inteligentes

El término 'contrato inteligente' fue propuesto por primera vez por el informático estadounidense Nick Szabo en 1996. Es un protocolo informático o digital que facilita, verifica y hace cumplir la ejecución de un contrato. Como cálculo de propósito general, un contrato inteligente reside en una cadena de bloques o en un libro mayor distribuido.

En otras palabras, el contrato está integrado en el código en forma de programa informático. Y los actores designados reciben permiso para ejecutar la función del programa. Las reglas predefinidas deben cumplirse para la ejecución exitosa del contrato inteligente.

Tome una orden de compra (PO), por ejemplo. Es un contrato simple entre un comprador y un vendedor. Ciertas condiciones deben cumplirse para llevar a cabo la orden de compra. Estas especificaciones incluyen el pago exitoso por parte del comprador, la entrega de los bienes por parte del proveedor según los términos acordados en el momento de la compra, las condiciones de devolución, etc.

Entonces, el comprador puede realizar un pedido y el proveedor puede cumplir con el pedido en formato digital. En una red informática, todas las acciones se denominan transacciones. Y todas las transacciones son verificadas y aplicadas por la red. Una vez confirmadas, las transacciones no se pueden revertir.

Leer: Requisitos previos para aprender Blockchain. No es lo que crees que es

Requisitos para configurar un contrato inteligente

Hay varios lenguajes de programación disponibles para crear contratos inteligentes. La elección del idioma depende principalmente de la plataforma blockchain. Por ejemplo, Solidity, Vyper, eWASM y el código de bytes de Ethereum son algunos de los lenguajes de contratos inteligentes más populares para la plataforma de cadena de bloques de Ethereum.

Entorno de desarrollo de contratos inteligentes

Antes de escribir su primer contrato inteligente , configure el patio de recreo para su desarrollo. Profundizar en el mundo de la cadena de bloques sería complicado sin el conocimiento de los entornos de desarrollo. Puedes elegir entre las siguientes alternativas.

  • Remix IDE: es un entorno de desarrollo integrado para crear y probar contratos inteligentes. Esta opción completamente en línea es muy recomendable para principiantes, ya que no requiere instalación. Además, plantea menos desafíos para la creación de prototipos y la validación rápida de contratos inteligentes.
  • Configuración local: las máquinas locales proporcionan otro recurso más para el desarrollo de contratos inteligentes. Las herramientas proporcionan una mayor flexibilidad para las aplicaciones de nivel empresarial. Y aunque lleva tiempo configurar este entorno, la selección de herramientas para aplicaciones distribuidas o DApps es un proceso razonablemente sencillo.

Estructura de un contrato inteligente

Exploremos un contrato de orden de compra desarrollado utilizando el lenguaje de programación Solidity.

Un contrato inteligente de Solidity sigue una estructura estándar, que comprende 'datos' y 'función'. Si bien los datos mantienen el estado actual del contrato inteligente, la función aplica la lógica para hacer la transición a este estado.

El contrato comienza con la declaración denominada ' directiva pragma '. La palabra clave "pragma" habilita las funciones o comprobaciones del compilador. Considere la siguiente declaración:

solidez de pragma >=0.4.0 <=0.6.0

La declaración pretende garantizar que el contrato inteligente no se compilará con una versión del compilador anterior a la 0.40 y posterior a la 0.60.

Luego viene la ' declaración de contrato '. La siguiente declaración utiliza la palabra clave "contrato" e identifica un contrato vacío con el nombre "Orden de compra".

contrato orden de compra{}

Almacenamiento de datos

Cada contrato o programa de computadora tiene datos almacenados en él. Las variables proporcionan una forma de almacenar, etiquetar, recuperar y manipular los datos. Existen dos tipos de variables en Solidity: valor y referencia. Las variables de tipo de valor siempre se copian cuando se usan como argumentos de función, como booleanos, enteros, etc.

Mientras que las variables de tipo de referencia almacenan la ubicación de los datos. Cualquier cambio en una variable de referencia afecta a otra variable. Por lo tanto, deben manejarse con cuidado. Los ejemplos incluyen matrices y estructuras.

Agregar datos

En una orden de compra, normalmente tendría una cantidad de producto asociada. Entonces, ahora, agreguemos una variable de datos al contrato inteligente. Agregaremos una variable product_quantity con la suposición de que solo tendrá valores positivos.

Primero, introducimos un entero sin signo representado por uint256. Aquí, sin signo (u) significa el tipo de variable que solo puede representar números enteros positivos, y 256 significa el almacenamiento de 256 bits.

contrato Orden de compra{uint256 product_quantity;}

Constructor

El constructor inicializa el contrato inteligente con algunos valores cuando se implementa el contrato. Supongamos que la cantidad de producto se establece en 100.

constructor() público{producto_cantidad = 100;}

Cabe señalar que la palabra clave o modificador de acceso “público” especifica que la función no está restringida. Por lo tanto, puede ser accedido por cualquier persona.

Adición de funciones

Agregar funciones hace que su programa sea interactivo. Estas son capacidades controladas precedidas por la palabra clave "función". La declaración incluye el nombre de la función, el modificador de acceso, el mutador de estado y el valor de retorno.

Para leer el valor almacenado, agregamos la "función de obtención". Con "get_quantity", esta función obtiene la capacidad de recuperar o leer los datos almacenados. Mira la afirmación que se da a continuación.

función get_quantity() vista pública devuelve (uint256){return product_quantity;}

Desglosándolo más, vemos que:

  • Nombre de la función: get_quantity (El "()" significa que no se pasan parámetros)
  • Modificador de acceso: público (el acceso no está restringido)
  • State Mutator: vista (indica que la función no cambia el estado del contrato, sino que solo lo lee)
  • Devoluciones: define lo que devuelve la función, es decir, una variable de tipo uint256

Funciones del colocador

La función de establecimiento entra en escena cuando desea escribir o actualizar los datos. Esta función toma un parámetro de entrada del usuario, en base al cual actualiza el valor de la variable “producto_cantidad”. La función set (update_quantity) se conecta así:

update_quantity(uint256 value) public {product_quantity = product_quantity + value;}

Ahora, conecte todas las declaraciones anteriores para escribir su primer contrato inteligente .

Desplegando el contrato inteligente

Una vez que haya terminado con los pasos mencionados anteriormente, es hora de probar su contrato inteligente. Puede hacer lo mismo con Remix IDE, que proporciona la capacidad del compilador Solidity para crear, probar y validar su contrato inteligente en línea.

Estas son las instrucciones paso a paso para diseñar e implementar un contrato inteligente con Remix Online IDE:

  1. Haga clic en el ícono más para crear un nuevo archivo (vacío)
  2. Haga clic para abrir el archivo vacío
  3. Pegue su contrato en este archivo
  4. Vaya al menú de la izquierda y haga clic en el segundo icono, justo debajo del icono del archivo. Con esto aparecerá la opción del compilador solidity
  5. Vaya a la etiqueta del compilador para seleccionar la versión del compilador
  6. Haga clic en el archivo para compilar el contrato inteligente
  7. Después de la compilación, haga clic en el botón de detalles del compilador para comprender el código de bytes y la interfaz binaria de la aplicación. Bytecode contiene el código operativo de Ethereum y la lógica del contrato inteligente después de la conversión y compilación
  8. En el menú de la izquierda, haga clic en el ícono debajo del ícono de compilación para implementar su contrato inteligente

Interactuando con el contrato desplegado

Los métodos públicos mencionados en el contrato proporcionan formas de interactuar con el contrato implementado. En el contexto de la orden de compra, "actualizar_cantidad" y "obtener_cantidad" son los dos métodos de interacción disponibles. También puede ingresar sus parámetros usando el cuadro de entrada. Recuerde que cualquier operación que cambie las variables del contrato dará como resultado una transacción.

Con esto, hemos cubierto los conceptos básicos de cómo escribir su primer contrato inteligente y cómo probarlo e implementarlo utilizando el lenguaje de programación Solidity en un entorno de desarrollo en línea. También entendimos el proceso de interactuar con un contrato inteligente e iniciar transacciones. Entonces, aplique su aprendizaje y cree un contrato inteligente hoy. Después de todo, ¡la práctica hace al maestro!

Terminando

Hay un aumento en las carreras en la tecnología blockchain y blockchain ha cambiado enormemente la cara de la industria tecnológica para siempre. Si está interesado en convertirse en desarrollador de cadenas de bloques y crear contratos inteligentes y códigos de cadena, consulte el programa de certificación avanzada de IIIT-B y upGrad en tecnología de cadenas de bloques.

¿Cuáles son algunas posibles aplicaciones de los contratos inteligentes?

Los contratos inteligentes son programas informáticos que ejecutan las condiciones de un contrato de forma automática. Utilizan tecnología blockchain, que es una base de datos distribuida que permite transacciones seguras, transparentes y a prueba de manipulaciones. El alquiler de automóviles, las reservas de hotel y las entradas para eventos son solo algunos ejemplos de cómo se pueden emplear los contratos inteligentes.

¿Por qué los contratos inteligentes se consideran más seguros que los contratos regulares?

Debido a que los contratos inteligentes se implementan en una red de cadena de bloques, se consideran más seguros que los contratos tradicionales. Una cadena de bloques es una base de datos distribuida protegida criptográficamente. Esto significa que la información de la cadena de bloques no se puede manipular ni piratear. Como resultado, se garantiza que la ejecución de un contrato inteligente sea precisa y confiable. También son públicos y auditables, lo que significa que todos en la cadena de bloques pueden ver las condiciones del contrato y comprobar que se está llevando a cabo. Por otro lado, los contratos inteligentes pueden ayudar a reducir el riesgo de fraude y conflictos. La conclusión es que tienen muchas características y son fáciles de usar.

¿Por qué los contratos inteligentes son cada vez más populares?

Una de las ventajas más esenciales de los contratos inteligentes es que pueden ayudar a las organizaciones a automatizar los procedimientos y reducir los costos. Por ejemplo, una empresa puede utilizar un acuerdo inteligente para pagar a sus proveedores inmediatamente después de realizar una entrega. Esto reduciría la necesidad de que la empresa procese los pagos manualmente, ahorrando tiempo y dinero. También se puede utilizar para generar confianza entre las empresas y sus clientes. Por ejemplo, un contrato inteligente podría usarse para construir un sistema de pago en línea seguro. Esto permitiría a los clientes realizar pagos sin temor a que su información personal se vea comprometida. Por último, pero no menos importante, se puede utilizar para construir identidades digitales tanto para personas como para empresas. Las empresas podrían autenticar las identidades de sus clientes y protegerlos del fraude como resultado de esto.