Configurar web3.js para usar la cadena de bloques de Ethereum en JavaScript
En este tutorial, veremos cómo empezar con web3.jsopens in a new tab para interactuar con la cadena de bloques de Ethereum. Web3.js se puede utilizar tanto en frontends como en backends para leer datos de la cadena de bloques, realizar transacciones e incluso implementar contratos inteligentes.
El primer paso es incluir web3.js en su proyecto. Para usarlo en una página web, puede importar la biblioteca directamente usando una CDN como JSDeliver.
1<script src="https://cdn.jsdelivr.net/npm/web3@latest/dist/web3.min.js"></script>Si prefiere instalar la biblioteca para usarla en su backend o en un proyecto de frontend que use un proceso de compilación, puede instalarla usando npm:
npm install web3 --saveLuego, para importar Web3.js en un script de Node.js o en un proyecto de frontend de Browserify, puede utilizar la siguiente línea de JavaScript:
1const Web3 = require("web3")Ahora que hemos incluido la biblioteca en el proyecto, necesitamos inicializarla. Su proyecto necesita poder comunicarse con la cadena de bloques. La mayoría de las bibliotecas de Ethereum se comunican con un nodo a través de llamadas RPC. Para iniciar nuestro proveedor de Web3, crearemos una instancia de Web3 pasando como constructor la URL del proveedor. Si tiene un nodo o una instancia de ganache ejecutándose en su computadoraopens in a new tab, se verá así:
1const web3 = new Web3("http://localhost:8545")Si desea acceder directamente a un nodo alojado, puede encontrar opciones en nodos como servicio.
1const web3 = new Web3("https://cloudflare-eth.com")Para probar que hemos configurado correctamente nuestra instancia de Web3, intentaremos recuperar el número del último bloque usando la función getBlockNumber. Esta función acepta una devolución de llamada como parámetro y devuelve el número de bloque como un número entero.
1var Web3 = require("web3")2const web3 = new Web3("https://cloudflare-eth.com")34web3.eth.getBlockNumber(function (error, result) {5 console.log(result)6})Si ejecuta este programa, simplemente imprimirá el último número de bloque: la parte superior de la cadena de bloques. También puede usar llamadas a funciones await/async para evitar anidar devoluciones de llamada en su código:
1async function getBlockNumber() {2 const latestBlockNumber = await web3.eth.getBlockNumber()3 console.log(latestBlockNumber)4 return latestBlockNumber5}67getBlockNumber()Puede ver todas las funciones disponibles en la instancia de Web3 en la documentación oficial de web3.jsopens in a new tab.
La mayoría de las bibliotecas Web3 son asíncronas porque, en segundo plano, la biblioteca realiza llamadas JSON-RPC al nodo que devuelve el resultado.
Si está trabajando en el navegador, algunas billeteras inyectan directamente una instancia de Web3 y debería tratar de usarla siempre que sea posible, especialmente si planea interactuar con la dirección de Ethereum del usuario para realizar transacciones.
Este es el fragmento de código para detectar si una billetera de MetaMask está disponible e intentar activarla si lo está. Más adelante, esto le permitirá leer el saldo del usuario y habilitarlo para que valide las transacciones que usted desee que realice en la cadena de bloques de Ethereum:
1if (window.ethereum != null) {2 state.web3 = new Web3(window.ethereum)3 try {4 // Solicitar acceso a la cuenta si es necesario5 await window.ethereum.enable()6 // Cuentas ahora expuestas7 } catch (error) {8 // El usuario denegó el acceso a la cuenta...9 }10}Mostrar todoExisten alternativas a web3.js, como Ethers.jsopens in a new tab, que también se usan con frecuencia. En el próximo tutorial, veremos cómo escuchar fácilmente los nuevos bloques que llegan a la cadena de bloques y ver qué contienenopens in a new tab.
Última actualización de la página: 21 de agosto de 2025