Despliegue de Contratos Inteligentes en Redes de Prueba con Hard Hat

Clase 11 de 24Curso de Dapps: Introducción al Desarrollo de Aplicaciones Descentralizadas

Resumen

¿Qué es y cómo se despliega un contrato inteligente?

Los contratos inteligentes son fundamentales para el mundo de tecnología Blockchain, pero abordarlos permite acciones más allá de simples transferencias de valor. En esta guía, nos enfocaremos en cómo desplegar un contrato inteligente utilizando herramientas como Hardhat y servicios de infraestructura como Infura, proporcionando claridad en cada paso del proceso.

¿Cómo enviar un contrato inteligente a la blockchain?

Para desplegar un contrato inteligente, debemos configurarlo como parte de una transacción en la blockchain. Esta transacción no necesariamente implica una transferencia de criptomonedas, sino más bien, la inclusión de datos o activación de contratos inteligentes.

  • Configuración de la transacción: Debes incluir los datos del contrato compilado y pagar un fee, el cual se mide en términos de gas—costos variables dependiendo de la red utilizada.
  • Redes de prueba: Para estos pasos iniciales, es crucial fondear una cuenta en una red de prueba. Se recomienda usar la red Rinkeby debido a su funcionalidad confiable.

¿Por qué usar servicios como Infura?

Tradicionalmente, mantener un nodo propio para enviar transacciones es una tarea ardua y costosa. Sin embargo, al igual que los servidores eran mantenidos por empresas antes del auge de los proveedores en la nube como Google Cloud y AWS, lo mismo ocurre en el ámbito blockchain. Servicios como Infura ofrecen una solución práctica:

  • Infraestructura como Servicio (IaaS): Proporcionan nodos sin la necesidad de mantenimiento interno, permitiendo a los desarrolladores concentrarse en el desarrollo.
  • Ventajas de Infura: Permite desplegar contratos inteligentes de manera sencilla y sin costos adicionales por mantenimiento, ofreciendo una versión gratuita para iniciar desarrollos.

¿Cómo crear y configurar un proyecto en Infura?

Accede a Infura, y sigue los pasos para configurar tu cuenta y enlazarla a tu proyecto en Hardhat.

  1. Crear tu cuenta: Regístrate en Infura y accede al dashboard.
  2. Crear un proyecto: Selecciona Ethereum y crea un proyecto. Usa configuraciones básicas y seguridad solo si el endpoint será público.
  3. Configurar llaves del proyecto: Infura te proporcionará un ID de proyecto y una llave secreta para el acceso al endpoint, aunque generalmente solo necesitas el ID.
  4. Seleccionar red: Decide la red a usar (Rinkeby es una buena opción para pruebas).

Integrando Infura en Hardhat

Para aplicar estos cambios en tu entorno de desarrollo, adapta tu proyecto en Hardhat con los siguientes pasos:

// Añade una sección en el objeto de configuración para redes
module.exports = {
  networks: {
    rinkeby: {
      url: 'ENPOINT_URL_DE_INFURA', // Copia la URL de Infura aquí
      accounts: ['TU_CLAVE_PRIVADA'] // Añade tu clave privada
    }
  }
};

Añadir la clave privada

  • Usar MetaMask: Exporta la clave privada desde MetaMask. Asegúrate de solo exportar la que necesitas y evita exponerla públicamente.
  • Prevenir exposición: No cometas errores enviando esta información a repositorios públicos como GitHub. Más adelante aprenderás cómo proteger esta información mejor.

Ejecutar y verificar el despliegue

Una vez configurado, puedes desplegar el contrato usando Hardhat:

npx hardhat run scripts/deploy.js --network rinkeby
  • Verificación en Etherscan: El despliegue exitoso te proporcionará una dirección. Lleva esta dirección a Etherscan para verificar y explorar los detalles del contrato.

Desplegar un contrato inteligente con Infura y Hardhat no solo te permite comprender la mecánica detrás de la blockchain, sino que es una puerta de entrada para apps descentralizadas. Con esta práctica, solidificas tus conocimientos en la infraestructura esencial de Web3, allanando el camino para desarrollos más sofisticados y seguros en el futuro. ¡Sigue aprendiendo y explorando este fascinante mundo!