4 minutos de lectura
Resumen
Cuando alguien piensa en desarrollar una dApp, la primera herramienta que le viene a la mente es web3.js, algo bastante habitual debido a su popularidad en la comunidad y a sus amplios casos de uso. El desarrollo de dApps no ha dejado de crecer y hay muchos desarrolladores que quieren aprender a desarrollar dApps. La biblioteca web3.js a veces no resulta adecuada debido al gran tamaño de su paquete. Aquí es donde entra en escena la biblioteca ethers.js, una alternativa a web3.js que resulta muy compacta en comparación con esta. Ocupa solo 88 kb una vez comprimida; ethers.js es de código abierto y ha sido sometida a exhaustivas pruebas, y su mantenimiento corre a cargo de colaboradores dedicados.
ethers.js es ideal para quienes se inician en el desarrollo de dApps y blockchain, ya que es muy fácil de usar. Muchas empresas y proyectos nuevos están prefiriendo ethers.js frente a otras bibliotecas como web3.js debido a su rendimiento en el navegador. TypeScript ha ido ganando mucha popularidad últimamente, así que si eres uno de los aficionados a TypeScript, no te preocupes: los creadores de ethers.js vieron el futuro y lo prepararon para el futuro con un código fuente completo en TypeScript.
En este artículo, explicaremos cómo instalar Ethers.js, cómo utilizarlo para conectarnos a un proveedor de web3 y cómo obtener la altura de bloque más reciente.
Requisitos previos
- Node.js y Ethers.js (versión 6) instalados en tu sistema
- Un editor de texto
- Terminal, también conocido como línea de comandos
Instalación de la biblioteca Ethers.js
En primer lugar, comprobemos que tenemos NodeJS instalado. Es muy sencillo: abre un terminal y ejecuta:
$ nodo -v
Si aún no lo tienes instalado, puedes descargar la versión LTS de NodeJS desde la página web oficial.
Si quieres utilizar Ethers.js en el navegador, solo tienes que añadir la siguiente etiqueta de script en tu archivo HTML:
<script type="module">
import { ethers } from "https://cdnjs.cloudflare.com/ajax/libs/ethers/5.7.2/ethers.min.js";
// Your code here...
</script>
O
Ahora vamos a instalar el paquete ethers.js, que nos ayudará a conectarnos a la red de Ethereum y a crear interfaces de usuario geniales para dApps. Puedes instalarlo con npm desde la línea de comandos:
$ npm instalar --save ethers
El problema más habitual en este paso es un error interno de `node-gyp`. Puedes seguir las instrucciones de instalación de node-gyp aquí.
Nota: Si te encuentras con el problema de node-gyp, tu versión de Python deberá coincidir con una de las versiones compatibles que se indican en las instrucciones anteriores.
Otro problema habitual es que la caché esté obsoleta; para borrar la caché de npm, solo tienes que escribir lo siguiente en la terminal:
$ npm limpiar caché
Si todo va bien y ethers.js se instala correctamente, ¡ya tienes la mitad del camino recorrido!
Configura tu punto de acceso de Quicknode
Para lo que nos ocupa hoy, podríamos utilizar prácticamente cualquier cliente de Ethereum, como Geth u OpenEthereum (antes conocido como Parity). Dado que eso resulta un poco complicado solo para consultar la altura del bloque, crearemos una cuenta gratuita en Quicknode aquí y generaremos un punto final de Ethereum. Una vez que hayas creado tu punto final gratuito de Ethereum, copia el punto final de tu proveedor HTTP:

Lo vas a necesitar más adelante, así que cópialo y guárdalo.
Conectarse a través de ethers
Ahora vamos a crear un script breve, llamémoslo `index.js`, para obtener la altura del bloque de nuestro nodo. Puedes copiar y pegar esto en tu editor de código:
var ethers = require('ethers');
var url = 'ADD_YOUR_ETHEREUM_NODE_URL';
var customHttpProvider = new ethers.JsonRpcProvider(url);
customHttpProvider.getBlockNumber().then((result) => {
console.log("Current block number: " + result);
});
Así que no dudes en sustituir `ADD_YOUR_ETHEREUM_NODE_URL` por el proveedor HTTP de la sección anterior.
Una breve explicación del código anterior: estamos importando la biblioteca «ethers» que hemos instalado anteriormente (línea 1), configurando la URL de nuestro nodo de Ethereum (línea 2) y creando una instancia de «JsonRpcProvider» de «ethers» (línea 3). Por último, llamamos a la función `getBlockNumber` del objeto JSON-RPC de `ethers`, esperamos a que el servidor devuelva un resultado satisfactorio y, a continuación, registramos el resultado en la consola (líneas 4-6).
Guarda este fragmento de código en un archivo llamado index.js; lo vamos a ejecutar en unos instantes.
Comprueba que funciona
Ejecuta el script que acabamos de crear con el comando «node» y verás la cadena de bloques más reciente de Ethereum:
$ node index.js
Deberías ver lo siguiente:
¡Ya está! Te has conectado a la red de Ethereum utilizando ethers.js. Puedes consultar el repositorio de GitHub de ethers para obtener más información o ver otros proyectos de ethers.js. Si quieres utilizarlo en una aplicación front-end, puedes configurar webpack para compilarlo en un formato adecuado para un navegador.
Suscríbete a nuestro boletín para recibir más artículos y guías sobre Ethereum. Si tienes algún comentario, no dudes en ponerte en contacto con nosotros a través de Twitter; además, siempre puedes charlar con nosotros si tienes alguna pregunta en nuestro servidor de la comunidad en Discord. Gracias :)
Bonificación
Si quieres utilizar ethers.js con Truffle, existe un paquete que lo hace posible: ethers-cli, desarrollado por el mismo creador de ethers.js. Este paquete sustituye gran parte de Truffle e incluye un TestRPC, además de las integraciones con ethers necesarias para que todo funcione.
Si quieres inicializar el proveedor para todas las instancias de la cartera, con Ethers es muy sencillo: solo tienes que añadir lo siguiente en tu código:
const proveedor = ethers.getDefaultProvider();
