Actualización de la versión 2.x de Solana Web3.js: abrazando la programación funcional
Solana Web3.js, como una biblioteca de JavaScript rica en funciones, lanzó la versión 2.x en noviembre de este año. En comparación con la 1.x, la nueva versión trae cambios significativos. Aunque actualmente el uso de la versión 2.x no es alto y muchas bibliotecas ampliamente utilizadas aún no se han migrado, entender estos cambios es crucial para el desarrollo y el trabajo de migración futuros.
Comparación de versiones
El uso de la versión 1.x es relativamente simple, todas las funciones se concentran en un solo paquete @solana/web3.js, que encapsula una gran cantidad de operaciones comunes basadas en un diseño orientado a clases. Por ejemplo, la clase Connection proporciona decenas de métodos que abarcan casi todas las funcionalidades necesarias para los desarrolladores. Sin embargo, este diseño también conlleva algunos problemas, como el tamaño excesivo de la biblioteca, ya que los dispositivos de los usuarios necesitan descargar toda la biblioteca, incluso si solo utilizan una pequeña parte de sus funciones.
La versión 2.x adopta un diseño modular, dividiendo el repositorio de código en múltiples módulos pequeños, como @solana/accounts, @solana/codecs, @solana/rpc, @solana/signers, @solana/transactions, etc. La nueva versión abandona la implementación basada en clases y opta por un enfoque de función única, lo que beneficia la optimización durante la construcción del código JavaScript. El código no utilizado se eliminará y no se descargará en los dispositivos de los usuarios. Según datos oficiales, las aplicaciones que utilizan la nueva versión suelen obtener una optimización de volumen del 30%; si solo se utilizan unas pocas funciones, la proporción de optimización puede ser aún mayor.
Otra característica importante de la versión 2.x es la ausencia de dependencias. 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 ayuda a mejorar la seguridad. El equipo de desarrollo decidió utilizar más funciones nativas y eliminar la introducción de dependencias externas y polyfills.
Puntos de cambio importantes
conectar
La versión 2.x ha adoptado un enfoque más funcional para manejar las conexiones. Ya no se utiliza la clase Connection, sino que se crea un emisor de solicitudes a través de la configuración de la dirección de solicitud RPC. Por ejemplo, al enviar una transacción, se inicia automáticamente una solicitud HTTPS y se establece una conexión WSS, se suscribe al estado de la transacción y se devuelve el hash de la transacción una vez confirmada.
par de claves
En la versión 2.x, las clases Keypair y PublicKey han sido reemplazadas por una serie de funciones. Por ejemplo, ahora se utiliza await generateKeyPair() para generar pares de claves, en lugar de Keypair.generate(). La nueva implementación aprovecha la API Web Crypto de JavaScript, utilizando una implementación nativa de Ed25519, lo que hace que muchos métodos sean asincrónicos.
enviar transacción
La versión 2.x ya no utiliza las clases Transaction y VersionedTransaction. Los métodos relacionados con System Program también han sido eliminados y deben ser importados de otros paquetes. Por ejemplo, la instrucción de transferencia ahora requiere llamar a la función getTransferSolInstruction en @solana-program/system.
La nueva versión ofrece una forma de pipe comúnmente utilizada en la programación funcional. Las transacciones ya no se inician a través de Connection, sino que se generan funciones específicas a través del RPC Provider definido para iniciar transacciones. Aunque esta forma aumenta ligeramente la cantidad de código, proporciona una mayor personalización.
React soporta
El proyecto @solana/web3.js también incluye una biblioteca llamada @solana/react, que ofrece algunos Hooks de React y funciones integradas como signIn.
Resumen
La publicación de la versión 2.x de @solana/web3.js muestra el compromiso del equipo de Solana con el desarrollo y 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 se espera impulse la adopción y el desarrollo de la plataforma. Aunque actualmente se encuentra en una etapa temprana, con el tiempo, se espera que más proyectos se migren a esta nueva versión.
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.
10 me gusta
Recompensa
10
5
Republicar
Compartir
Comentar
0/400
DiamondHands
· 07-27 11:54
¡La v2 de sol finalmente ha llegado!
Ver originalesResponder0
GasGrillMaster
· 07-26 04:37
¿Completamente sin dependencias? Quiero verlo.
Ver originalesResponder0
GweiObserver
· 07-24 21:40
Solana finalmente ha entrado en el camino.
Ver originalesResponder0
ThreeHornBlasts
· 07-24 21:22
¡Por fin Solana ha dado la talla!
Ver originalesResponder0
PretendingSerious
· 07-24 21:20
Esta actualización finalmente ha llegado, has sabido elegir.
Actualización de Solana Web3.js 2.x: el diseño modular mejora el rendimiento y la seguridad.
Actualización de la versión 2.x de Solana Web3.js: abrazando la programación funcional
Solana Web3.js, como una biblioteca de JavaScript rica en funciones, lanzó la versión 2.x en noviembre de este año. En comparación con la 1.x, la nueva versión trae cambios significativos. Aunque actualmente el uso de la versión 2.x no es alto y muchas bibliotecas ampliamente utilizadas aún no se han migrado, entender estos cambios es crucial para el desarrollo y el trabajo de migración futuros.
Comparación de versiones
El uso de la versión 1.x es relativamente simple, todas las funciones se concentran en un solo paquete @solana/web3.js, que encapsula una gran cantidad de operaciones comunes basadas en un diseño orientado a clases. Por ejemplo, la clase Connection proporciona decenas de métodos que abarcan casi todas las funcionalidades necesarias para los desarrolladores. Sin embargo, este diseño también conlleva algunos problemas, como el tamaño excesivo de la biblioteca, ya que los dispositivos de los usuarios necesitan descargar toda la biblioteca, incluso si solo utilizan una pequeña parte de sus funciones.
La versión 2.x adopta un diseño modular, dividiendo el repositorio de código en múltiples módulos pequeños, como @solana/accounts, @solana/codecs, @solana/rpc, @solana/signers, @solana/transactions, etc. La nueva versión abandona la implementación basada en clases y opta por un enfoque de función única, lo que beneficia la optimización durante la construcción del código JavaScript. El código no utilizado se eliminará y no se descargará en los dispositivos de los usuarios. Según datos oficiales, las aplicaciones que utilizan la nueva versión suelen obtener una optimización de volumen del 30%; si solo se utilizan unas pocas funciones, la proporción de optimización puede ser aún mayor.
Otra característica importante de la versión 2.x es la ausencia de dependencias. 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 ayuda a mejorar la seguridad. El equipo de desarrollo decidió utilizar más funciones nativas y eliminar la introducción de dependencias externas y polyfills.
Puntos de cambio importantes
conectar
La versión 2.x ha adoptado un enfoque más funcional para manejar las conexiones. Ya no se utiliza la clase Connection, sino que se crea un emisor de solicitudes a través de la configuración de la dirección de solicitud RPC. Por ejemplo, al enviar una transacción, se inicia automáticamente una solicitud HTTPS y se establece una conexión WSS, se suscribe al estado de la transacción y se devuelve el hash de la transacción una vez confirmada.
par de claves
En la versión 2.x, las clases Keypair y PublicKey han sido reemplazadas por una serie de funciones. Por ejemplo, ahora se utiliza await generateKeyPair() para generar pares de claves, en lugar de Keypair.generate(). La nueva implementación aprovecha la API Web Crypto de JavaScript, utilizando una implementación nativa de Ed25519, lo que hace que muchos métodos sean asincrónicos.
enviar transacción
La versión 2.x ya no utiliza las clases Transaction y VersionedTransaction. Los métodos relacionados con System Program también han sido eliminados y deben ser importados de otros paquetes. Por ejemplo, la instrucción de transferencia ahora requiere llamar a la función getTransferSolInstruction en @solana-program/system.
La nueva versión ofrece una forma de pipe comúnmente utilizada en la programación funcional. Las transacciones ya no se inician a través de Connection, sino que se generan funciones específicas a través del RPC Provider definido para iniciar transacciones. Aunque esta forma aumenta ligeramente la cantidad de código, proporciona una mayor personalización.
React soporta
El proyecto @solana/web3.js también incluye una biblioteca llamada @solana/react, que ofrece algunos Hooks de React y funciones integradas como signIn.
Resumen
La publicación de la versión 2.x de @solana/web3.js muestra el compromiso del equipo de Solana con el desarrollo y 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 se espera impulse la adopción y el desarrollo de la plataforma. Aunque actualmente se encuentra en una etapa temprana, con el tiempo, se espera que más proyectos se migren a esta nueva versión.