Lanzamiento de la versión 2.x de Solana Web3.js: la programación funcional redefine la experiencia de desarrollo

robot
Generación de resúmenes en curso

Solana Web3.js 2.x: La nueva era de la programación funcional

Solana Web3.js lanzó la versión 2.x en noviembre de 2023, que trae cambios significativos en comparación con la versión 1.x. Este artículo resumirá sus principales mejoras.

Aunque la versión 2.x acaba de ser lanzada y la tasa de uso aún no es alta, muchas bibliotecas populares aún no han migrado, pero entender estos cambios ayudará a prepararse para futuras actualizaciones.

Serie para principiantes de Web3: Actualiza ahora @solana/web3.js 2.x para habilitar la programación funcional

Comparación de versiones

La versión 1.x es relativamente sencilla de usar, ya que solo incluye un 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 cubren casi todas las funcionalidades que los desarrolladores necesitan.

Sin embargo, este diseño también trae algunos problemas. Aunque las funciones que los desarrolladores realmente utilizan pueden ser pocas, toda la biblioteca de código se descarga en el dispositivo del usuario, lo que provoca un aumento en el tiempo de carga.

La versión 2.x adoptó un enfoque diferente. El equipo oficial dividió el código existente en varios módulos pequeños, como @solana/accounts, @solana/codecs, @solana/rpc, etc. La nueva versión abandonó la implementación basada en clases y adoptó más funciones individuales, lo que favorece 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 los datos oficiales, las DApps que utilizan la nueva versión generalmente pueden lograr una optimización del tamaño del 30%, y para aplicaciones con menos funcionalidades, la proporción de optimización puede ser aún mayor.

Este cambio ha planteado mayores exigencias sobre la calidad de la documentación del equipo de Solana. Cómo permitir que los desarrolladores encuentren rápidamente las funciones que necesitan se ha convertido en un problema clave. Actualmente, la semántica de los nombres de los paquetes es bastante buena, ya que se puede entender su propósito a partir de sus nombres, lo que, en cierta medida, reduce la dificultad de migración para los desarrolladores.

Sin embargo, debido a que acaba de ser lanzado, muchos proyectos aún no se han migrado. Algunos ejemplos y descripciones de la documentación también no son lo suficientemente completos, lo que podría causar cierta confusión a los desarrolladores.

Otra característica importante de la versión 2.x es la cero dependencia. Esto es crucial para mejorar la seguridad, especialmente después de que las versiones 1.95.5 y 1.95.6 de @solana/web3.js sufrieron un ataque de cadena de suministro a principios de diciembre de 2023. La nueva versión utiliza más funciones nativas, eliminando la introducción de dependencias externas y Polyfills, lo que reduce el riesgo de seguridad.

Cambios principales

método de conexión

La versión 2.x utiliza 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 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 que se confirma.

gestión de claves

Las operaciones relacionadas con las claves públicas y privadas también han cambiado significativamente. Las clases Keypair y PublicKey, que se utilizaban en la versión 1.x, ya no existen, siendo reemplazadas por una serie de funciones. Por ejemplo, ahora se utiliza await generateKeyPair() para generar un par de claves, en lugar de la anterior Keypair.generate().

La nueva implementación utiliza la API Web Crypto de JavaScript y utiliza una implementación nativa de Ed25519. Esto ha hecho que algunas operaciones se vuelvan asíncronas, pero para los desarrolladores modernos de JavaScript que están familiarizados con Promesas, esto no es un gran problema.

procesamiento de transacciones

En la versión 2.x, ya no existen las clases Transaction y VersionedTransaction. Los métodos relacionados con el System Program también deben ser importados de otros lugares. Por ejemplo, la instrucción de transferencia ahora requiere 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. Las transacciones ya no se inician a través de Connection, sino que se generan funciones específicas mediante el RPC Provider definido para iniciar las transacciones. Aunque esta forma aumenta ligeramente la cantidad de código, proporciona una mayor personalización.

Soporte de React

Es importante señalar que el proyecto @solana/web3.js también incluye una biblioteca llamada @solana/react, que proporciona algunos hooks de React y funciones integradas como signIn.

Conclusión

La publicación de la versión 2.x de @solana/web3.js demuestra la determinación del equipo de Solana para seguir mejorando. La nueva versión ofrece a los desarrolladores una forma eficiente, flexible y personalizable de interactuar con la red de Solana, lo que se espera impulse el desarrollo y la aplicación del plataforma.

Serie para principiantes de Web3: Actualiza ahora @solana/web3.js 2.x para habilitar la programación funcional

Ver originales
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Recompensa
  • 3
  • Compartir
Comentar
0/400
SoliditySlayervip
· hace12h
¿Cuánto puede aumentar el tps?
Ver originalesResponder0
GateUser-aa7df71evip
· hace12h
solana esta vez va a To the moon ¿verdad?
Ver originalesResponder0
GateUser-e87b21eevip
· hace12h
¡Desarrollar es más fácil después de la actualización!
Ver originalesResponder0
  • Anclado
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)