Web3.js - Pasado, Presente y Futuro

Rate this content
Bookmark

Discutiremos los desafíos enfrentados en el proyecto Web3.js.

Algunas estadísticas de contribución de código abierto.

Objetivos actuales de refactorización en los que estamos trabajando para mejorar web3.js.

Cronograma de lanzamiento.

Visión general de los planes futuros.

This talk has been presented at JSNation 2022, check out the latest edition of this JavaScript Conference.

FAQ

La biblioteca Web3js fue iniciada en 2014 por Jeffrey Bickle.

Hasta ahora se han lanzado 172 versiones de Web3JS.

La versión 4 de Web3JS incluirá soporte nativo de TypeScript, un tamaño de compilación reducido y una mayor cobertura de pruebas, entre otras mejoras.

El validador declarativo facilita la validación de datos usando esquemas JSON, estrechamente relacionados con los tipos de Ethereum, mejorando la eficiencia y precisión en el manejo de datos.

Las versiones anteriores enfrentaron problemas como código confuso, módulos fuertemente acoplados, y problemas de TypeScript, lo que dificultaba la introducción de nuevas características y la depuración.

Web3JS v4 está siendo reescrita desde cero para ser más extensible, permitiendo una fácil adición de nuevas características y una mejor integración con la comunidad.

La versión 4 de Web3JS está disponible para exploración directamente desde GitHub en la rama 4.x y pronto se lanzará en fase alfa.

La versión 1 de Web3JS continuará recibiendo soporte aunque se alentará a la comunidad a migrar a la versión 4 para aprovechar las nuevas mejoras.

Nazar Hussain
Nazar Hussain
21 min
20 Jun, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Hoy discutiremos la biblioteca Web3JS, su historia, mantenimiento y participación de la comunidad. La próxima versión 4 tiene como objetivo abordar los desafíos enfrentados en la versión 1 mediante la introducción de soporte nativo para TypeScript, reducción de tamaño, mejora de la legibilidad del código y aumento de la cobertura de pruebas. La versión 4 también introduce un nuevo validador para facilitar la validación de datos de Ethereum y permite a los desarrolladores personalizar cómo manejan números y bytes. Trae un formato de datos dinámico para el formato personalizado e introduce TypeScript para contratos sin transpilar. La API en la versión 4 es fácil de extender y tiene mejoras y refactorización futuras.
Available in English: Web3.js - Past, Present & Future

1. Introducción a la biblioteca Web3JS

Short description:

Hoy discutiremos la biblioteca Web3JS, su historia, mantenimiento y participación de la comunidad. Comenzó en 2014 por Jeffrey Bickle, la biblioteca ha sido mantenida por varios colaboradores y organizaciones. Con más de 100 colaboradores y 17,000 solicitudes de extracción, la biblioteca ha sido sometida a extensas pruebas. Datos curiosos incluyen el período beta de dos años de la biblioteca y los intentos fallidos de reescritura. A pesar de esto, la versión uno sigue siendo la más utilizada.

Y hoy vamos a discutir Web3JS, una de las bibliotecas más famosas y ampliamente utilizadas en la comunidad de Ethereum. Así que vamos a discutir algunos aspectos pasados de la biblioteca y algunos aspectos futuros así como algunos hitos presentes que hemos logrado hasta ahora. Así que empecemos.

Primero que nada, vamos a explorar el pasado de la biblioteca. La mayoría de ustedes han estado usando mucho esta biblioteca, pero tal vez no sepan cómo se inició esta biblioteca en realidad. Esta biblioteca Web3js fue iniciada en 2014 por un único colaborador, Jeffrey Bickle, y en 2016 fue transferida a otro único mantenedor, Samuel Furter. Y desde 2018, Ethereum JS de la Fundación Ethereum ha estado manteniéndola. Y desde hace dos años, nuestra empresa ChainSev ha sido responsable de mantener esta biblioteca. Y si observamos el hecho de que esta biblioteca ha sido mantenida durante más de ocho años, tiene más de 100 colaboradores en total y más de 17,000 solicitudes de extracción.

Hasta ahora se han lanzado 172 versiones y de ellas 90 eran versiones previas al lanzamiento. Eso significa que esta biblioteca ha sido sometida a una investigación y depuración muy exhaustivas y pruebas por parte de la comunidad durante las versiones previas al lanzamiento. 90 versiones previas al lanzamiento es un número grande. Y esta biblioteca también tiene 600,000 descargas semanales. Y todo esto es gracias a la comunidad que utiliza y confía en esta biblioteca.

Y hay algunos datos curiosos sobre la biblioteca. He preguntado, así que la versión uno de la biblioteca web3.js ha estado en beta durante dos años y la gente ha estado utilizando la versión beta v1 en el entorno de producción durante muchos años. Porque esta v1 fue sometida a un extenso testing y un proceso de depuración exhaustivo. Y comenzamos a tener una reescritura v2 en el pasado y fue un fracaso y un intento de reescritura abandonado debido a algunos aspectos que discutiré en diapositivas posteriores. Comenzamos una reescritura v3 con algunas características extensas, que no duraron mucho. Y desde entonces, v1 es la única versión que toda la comunidad ha estado utilizando hasta ahora.

2. Web3 JS Version 4 y Logro de Objetivos

Short description:

La biblioteca Web3 JS ha enfrentado desafíos en la versión 1, que incluyen una base de código confusa, módulos fuertemente acoplados, problemas con TypeScript y tamaño de compilación. A pesar de los intentos fallidos de reescritura, la próxima versión 4 tiene como objetivo abordar estos desafíos. Contará con soporte nativo de TypeScript, reducción de tamaño, mejora en la legibilidad del código y mayor cobertura de pruebas. Los objetivos de la versión 4 se han logrado manteniendo la API de Parity v1, asegurando un mínimo de interrupciones en los proyectos.

Este es también un aspecto bastante interesante, y considerando que como dos intentos de reescritura o dos intentos de versión han fallado hasta ahora, pero eso no significa que la biblioteca en la versión v1 haya sido inestable. Por lo tanto, la v1 se ha mantenido y respaldado hasta ahora y lo ha estado haciendo. Y si observamos el aspecto de que la v1 vivió durante dos años en la versión beta, creo que este es el tiempo más largo después de otro proyecto, ExpressJS versión 5, que durará más de dos años.

Y hubo algunos desafíos que enfrentamos en la versión 1 de Web3JS. La mayoría de ustedes pueden entenderlo porque es posible que ya hayan informado algunos de los problemas o se hayan encontrado o estén enfrentando esos problemas. La base de código era muy confusa. La base de código estaba siendo mantenida por más de 100 colaboradores que mencioné anteriormente. La base de código no estaba utilizando algún proceso estándar o patrones estándar. Los módulos dentro del código estaban muy fuertemente acoplados. Había muchos desafíos técnicos para mantener este código y había muchas dificultades para introducir nuevas características, especialmente en la biblioteca v1.

Y la mayoría de ustedes ya han estado utilizando TypeScript. Por lo tanto, había muchos tipos desacoplados. Había tipos desacoplados en Web3.js v1. Y debido a eso, se informaron muchos problemas de TypeScript por parte de la comunidad. Y si observo los registros, puedo ver que se informaron más de 60 problemas de tipos incorrectos o inexactos, lo cual fue uno de los mayores desafíos para nosotros. Y desde la perspectiva de la comunidad, el tamaño de compilación se convirtió en un cuello de botella. Y para el desarrollo, debido a que esta biblioteca se empaquetaba en un archivo único enorme y ese archivo de paquete se empaquetaba en cada desarrollo. Y esto estaba causando muchos problemas durante el desarrollo por parte de la comunidad también. Y en un espectro más amplio, la comunidad de JavaScript y la cadena de herramientas han avanzado mucho. Se han introducido muchas nuevas frameworks, nuevos patrones y nuevas herramientas en la comunidad y en el ecosistema, pero Web3 JS no pudo avanzar debido a esos desafíos que mencioné anteriormente.

Entonces, ¿vamos a quedarnos con la versión uno, o vamos a hacer algo al respecto? A pesar de los dos intentos o intentos fallidos, todavía tenemos la esperanza de presentar las mejoras actuales en la biblioteca y dicho esto, esta es la nueva era para Web3 JS, la versión cuatro, y esto no es una especulación. Ha estado en desarrollo durante más de un año. Y casi estamos listos para lanzar, esperamos que se lance este mes, pero ya puedes explorarlo directamente desde GitHub. La versión cuatro será un hito enorme para la vida útil de Web3 JS y abordará muchas cosas que hemos estado discutiendo en la comunidad y todas esas personas han estado abordando esos temas. Por lo tanto, la versión cuatro vendrá con soporte nativo de TypeScript y tendrá un tamaño reducido. Hemos desacoplado mucho código y se ha reducido la complejidad ya que estamos haciendo esta reescritura completamente desde cero, por lo que la legibilidad del código ha mejorado mucho y tratamos de hacerlo extensible para que en el futuro podamos agregar más características fácilmente e incluso la comunidad pueda extender la biblioteca para su propio uso, y nos enfocamos en la cobertura de pruebas para la versión cuatro y esperamos que una vez, en este momento estamos trabajando en escribir las pruebas del sistema para la biblioteca, y dentro de un mes, cuando lancemos la primera versión alfa para la v4, tendrá una cobertura de pruebas mucho mayor en comparación con la versión uno y en comparación con cualquier otra biblioteca competitiva en el ecosistema. Entonces, la pregunta es, ¿todos estos objetivos que definimos, la reescritura para la versión cuatro, son suficientes o los hemos logrado? Sí, hemos logrado todos estos objetivos y lo más importante es que hemos logrado todos estos objetivos con una API de Parity v1. Por lo tanto, no tienes que preocuparte de que tus proyectos se rompan. Puede haber cambios leves que documentaremos y compartiremos con la comunidad en el registro de cambios o en la guía de migración, pero esos cambios

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Juegos Web 3: Qué es y por qué es importante
JS GameDev Summit 2022JS GameDev Summit 2022
36 min
Juegos Web 3: Qué es y por qué es importante
Web3 gaming enables decentralized identity and finance, allowing game developers to bypass centralized platforms. It is driven by wallets, ERC20 tokens, and NFTs. Web3 games focus on collaborative world-building, ownership, and open-source collaboration. The challenge is achieving decentralization while addressing economic and technological limitations. Web3 aims to redefine the gaming industry by using economic tools and exploring new genres like RPG and RTS games.
Pruebas E2E para Aplicaciones Web3
TestJS Summit 2022TestJS Summit 2022
21 min
Pruebas E2E para Aplicaciones Web3
Top Content
In this Talk, Rafaela discusses Web3, its decentralized and token-based model, and the architecture based on smart contracts. Testing Web3 poses challenges due to the need for third-party providers like MetaMask. Approaches such as mocking the Web3 flow and using end-to-end testing tools like Taskafar are suggested. The trade-offs in Web3 testing include test speed and dependency on third-party apps. Balancing unit, integration, and end-to-end tasks is crucial for a robust testing strategy.
Guía para desarrolladores frontend sobre Web3
React Summit 2022React Summit 2022
22 min
Guía para desarrolladores frontend sobre Web3
This talk covers an introduction to Web 3 and smart contracts, including deployment and bytecode compilation. It also discusses interacting with blockchain wallets, using RPC endpoints and block explorers, and accessing smart contract data. The talk emphasizes the use of ABIs and JavaScript libraries like ethers for interacting with smart contracts. It mentions the shift in mindset from HTTP requests to using ABI code and libraries for front-end development in Web 3. The talk concludes by mentioning Web3UI and tools like PolygonScan and Etherscan for building on the blockchain.
Construyendo Dapps con React
React Advanced Conference 2021React Advanced Conference 2021
30 min
Construyendo Dapps con React
The Talk discusses building decentralized applications (DApps) with React and explores the benefits of smart contract technology. It highlights the characteristics and infrastructure of Web 3 applications, including decentralized indexing, off-chain data storage, and decentralized file storage. The Talk also covers identity in Web 3, with a focus on self-sovereign identity and the use of blockchain for identity verification. The process of building a DApp with React and Hard Hat is explained, along with deploying contracts and interacting with them. Overall, the Talk provides insights into the world of DApps and the technologies involved.
Reaccionando a Web3
React Summit 2022React Summit 2022
6 min
Reaccionando a Web3
Decentology provides developer tools for building React component-based blockchain applications without writing blockchain code. Web3 development is beneficial for applications with game engines, microtransactions, mobile payments, mediator contracts, business logic applications, simple authentication, and payments. They advocate for open source and allow developers to add a small royalty fee to paid transactions.
Construye dApps de Blockchain usando JavaScript
JSNation 2022JSNation 2022
21 min
Construye dApps de Blockchain usando JavaScript
Hello, my name is Russ Fustino, and welcome to Build Blockchain DApps Using JavaScript. We'll cover Algorand blockchain, layer one, setup your development environment, creating a simple DApp, verification, and UI controls from pipeline. Blockchain tools are now accessible to anyone for creating liquidity pooling, staking, and more. The Italian Society of Authors and Publishers is using NFTs on the Algorand blockchain to identify copyrights. Algorand accounts, ASAs, Atomic Transactions, Algorand Smart Contracts, and reporting with Indexer are part of the solution. Creating NFTs can be done using visual tools like Algodesk.io and wallets like Algosigner and MyAlgoWallet. Algorand atomic transfers guarantee the exchange of goods and facilitate decentralized applications. Smart signatures approve spending transactions and smart contracts facilitate global and local storage. DApp architecture includes a UI front end, payment transactions between accounts, asset transactions for NFTs and Fungible Tokens, and application calls for smart contracts. Various SDKs and tools are available, such as AlgoDesk.io, Algorand Studio, and Algodia. Reach is a high-level language and compiler for deploying DApps to the blockchain. Verification and audits play a crucial role in preventing locked away tokens. The Pipeline UI offers controls and components for easy integration into solutions.

Workshops on related topic

Masterclass Web3 - Construyendo Tu Primer Dapp
React Advanced Conference 2021React Advanced Conference 2021
145 min
Masterclass Web3 - Construyendo Tu Primer Dapp
Top Content
Featured WorkshopFree
Nader Dabit
Nader Dabit
En esta masterclass, aprenderás cómo construir tu primer dapp de pila completa en la blockchain de Ethereum, leyendo y escribiendo datos en la red, y conectando una aplicación de front end al contrato que has desplegado. Al final de la masterclass, entenderás cómo configurar un entorno de desarrollo de pila completa, ejecutar un nodo local e interactuar con cualquier contrato inteligente usando React, HardHat y Ethers.js.
Consulta de datos de blockchain con GraphQL
JSNation 2023JSNation 2023
64 min
Consulta de datos de blockchain con GraphQL
WorkshopFree
Simon Emanuel Schmid
Simon Emanuel Schmid
¿Curioso acerca de cómo funcionan los datos en el mundo de la blockchain? Únete a Simon en una sesión interesante sobre The Graph, el protocolo de indexación descentralizado que facilita a los desarrolladores de blockchain buscar y consultar datos de blockchain.
Tabla de contenidos:- Comprendiendo los datos de blockchain- Anatomía de un contrato inteligente- Indexando datos de blockchain con The Graph- Accediendo a datos en The Graph- Subgrafos recomendados- Resumen de la escritura de subgrafos
Cómo Convertir Criptomonedas con Microservicios GRPC en Node.js
JSNation 2023JSNation 2023
117 min
Cómo Convertir Criptomonedas con Microservicios GRPC en Node.js
Workshop
Alex Korzhikov
Andrew Reddikh
2 authors
El masterclass presenta los principios de arquitectura clave, patrones de diseño y tecnologías utilizadas para construir microservicios en el stack de Node.js. Cubre la teoría del marco de trabajo GRPC y el mecanismo de protocol buffers, así como técnicas y especificaciones para construir servicios aislados utilizando el enfoque de monorepo con lerna y yarn workspaces, TypeScript. El masterclass incluye una tarea práctica en vivo para crear una aplicación de conversión de moneda que sigue los paradigmas de microservicios. Es adecuado para desarrolladores que deseen aprender y practicar el patrón de microservicios GRPC con la plataforma Node.js.
Requisitos previos:- Buen entendimiento de JavaScript o TypeScript- Experiencia con Node.js y escribir aplicaciones de backend- Preinstalar Node.js, npm- Preinstalar el Compilador de Protocol Buffer- Preferimos usar VSCode para una mejor experiencia con JavaScript y TypeScript (otros IDE también son aceptables)
Cómo construir interfaces de usuario para contratos inteligentes
React Summit 2022React Summit 2022
134 min
Cómo construir interfaces de usuario para contratos inteligentes
Workshop
Rahat Chowdhury
Rahat Chowdhury
Existen muchos caminos que podemos tomar para convertirnos en desarrolladores de web3. No todos los caminos requieren aprender un lenguaje completamente nuevo y convertirse en desarrollador de contratos inteligentes. En este masterclass aprenderemos cómo construir nuestra propia interfaz de usuario React sobre cualquier contrato inteligente existente en la blockchain de Prueba de Participación de Polygon. Exploraremos una visión general básica de las blockchains y aprenderemos sobre las ventajas de construir en Polygon. También obtendremos una comprensión de qué son los contratos inteligentes, aprenderemos cómo encontrar los existentes y conoceremos herramientas que nos ayudarán a interactuar con ellos desde una aplicación React.
Aprende a Construir en WEB3 Como si Fuera WEB2
React Summit 2024React Summit 2024
83 min
Aprende a Construir en WEB3 Como si Fuera WEB2
Workshop
David Dal Busco
David Dal Busco
En esta masterclass, construiremos y desplegaremos una aplicación descentralizada desde cero y exploraremos sus características adicionales, todo ello minimizando la complejidad típicamente asociada con el aprendizaje de la tecnología blockchain.Al final de esta masterclass, espero que los asistentes no solo tengan una comprensión más clara del desarrollo blockchain, sino que también se den cuenta de que construir en este espacio puede ser sorprendentemente sencillo y agradable.Mi objetivo es compartir mi entusiasmo por el desarrollo de código abierto y el potencial de Web3.
Construye aplicaciones Web3 con Javascript
JSNation 2022JSNation 2022
49 min
Construye aplicaciones Web3 con Javascript
WorkshopFree
Shain Dholakiya
Shain Dholakiya
El masterclass está diseñado para ayudar a los desarrolladores Web2 a comenzar a construir para Web3 utilizando el Hyperverse. El Hyperverse es un mercado abierto de módulos inteligentes construidos por la comunidad, auditados y fáciles de descubrir. Nuestro objetivo es facilitar a los desarrolladores de JavaScript la construcción de aplicaciones Web3 sin escribir una sola línea de código de contrato inteligente. Piensa en 'npm para contratos inteligentes'.Aprende más sobre el Hyperverse aquí.Repasaremos todos los conceptos básicos de blockchain/crypto que necesitas saber para comenzar a construir en el Hyperverse, por lo que no necesitas tener ningún conocimiento previo sobre el espacio Web3. Solo necesitas tener experiencia en JavaScript.