
Aquí hay algunas cosas a considerar al elegir entre Hardhat y Foundry.

Elegir las herramientas adecuadas para el desarrollo de tu dapp no solo afecta la productividad, sino también la eficacia de las pruebas, el despliegue y el mantenimiento de los smart contracts. En este blog, comparamos dos opciones populares entre los desarrolladores de dapps en Ethereum: Foundry y Hardhat, centrándonos en sus requisitos de instalación, flujos de trabajo de pruebas y despliegue, así como en aspectos técnicos específicos y sus limitaciones.
Hardhat es un entorno de desarrollo consolidado diseñado para ayudar a los desarrolladores a gestionar y automatizar las tareas relacionadas con el desarrollo de smart contracts. Es conocido por su naturaleza flexible y adaptable. Hardhat incluye Hardhat Network, una red Ethereum local diseñada para el desarrollo que también permite realizar pruebas, despliegues y depuración de forma sencilla.
Los desarrolladores pueden interactuar directamente con los smart contracts desplegados en Hardhat Network a través de una consola interactiva, lo que proporciona un entorno local completo adaptado a las tareas de desarrollo. Hardhat también cuenta con un sólido ecosistema de plugins que permite a los desarrolladores ampliar sus capacidades fácilmente. Sin embargo, algunos usuarios pueden encontrar que la configuración inicial de Hardhat es compleja.
Por otro lado, Foundry es un toolkit de desarrollo relativamente nuevo que hace énfasis en la velocidad y la fiabilidad. Está construido sobre Forge, un potente framework de pruebas que permite a los desarrolladores escribir, compilar y testear smart contracts de manera eficiente. Una de las características clave de Foundry son sus capacidades de prueba rápida, ya que el framework de pruebas Forge acelera considerablemente los tiempos de ejecución, lo que permite a los desarrolladores iterar con mayor rapidez.
Además, Foundry incluye herramientas de depuración nativas que ayudan a los desarrolladores a diagnosticar y resolver problemas directamente dentro del entorno. Foundry también se integra de forma fluida con otras herramientas del ecosistema Ethereum, facilitando un proceso de desarrollo más ágil. Sin embargo, al ser relativamente nuevo, Foundry puede carecer del amplio soporte comunitario disponible para herramientas más consolidadas.
Para esta sección, utilizaremos un smart contract básico de suma aleatoria. Este smart contract será el mismo para Hardhat y Foundry; sin embargo, la configuración del proyecto diferirá ligeramente entre los dos frameworks.
Para comenzar a usar Hardhat, necesitas tener Node.js instalado en tu máquina. Una vez configurado, puedes crear un nuevo proyecto de Hardhat siguiendo estos pasos:
Inicializa un nuevo proyecto de Node.js:
Instala Hardhat:
npm install --save-dev hardhatCrea un proyecto de Hardhat:
npx hardhatSigue las instrucciones para crear un proyecto básico. Selecciona "Create an empty hardhat.config.js" para una configuración mínima. Elige crear un proyecto de ejemplo. Esto configura un entorno de Hardhat con todas las configuraciones necesarias.
Contrato: Coloca tu contrato RandomSum en la carpeta contracts.
Foundry utiliza Rust, por lo que necesitarás tener Rust instalado en tu sistema. Con Rust listo, puedes instalar Foundry ejecutando:
Instala Foundry:
Inicializa un nuevo proyecto de Foundry:
Contrato: Coloca tu contrato RandomSum en el directorio src.
Blockchain local: Usa Hardhat Network, que se ejecuta automáticamente cuando realizas tareas como pruebas o despliegue de contratos.
Script de despliegue: Crea un script en scripts/deploy.js:
Ejecutar el despliegue: Ejecuta el despliegue usando:
npx hardhat run scripts/deploy.js --network localhostBlockchain local: Foundry usa anvil, un nodo Ethereum local. Ejecútalo en una terminal separada para iniciar tu nodo local.
anvilScript de despliegue: Usa el comando forge create directamente:
forge create RandomSum --private-key YOUR_PRIVATE_KEY --rpc-url Configuración de red: Configura la red deseada en hardhat.config.js, añadiendo una sección para los ajustes de red (por ejemplo, Sepolia).
Despliegue: Ejecuta el mismo script de despliegue con la opción de red cambiada a Sepolia.
Configuración de red: No se necesita ningún archivo de configuración adicional; especifica la red en el comando.
Despliegue: usa:
forge create RandomSum --private-key YOUR_PRIVATE_KEY --rpc-url Escribe las pruebas: Crea un archivo de prueba en test/randomSum.js usando JavaScript:
Ejecuta las pruebas: Ejecútalas usando:
npx hardhat testSi tienes problemas con las pruebas, simplemente añade la función loadFixture de @nomicfoundation/hardhat-toolbox/network-helpers.
Los principales beneficios de usar loadFixture son:
Configura un entorno limpio para cada prueba revirtiendo a un snapshot.
Es más eficiente que redesplegar contratos para cada prueba.
Permite compartir el código de configuración entre múltiples pruebas.
Escribe las pruebas: Añade un archivo de prueba en test/RandomSum.t.sol usando Solidity:
Ejecuta las pruebas: Usa:
forge testLa elección entre Hardhat y Foundry suele depender de las habilidades del equipo y de las necesidades específicas del proyecto. Si el equipo domina JavaScript y requiere una integración amplia con tecnologías web, Hardhat podría ser la mejor opción. Su sólido ecosistema de plugins y su entorno flexible lo hacen ideal para proyectos que exigen un alto grado de personalización e interacción con diversas tecnologías web.
Por otro lado, si el proyecto requiere ciclos de desarrollo rápidos con un enfoque puramente en smart contracts, Foundry ofrece una opción atractiva y eficiente que mantiene todo dentro del ecosistema de Solidity. Su velocidad y soporte nativo para Solidity pueden mejorar significativamente la productividad de los equipos dedicados al desarrollo de smart contracts.
En definitiva, ambas herramientas tienen sus fortalezas, y la elección correcta depende de los requisitos únicos de tu proyecto y de la experiencia de tu equipo.
Traducido por IA. Puede contener errores. Por favor, verifique siempre la información.