Los cursos que menciona al inicio son los que ya casi se estrenan.
This is the way... the blockchain way
Bienvenida al desarrollo en blockchain
Por qué iniciar en el desarrollo de blockchain
Habilidades requeridas
Herramientas de desarrollo
Consideraciones básicas para desarrollo
Lenguajes y herramientas para el desarrollo de blockchain
Solidity
Uso de wallets: Metamask
Actualización sobre testnet en Ethereum
Ropsten y Rinkeby
Ambientes de trabajo
RemixIDE
Tu primer contrato en RemixIDE
Truffle Suite
Hardhat
Conectando la blockchain con el navegador: Web3.js
Que la blockchain te acompañe
Continúa tu aprendizaje en la Escuela de Blockchain y Criptomonedas
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Gustavo Grillasca
Hardhat es una de las herramientas más usadas para el desarrollo blockchain. Desde la compilación, testing, despliegue y el debugging de los contratos. Su red, “Hardhat Network”, es una red de prueba basada en la de Ethereum, aunque ofrece unas ventajas que te ayudarán a identificar errores en tus contratos de una manera más práctica. Esto es algo muy poderoso de la herramienta.
Utiliza npm con su paquete Hardhat, que se apoya de otros plug-ins para aumentar su funcionalidad.
Después de que termine de descargar los archivos, ábrelos en VS Code con el comando; $ code .
Con estas carpetas y archivos, ya cuentas con lo necesario para empezar a trabajar en el desarrollo de contratos. El apartado de “contracts” es en donde guardarás los archivos con extensión “.sol”, los que entiende Solidity. Dale una revisada a todo, para que empieces a familiarizarte 😃
Recuerda que esta red es algo que te permite conocer de forma similar cómo se trabaja dentro de la red Ethereum. Hardhat te provee de cuentas con balances de prueba para que las uses, pero no debes mezclar estas cuentas para transacciones reales.
Por último, para desplegar un contrato, lo haremos junto con un script que se adjuntó en la descarga:
Aporte creado por: Luis Enrique Herrera.
Aportes 47
Preguntas 18
Los cursos que menciona al inicio son los que ya casi se estrenan.
Hola, si también tuvieron este error
Error: Cannot find module '@nomiclabs/hardhat-waffle'
Lo soluciones instalando el paquete
npm i @nomiclabs/hardhat-waffle
y luego ya puedes ver las accounts y el resto.
Personalmente me gusta mucho hardhat y lo he estado usando mas. Consejo para los que van empezando: denle sin miedo y si pueden metanse a hackathones en la plataforma devPost. Platzi es muuuuy bueno en sus cursos pero la experiencia de construir en un hackathon ayuda mucho a acelerar el proceso
Hardhat nos ayuda en el desarrollo de forma local con Solidity.
Lo mejor de todo es que estarás desarrollando en una red de prueba llamada Hardhat Network basada en la red de Ethereum pero con algunas mejoras que te permitirán identificar errores en tus contratos inteligentes.
Los proyectos de Hardhat, son proyectos de NPM con el paquete Hardhat instalado que se ayuda de otros plugins para incrementar sus funcionalidades.
Instalación de ambiente de desarrollo
1.- Crear carpeta y entrar en ella:
$ mkdir hola-hardhat
$ cd hola-hardhat
2.- Creando el proyecto en NPM (dar Enter a todas las preguntas para dejar por defecto):
$ npm init
3.- Instalando HardHat en el proyecto:
$ npm install --save-dev hardhat
$ npx hardhat //Ejecutando hardhat
4.- Verás la información de bienvenida en la terminal y las opciones de crear un proyecto. Seleccionar “Create a basic sample project”, esto nos creará un proyecto de pruebas con archivos básicos.
Para ver las direcciones de prueba con las que estaremos interactuando. Son sólo de prueba, no las utilices para recibir tokens verdaderos de mercado.
$ npx hardhat accounts
Para compilar el proyecto:
$ npx hardhat compile
Para desplegar el proyecto:
$ npx hardhat run scripts/sample-script.js
Al ejecutar esto debe aparecer el mensaje “Hello Hardhat!” lo que indicará que todo ha ido bien y veremos la dirección en la que se encuentra el contrato.
Truffle te crea un entorno un poco más amigable y más modesto de usar, tiene un plus en su suite, y es** Drizzle** donde te proporciona una especie de plantillas para poder hacerle el FrontEnd a tu app con web3.js. Aunque, ha diferencia de Hardhat, es más robusto es más potente, tiene una red completa para poder testear, hacer deploys y corregir bugs. Las dos son buenas para desarrollar, incluyendo Remix, pero al momento de crear un proyecto más profesional, se usa Hardhat para poder tener la linea de herramientas que facilitarán el desarrollo de tus proyectos.
Truffle me pareció mas completo, y amigable por su interfaz grafica y cli.
El comando
npx hardhat accounts
ya no aparece en la nueva versión de Hardhat.
En cambio, pueden utilizar
npx hardhat node
que inicializa el nodo y muestra las Account con las Private Key.
Comandos de la clase
npm init
npm install --save-dev hardhat
npx hardhat
>create a basic sample project
code .
npx hardhat accounts
npx hardhat compile
npx hardhat run scripts/sample-script.js
En otro curso que tomé comentaban que Hardhat se usa más en entornos profesionales. En lo personal, me gusta que hardhat tiene todo lo que necesitamos para desarrollar. Sin embargo, me interesa saber más sobre herramientas para frontend como drizzle, de Truffle
Comandos usas en esta clase:
–Seleccionar create a basic sample project
y
code . // abrir los archivos en visual studio code si lo tienes instalado
npx hardhat account //ver direcciones hardhat de prueba para probar contratos, enviar fondos, recibir fondos, etc.
npx hardhat compile
npx hardhat run scripts/sample-scripts-js 77 ejecutar script de prueba de nuestro contrato
Tuve varios problemas, detallo como resolví algunos:
npm i @nomicfoundation/hardhat-toolbox
task("accounts", "Prints the list of accounts", async () => {
const accounts = await ethers.getSigners();
for (const account of accounts) {
console.log(account.address);
}
});
Luego de eso no deberían tener problema al usar el comando
npx hardhat accounts
Si han tenido problemas para el deploy de "Hello, hardhat!"
Usar este comando:
$ node scripts/sample-script.js
Si les da el error Error HH303: Unrecognized task accounts
, probablemente tengan instalada la version 2.9.9 o posterior de Hardhat.
.
Para ver las cuentas, se puede usar el comando npx hardhat node
.
.
Por ejemplo:
$ npx hardhat --version
2.10.1
$ npx hardhat accounts
Error HH303: Unrecognized task accounts
For more info go to https://hardhat.org/HH303 or run Hardhat with --show-stack-traces
$ npx hardhat node
Started HTTP and WebSocket JSON-RPC server at https://127.0.0.1:8545/
Accounts
========
WARNING: These accounts, and their private keys, are publicly known.
Any funds sent to them on Mainnet or any other live network WILL BE LOST.
Account #0: 0xf39Fd6e51a...ffFb92266 (10000 ETH)
Private Key: 0xac0974bec39a1...478cbed5efcae784d7bf4f2ff80
Account #1: 0x70997970C51812...b50e0d17dc79C8 (10000 ETH)
Private Key: 0x59c6995e998f97a5a...9dc9e86dae88c7a8412f4603b6b78690d
.
.
.
Referencia:
“npx hardhat accounts” not available in Hardhat latest version 2.9.9
https://stackoverflow.com/questions/72943829/npx-hardhat-accounts-not-available-in-hardhat-latest-version-2-9-9
También para los que tengan más conocimiento de Python que de Javascript pueden usar :
Brownie
Es similar a Truffle pero basado en python.
npm init -y
: Para dejar toda la configuracion por defecto de una.
npm install --save-dev hardhat
: Instalar hardhat
npx hardhat
: npx nos ayuda a evitar el versionado y la instalación de paquetes innecesarios que sólo queremos probarnpm install --save-dev hardhat@^2.6.7 @nomiclabs/hardhat-waffle@^2.0.0 ethereum-waffle@^3.0.0 chai@^4.2.0 @nomiclabs/hardhat-ethers@^2.0.0 ethers@^5.0.0
npx hardhat accounts
: Direcciones de prueba. NO usar para transacciones reales.
npx hardhat compile: Compilar proyecto
npx hardhat run scripts/sample-script.js` : despliegue del contrato en la red local
ando remal los comandos no me funcionan para instalar todo lo necesario
Para compartirles la siguiente experiencia y una duda al respecto: Con el Windows PowerShell como administrador se mostró el error HH12 al correr el comando npx hardhat. Ninguna acción corrigió este error pasando desde la reinstalación del npm, hacer downgrades, implementación de varios de los aportes del curso, entre otras. Entonces ingresé el comando npx hardhat en la consola cmder y se presentó la información esperada (ver imagen). Quedo atento por si hay alguna configuración para el Windows PowerShell o mas bien es recomendable el uso de consolas alternativas.
Ojo con la advertencia:
WARNING: These accounts, and their private keys, are publicly known. Any funds sent to them on Mainnet or any other live network WILL BE LOST.
ADVERTENCIA: estas cuentas y sus claves privadas son de conocimiento público. Todos los fondos que se les envíen en Mainnet o cualquier otra red en vivo SE PERDERÁN.
RESUMEN CLASE 12:
HARDHAT
I.- INSTALAR HARDHAT
1.- Crear un directorio para el proyecto
$ mkdir hola-hardhat
2.- Dirigirse al directorio creado
$ cd hola-hardhat
3.- Iniciar npm “Dejar la informacion por defecto del package.json” haciendo ENTER
$ npm init
4.- Para instalar Hardhate ejecutar el siguiente comando
$ npm install --save-dev hardhat
5.- Ejecutar el siguiente comando
$ npx hardhat
6.- Empesar un nuevo proyecto
7.- Abrir VSCode desde el directorio actual
$ code .
II.- CUENTAS DE PRUEBA POR DEFECTO EN HARDHAT (No usar para enviar ni recibir fondos)
Para ver las direcciones desde las cuales estaremos interactuando, para probar nuestros contratos, enviar y recibir fondos.
$ npx hardhat accounts
III.- PARA DESPLEGAR SMART CONTRACT
1.- Para Compilar Ejecutar el siguiente comando
$ npx hardhat compile
2.- Para hacer Deploy ejecutar el siguiente comando
$ npx hardhat run scripts/sample-script.js
Truffle suite is sweeter and hardhat is more robust.
Error: error:0308010C:digital envelope routines::unsupported
me sirvio esto en windows
set NODE_OPTIONS=–openssl-legacy-provider
Con el comando
npm init -y
se puede generar el json con los mismos resultados que la clase pero sin tener que responder las preguntas, o sea automáticamente.
Para los que tengan problemas, la solucion esta en hacerle downgrade a su node, que lo pueden realizar con el siguiente comando:
nvm install <version>.
Dentro de version escriben una version actual a la que hayan instalado, por el momento la ultima version estable que use y les recomiendo es la
16.12.0.
Aqui les dejo la guia oficial de hardhat por si tienen algun incoveniente a la hora de ejecutar los comandos https://hardhat.org/hardhat-runner/docs/getting-started
Ejecuté el código en la terminal de Bash y me arrojo el siguiente error:
Luego abrí la Powershell de Windows y volví a ejecutar el código, está vez el resultao fue el esperado:
Muchas gracias ya pude instalar las 3 herramientas. Ahora estoy entendiendo mucho más lo que significa el trabajo en el mundo blockchain. Muchas gracias.
En mi caso uso una raspberry pi 4B y llego a compilar con hardhat, sin embargo truffle me vota varios errores
La verdad esta librería me gusto porque se instala por proyecto pero la verdad me gusto más truffle por la vista que tiene de escritorio.
Aunque la verdad son muy similares al momento de compilar y desplegar el contrato. Increíble curso!
Me gusta que Truffle tiene librerías para front, no sé si HardHat también
Desde mi punto de vista como principiante, al ser nuevo en este mundo, y viendo estos 3 entornos de desarrollo, me gusto bastante truffle por que brinda diferentes herramientas para cada cosa, para crear contratos (truffle), para crear la blockchain local (ganache) y manipular el frontend (drizzle), además me pareció ordenada y segmentada, y se me hizo muy facil entenderla.
RemixIDE me parece tambien genial para iniciarte en solidity he ir practicando y aprendiendo nuevos conceptos.
Hardhat también esta bacana y se ve que es muy potente y ofrece mas características que los anteriores ambientes no poseen, pero me resulto un poco confusa.
Aun así esta genial y cada entorno cumple para ciertos propósitos
Si eres pythonero como yo, pueden usar: https://eth-brownie.readthedocs.io/en/stable/quickstart.html#creating-a-new-project
Si no os funciona, borrad todo y empezad de nuevo, desde cero. Debes seguir todos los pasos y ver que todos los archivos se guarden en la misma carpeta, en Usuario o en el Sistema.
Si están usando windows y usan el powershell para esta práctica y no les sale, usen el cmd en modo administrador, y ya ahí les sale la práctica.
me ha gustado hardhat porque es simple y ademas podemos ir directamente ha como poder desarollar los contratos mas alla de hello mundo.
Me gustaria tambien poder crear aplicaciones reales al mundo de blockchain con los smart contracts
Saludos
Te permite realizar todo el proceso de desarrollo facilmente desde la
compilación, despliegue, test y hasta el debug de los contratos.
También se puede usar el comando “npm init -y” y deja todas las opciones por defecto
underestimating alert: USAR ALGUNA VERSIÓN ANTERIOR A LA 17 DE NODE.JS, al menos por el momento.
Personalmente, agregué en la opción de build
en el package.json
que los proveedores SSL fueran legados, así:
esta me gusta más
Hola si alguien tiene el siguiente error
Error: Cannot find module '@nomiclabs/hardhat-waffle'
Tiene que instalar
npm install --save-dev @nomiclabs/hardhat-waffle ethereum-waffle chai @nomiclabs/hardhat-ethers ethers
#
npx hardhat accounts se listas las direcciones con las cuales vamos a interactuar
Para desplegar el proyecto: npx hardhat run scripts/sample-script.js
Para copilar el proyecto: npx hardhat compile
Para visualizar las direcciones con las que estaremos interactuando para probar nuestros contratos, enviar fondos, recibir fondos con: npx hardhat accounts
Instala Hardhat con : npx hardhat
Para instalar hardHat en nuestro proyecto ingresamos en siguiente comando: npm install --save-dev hardhat
Para crear un nuevo proyecto con : npm init
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?