Solana Web3.js versión 2.x: división de funciones y optimización del rendimiento
Solana Web3.js, como una biblioteca de JavaScript rica en funciones, lanzó oficialmente la versión 2.x en noviembre de este año. En comparación con la versión 1.x, la nueva versión presenta cambios significativos en la estructura y en la forma de implementación. Este artículo resumirá estos cambios principales para ayudar a los desarrolladores a prepararse para la migración futura.
Comparación de versiones
Las principales características de la versión 1.x son su simplicidad y facilidad de uso. Solo incluye un paquete @solana/web3.js, que utiliza un diseño basado en clases y encapsula una gran cantidad de operaciones comunes. Por ejemplo, la clase Connection proporciona decenas de métodos que cubren casi todas las funcionalidades que los desarrolladores necesitan. Sin embargo, este diseño también trae algunos problemas, como el gran tamaño de la biblioteca de código, ya que los dispositivos de los usuarios necesitan descargar una gran cantidad de código que puede que no se use.
La versión 2.x adoptó una estrategia diferente. El equipo de desarrollo dividió el repositorio de código en varios módulos pequeños, como @solana/accounts, @solana/codecs, @solana/rpc, entre otros. La nueva versión abandonó la implementación basada en clases y adoptó un enfoque de función única, lo que facilita la optimización durante la construcción del código JavaScript. El código no utilizado será eliminado y no se descargará en los dispositivos de los usuarios. Según estadísticas oficiales, las DApps que utilizan la nueva versión suelen obtener una optimización de volumen del 30%, y si solo se utilizan unas pocas funciones, el porcentaje de optimización puede ser aún mayor.
Otra característica importante de la versión 2.x es la cero dependencia. Teniendo en cuenta los recientes ataques a la cadena de suministro en las versiones 1.95.5 y 1.95.6, reducir las dependencias externas puede disminuir considerablemente el riesgo de seguridad. La nueva versión utiliza más funciones nativas y elimina la introducción de dependencias externas y Polyfills.
Puntos de cambio importantes
conexión
La versión 2.x adopta un enfoque más funcional para manejar las conexiones. Ya no se utiliza la clase Connection, sino que se crea un emisor de solicitudes configurando la dirección del RPC. Por ejemplo, al enviar una transacción, se inicia automáticamente una solicitud HTTPS y se establece una conexión WSS para suscribirse al estado de la transacción.
par de claves
El manejo relacionado con las claves públicas y privadas también ha cambiado. Las clases Keypair y PublicKey, comúnmente utilizadas en la versión 1.x, han sido reemplazadas por algunas funciones. Por ejemplo, ahora se utiliza await generateKeyPair() para generar pares de claves, en lugar de la anterior Keypair.generate(). La nueva implementación aprovecha la API Web Crypto de JavaScript, utilizando la implementación nativa de Ed25519, lo que ha llevado a que algunos métodos se conviertan en asincrónicos.
enviar transacción
La versión 2.x ya no utiliza las clases Transaction y VersionedTransaction. Los métodos relacionados con el System Program también deben ser importados desde otros lugares. Por ejemplo, la instrucción transfer ahora necesita llamar a la función getTransferSolInstruction en @solana-program/system.
La nueva versión ofrece la forma pipe, comúnmente utilizada en la programación funcional. Los desarrolladores pueden utilizar la función pipe para implementar la funcionalidad de transferencia que existía en la versión 1.x. Aunque la cantidad de código ha aumentado, se ha proporcionado una mayor capacidad de personalización.
Soporte para React
Es importante destacar que el proyecto @solana/web3.js también incluye una biblioteca llamada @solana/react, que ofrece algunos Hooks de React y cuenta con funciones integradas como signIn.
Resumen
La publicación de la versión 2.x de Solana Web3.js muestra el compromiso del equipo de desarrollo con la mejora continua. La nueva versión ofrece a los desarrolladores una forma más eficiente, flexible y personalizable de interactuar con la red Solana, lo que promete impulsar el desarrollo y la aplicación adicional de la plataforma. Aunque actualmente muchos proyectos aún no se han migrado a la nueva versión, entender estos cambios ayudará a los desarrolladores a prepararse para la conversión futura.
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
11 me gusta
Recompensa
11
7
Compartir
Comentar
0/400
ForumLurker
· hace6h
Este paquete aún necesita ser investigado por un tiempo.
Ver originalesResponder0
DiamondHands
· hace10h
¿Puede ser más rápido si es más pequeño?
Ver originalesResponder0
StablecoinArbitrageur
· 07-30 14:36
*ajusta las gafas* hmm... basado en mi análisis de métricas de rendimiento, dividir en módulos debería reducir la latencia en ~47 puntos base
Ver originalesResponder0
MissingSats
· 07-30 14:34
Finalmente ha llegado la actualización, he estado esperando un año.
Ver originalesResponder0
LucidSleepwalker
· 07-30 14:34
¡Llegó la 2.x! No puedo aprender más.
Ver originalesResponder0
DuckFluff
· 07-30 14:27
¡Ja, aún estás usando la versión 1.x, mejor actualízate!
Ver originalesResponder0
BrokenYield
· 07-30 14:15
finalmente algo de gestión de riesgos en sol... les tomó bastante tiempo smh
Solana Web3.js 2.x: reestructuración modular y mejora del rendimiento
Solana Web3.js versión 2.x: división de funciones y optimización del rendimiento
Solana Web3.js, como una biblioteca de JavaScript rica en funciones, lanzó oficialmente la versión 2.x en noviembre de este año. En comparación con la versión 1.x, la nueva versión presenta cambios significativos en la estructura y en la forma de implementación. Este artículo resumirá estos cambios principales para ayudar a los desarrolladores a prepararse para la migración futura.
Comparación de versiones
Las principales características de la versión 1.x son su simplicidad y facilidad de uso. Solo incluye un paquete @solana/web3.js, que utiliza un diseño basado en clases y encapsula una gran cantidad de operaciones comunes. Por ejemplo, la clase Connection proporciona decenas de métodos que cubren casi todas las funcionalidades que los desarrolladores necesitan. Sin embargo, este diseño también trae algunos problemas, como el gran tamaño de la biblioteca de código, ya que los dispositivos de los usuarios necesitan descargar una gran cantidad de código que puede que no se use.
La versión 2.x adoptó una estrategia diferente. El equipo de desarrollo dividió el repositorio de código en varios módulos pequeños, como @solana/accounts, @solana/codecs, @solana/rpc, entre otros. La nueva versión abandonó la implementación basada en clases y adoptó un enfoque de función única, lo que facilita la optimización durante la construcción del código JavaScript. El código no utilizado será eliminado y no se descargará en los dispositivos de los usuarios. Según estadísticas oficiales, las DApps que utilizan la nueva versión suelen obtener una optimización de volumen del 30%, y si solo se utilizan unas pocas funciones, el porcentaje de optimización puede ser aún mayor.
Otra característica importante de la versión 2.x es la cero dependencia. Teniendo en cuenta los recientes ataques a la cadena de suministro en las versiones 1.95.5 y 1.95.6, reducir las dependencias externas puede disminuir considerablemente el riesgo de seguridad. La nueva versión utiliza más funciones nativas y elimina la introducción de dependencias externas y Polyfills.
Puntos de cambio importantes
conexión
La versión 2.x adopta un enfoque más funcional para manejar las conexiones. Ya no se utiliza la clase Connection, sino que se crea un emisor de solicitudes configurando la dirección del RPC. Por ejemplo, al enviar una transacción, se inicia automáticamente una solicitud HTTPS y se establece una conexión WSS para suscribirse al estado de la transacción.
par de claves
El manejo relacionado con las claves públicas y privadas también ha cambiado. Las clases Keypair y PublicKey, comúnmente utilizadas en la versión 1.x, han sido reemplazadas por algunas funciones. Por ejemplo, ahora se utiliza await generateKeyPair() para generar pares de claves, en lugar de la anterior Keypair.generate(). La nueva implementación aprovecha la API Web Crypto de JavaScript, utilizando la implementación nativa de Ed25519, lo que ha llevado a que algunos métodos se conviertan en asincrónicos.
enviar transacción
La versión 2.x ya no utiliza las clases Transaction y VersionedTransaction. Los métodos relacionados con el System Program también deben ser importados desde otros lugares. Por ejemplo, la instrucción transfer ahora necesita llamar a la función getTransferSolInstruction en @solana-program/system.
La nueva versión ofrece la forma pipe, comúnmente utilizada en la programación funcional. Los desarrolladores pueden utilizar la función pipe para implementar la funcionalidad de transferencia que existía en la versión 1.x. Aunque la cantidad de código ha aumentado, se ha proporcionado una mayor capacidad de personalización.
Soporte para React
Es importante destacar que el proyecto @solana/web3.js también incluye una biblioteca llamada @solana/react, que ofrece algunos Hooks de React y cuenta con funciones integradas como signIn.
Resumen
La publicación de la versión 2.x de Solana Web3.js muestra el compromiso del equipo de desarrollo con la mejora continua. La nueva versión ofrece a los desarrolladores una forma más eficiente, flexible y personalizable de interactuar con la red Solana, lo que promete impulsar el desarrollo y la aplicación adicional de la plataforma. Aunque actualmente muchos proyectos aún no se han migrado a la nueva versión, entender estos cambios ayudará a los desarrolladores a prepararse para la conversión futura.