Inicia tu camino construyendo la Web3

1

Pre-work para Desarrollo en Blockchain: Primeros Pasos y Herramientas

2

Desarrollo Blockchain: Principios y Oportunidades en Web3

3

Fundamentos de Blockchain y Descentralización

4

Smart Contracts y Web3: Construyendo el Futuro Descentralizado

Conociendo el entorno de desarrollo

5

Introducción al Desarrollo Blockchain: Git, Node.js y Comandos de Terminal

6

Fundamentos de Blockchain: Redes, Lenguajes y Herramientas Esenciales

7

Stack de Web3: Capas y Herramientas para Aplicaciones Descentralizadas

8

Conceptos Básicos de Criptografía para Web3

Desarrollo en Ethereum

9

Programación de Contratos Inteligentes con Solidity

10

Seguridad en Smart Contracts con Open Zeppelin Contracts

11

Fundamentos de la Ethereum Virtual Machine (EVM)

12

Desarrollo de Aplicaciones Blockchain con Solidity y Ethereum

Primeros pasos en Ethereum

13

Creación y gestión de wallets de criptomonedas

14

Redes de Pruebas Blockchain: Uso y Funcionalidad en Desarrollo

15

Creación de Contratos Inteligentes en Remix IDE y Solidity

16

Instalación y Configuración de Hardhat para Contratos en Solidity

17

Compilación y despliegue de contratos inteligentes con Hardhat

18

Conexión de Aplicaciones Descentralizadas a Blockchain con Ethers.js

19

Ejecución de Aplicaciones Descentralizadas con Metamask

20

Programación Web 3: Fundamentos y Especializaciones

Seguridad y protocolos de segunda capa

21

Capas 2 en Ethereum: Escalabilidad y Seguridad en Blockchain

22

Transición de Web 2 a Web 3: Desarrollo y Comunidades Blockchain

Más allá del desarrollo

23

Almacenamiento Descentralizado en Blockchain: IPFS, Filecoin y Más

24

Creación de Startups y DAOs en Blockchain

25

Introducción al Desarrollo en Web3 para Mujeres y Hablantes de Español

26

Fundamentos de Blockchain y Criptomonedas en Web3

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Conexión de Aplicaciones Descentralizadas a Blockchain con Ethers.js

18/27
Recursos

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.

Conexión y comunicación con un contrato inteligente

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.

Parámetros necesarios para establecer la conexión

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.

Programando la conexión con Ethereum

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.

Conclusión

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

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

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

Buenas, en la descripción, pestaña Recursos no esta el HTML con el que se trabaja en la clase, no es problema crearlo desde 0 pero en recursos se ve que claramente se tenia la intención de poner el HTML y no se hizo, esto, sumando la duda de mi clase anterior y viendo que muchas personas realizan preguntas y se quedan sin respuesta empiezo a dudar un poco la falta de control de calidad y seguimiento por parte de los profesores.
Buenas, quede perdido con el ejercicio anterior o algo me perdí, hicimos una prueba unitaria pero cuando la ejecutamos??, compilamos, desplegamos pero veo que nos estamos tirando a una conexión con la web ya....

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.