Seguimos hablando sobre web3.js, JavaScript y Ethereum. En el artículo de hoy quiero proponerte 3 alternativas a la biblioteca de Ethereum con “mejor marketing” del momento.
Espero que te sean útil. Pero antes de seguir, te recomiendo leer los siguientes artículos:
Qué es web3.js?
Por si no recuerdas, web3.js es una “colección de bibliotecas de JavaScript que te ayudan a interactuar con un nodo de Ethereum”.
En el artículo de la semana pasada vimos cómo conectar web3.js a Ethereum, pero web3.js no es la única herramienta capaz de hacerlo. Toma nota sobre las siguientes alternativas:
1. ethers.js
ethers.js es una implementación completa de la biblioteca y la cartera de Ethereum en JavaScript (y TypeScript).
Es posible que sea el mayor competidor de web3.js, pesa ligeramente menos y está implementado en Typescript.
Las siguientes son algunas de sus mejores características:
- Mantén tus claves privadas a salvo en tu cliente
- Importa y exporta carteras JSON (Geth, Parity y crowdsale)
- Importa y exporta frases mnemotécnicas BIP 39 y billeteras HD
- Conecta a los nodos de Ethereum a través de JSON-RPC, INFURA, Etherscan, Alchemy o MetaMask
- Diminuto (~ 104 kb comprimidos; 322 kb sin comprimir)
- Paquetes modulares
- Documentación extensa
- Licencia MIT; código completamente abierto
2. truffle-contract
truffle-contract es una biblioteca de JavaScript que quiere proporcionar una “mejor abstracción de contratos de Ethereum, para Node.js y el navegador”.
Las siguientes son sus características principales:
- Transacciones sincronizadas para un mejor flujo de control
- Promesas. Funciona bien con ES6 y async/await
- Valores predeterminados para transacciones
- Registros de devolución, recibo de transacciones
3. ethjs
ethjs es una “utilidad de JavaScript ligera y altamente optimizada para Ethereum”. Es un módulo simple para crear dApps y aplicaciones que usan Ethereum. Una característica importante de ethjs es que está basada en web3.js, pero más ligera y usa BN.js.
Características principales:
- En desarrollo y altamente experimental
- Puede realizar transacciones (cambiar) y llamar (obtener información) la cadena de bloques
- Connecta a través de infura.
- Cobertura completa de la especificación Ethereum RPC
- Facilidad para gestionar eventos y filtros
- Completamente asincrónico al manejar datos de cualquier proveedor, nodo o cliente de Ethereum
Conclusión
Cómo has podido ver, las tres herramientas comentadas en este artículo tienen funcionalidades muy similares. Te animo a instalar y hacer pruebas con cada una de las tres, y decidir cuál de ellas se adapta mejor a tus necesidades.
Si tuviera que escoger una de las cuatro (con web3.js), me quedaría con web3.js y después con ethers.js. ¿Y tu? ¡Coméntalo abajo!
Foto: @ksandrphoto @freepik