Creo que al incio no sabemos bien donde deberia ir el html, se puede notar en el minuto 3:42, en el proyecto que creamos la clase pasada debemos crear en la raiz una carpeta src y dentro de ella va el index.html
Inicia tu camino construyendo la Web3
Bienvenida al desarrollo en blockchain
Por qu茅 iniciar en el desarrollo de blockchain
驴Qui茅n puede ser blockchain developer?
脕reas de aplicaci贸n
Conociendo el entorno de desarrollo
Consideraciones b谩sicas para desarrollo
Lenguajes y herramientas para el desarrollo blockchain
Arquitectura b谩sica en Web 3
Glosario criptogr谩fico
Desarrollo en Ethereum
Solidity: el lenguaje para programar contratos inteligentes
OpenZeppelin Contracts
Ethereum Virtual Machine
Mi camino programando - Ernesto Garc铆a
Primeros pasos en Ethereum
Uso de wallets: Metamask
Redes de prueba
RemixIDE
Entorno de desarrollo con Hardhat
Compilando y desplegando contratos inteligentes
Conectando la blockchain con el navegador: Web3.js y Ether.js
Ejecutando tu aplicaci贸n descentralizada
De Web2 a Web3 - Alfredo Bonilla
Seguridad y protocolos de segunda capa
Desarrollando en capa 2
Aprovecha la descentralizaci贸n - Oscar Barajas
M谩s all谩 del desarrollo
Base de datos en blockchain: IPFS, Filecoin y ARWEAVE
Blockchain startups y DAO
C贸mo llegu茅 a trabajar en programaci贸n - Natacha De La Rosa
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
Alfredo Bonilla
Desarrollar un contrato inteligente es como desarrollar cualquier backend. Solo es el 50% del trabajo de un desarrollador blockchain, o de un equipo de desarrollo. El siguiente paso es desarrollar el otro 50%, el front-end de la aplicaci贸n que se comunique con la blockchain e interact煤e con el contrato.
La conexi贸n con una blockchain para acceder a la informaci贸n o interactuar con un smart contract requiere, en primer lugar, de las t铆picas tecnolog铆as para el desarrollo de cualquier front-end: HTML, CSS, Javascript. Adem谩s de eso, una parte fundamental para lograrlo es un provider, mejor conocido como una wallet.
Billeteras como Metamask crean el enlace entre el front-end y una blockchain. No solo es importante la misma para el despliegue de un contrato y el pago de las comisiones, tambi茅n requeriremos de una wallet en la aplicaci贸n web3 para interactuar con cualquier contrato.
Otra parte esencial para lograr dicha comunicaci贸n, es un cliente o librer铆a que nos facilite la tarea. La comunicaci贸n con cualquier blockchain se realiza por medio de un protocolo llamado JSON RPC, en lugar de utilizar HTTP o HTTPS como en el desarrollo de software tradicional.
Las dependencias para lograr conectarnos con cualquier blockchain basada en EVM son Web3.js o Ether.js. Siendo web3.js
la m谩s adoptada por la comunidad y la que m谩s tiempo lleva en el mercado, pero ether.js
no se queda atr谩s y ha ganado mucha popularidad en los 煤ltimos a帽os.
Para esta demostraci贸n de conexi贸n con una blockchain, utilizaremos ether.js
. Ingresa al sitio oficial de Ether.js y encontrar谩s m煤ltiples formas de instalar esta dependencia. Por supuesto que puedes hacerlo con NPM. Pero, para este sencillo ejemplo, utilizaremos un simple CDN en nuestro archivo HTML.
Utilizaremos un trivial archivo .html
en donde importaremos el CDN y escribiremos el c贸digo necesario de la dapp:
```
```
Observa que necesitar谩s la siguiente informaci贸n: El CONTRACT_ABI
lo encontrar谩s en los archivos luego de compilar el smart contract, se trata de un arreglo con toda la informaci贸n necesaria para comunicarnos con dicho contrato. Luego de desplegar el contrato, habr谩s obtenido el CONTRACT_ADDRESS
del mismo, tambi茅n lo necesitaremos.
Wallets como Metamask inyectan en el objeto window
del navegador el provider con toda la l贸gica que necesitar谩s para comunicarte con, en este caso, Ethereum. Lo encontrar谩s en window.ethereum
. De no tener instalado Metamask como extensi贸n del navegador, la aplicaci贸n no funcionar谩.
Especifica la red a la cual quieres comunicarte. En este caso, nos conectaremos a la red de prueba de Goerli. Seguido de la l贸gica para capturar en el c贸digo, el acceso a tu wallet Metamask para firmar las transacciones posteriormente e instanciar el contrato con la direcci贸n y el ABI.
Finalmente, encontrar谩s una funci贸n para cada m茅todo del contrato al cual nos estamos comunicando. En este caso, tenemos dos funciones, una para obtener el valor del contador y otra para incrementarlo. Al tratarse de una comunicaci贸n con una blockchain, observa que deben ser m茅todos as铆ncronos, como si de una t铆pica API se tratara.
Esta es toda la l贸gica Javascript que necesitar谩s. El siguiente paso ser谩 crear algunos simples botones en el HTML para ejecutar cada funci贸n y lograr la interacci贸n con el contrato.
En este ejemplo, nos encontramos utilizando HTML y Javascript de manera muy simple para que logres ver que, con unas pocas l铆neas de c贸digo, es posible comunicarnos con Ethereum. Podr谩s desarrollar aplicaciones m谩s sofisticadas con Angular, React o Vue, posteriormente a aprender lo b谩sico sobre el uso de estas tecnolog铆as del lado del front-end.
Contribuci贸n creada por: Kevin Fiorentino (Platzi Contributor).
Aportes 9
Preguntas 2
Creo que al incio no sabemos bien donde deberia ir el html, se puede notar en el minuto 3:42, en el proyecto que creamos la clase pasada debemos crear en la raiz una carpeta src y dentro de ella va el index.html
La verdad que siendo tan importante la creacion del index.html no haberlo mencionado - o haber hecho enfasis en su creacion- con anterioridad hizo que el entendimiento del curso se haga muy pesado. Hace 5 horas estoy intentando dejar todo como lo hace el profesor aqui y la verdad como poco o nulo exito. Una pena
Recordar que las funciones de incrementar() y getCounter() son async - as铆ncronas - porque se comunican con la blockchain y toman un tiempo en ejecutarse.
Documentaci贸n de ether.js en su version 5:
https://docs.ethers.io/v5/getting-started/
Platzi tiene un curso de Asincronismo si quieren aprender mas sobre como funciona.
Curso de Asincronismo
Librerias
web3.js
La primera que se creo y hay m谩s comunidad
ether.js
Es m谩s eficiente
Conectar una DAPP con la Blockchain:
1- Aplicaci贸n web: (En este caso la construiremos con html, css, javascript).
2-**Necesitamos un proveedor **: Metamask (en este caso) lo que hace es firmar las transacciones y conectarse con la blockchain, pagando gas ya sea Sepolia o Goerli.
3-Librer铆a: Se usar谩 ethers.js porque es un poco mas reciente y su uso viene en crecimiento, adem谩s de ser eficiente y liviana, la usaremos para conectar nuestra DAPP con el contrato inteligente.
驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?