Publication de la version 2.x de Solana Web3.js : la programmation fonctionnelle redéfinit l'expérience de développement

robot
Création du résumé en cours

Solana Web3.js 2.x : La nouvelle ère de la programmation fonctionnelle

La version 2.x de Solana Web3.js a été publiée en novembre 2023. Par rapport à la version 1.x, la nouvelle version apporte des changements significatifs. Cet article résumera ses principales améliorations.

Bien que la version 2.x vient d'être publiée et que son taux d'utilisation soit encore faible, de nombreuses bibliothèques populaires n'ayant pas encore été migrées, comprendre ces changements peut aider à se préparer pour les futures mises à jour.

Web3 Nouveaux utilisateurs Série : Mise à niveau maintenant @solana/web3.js 2.x pour activer la programmation fonctionnelle

Comparaison des versions

La version 1.x est relativement simple à utiliser, ne contenant qu'un seul paquet : @solana/web3.js, qui encapsule de nombreuses opérations courantes dans un design orienté objet. Par exemple, la classe Connection propose des dizaines de méthodes, couvrant presque toutes les fonctionnalités nécessaires aux développeurs.

Cependant, ce design pose également quelques problèmes. Bien que les fonctionnalités réellement utilisées par les développeurs puissent être rares, l'ensemble du code source est téléchargé sur les appareils des utilisateurs, ce qui entraîne un temps de chargement plus long.

La version 2.x adopte une approche différente. L'équipe officielle a scindé l'ancienne base de code en plusieurs petits modules, tels que @solana/accounts, @solana/codecs, @solana/rpc, etc. La nouvelle version abandonne l'implémentation basée sur des classes et adopte davantage des fonctions uniques, ce qui favorise l'optimisation lors de la construction du code JavaScript. Le code inutilisé sera supprimé et ne sera pas téléchargé sur les appareils des utilisateurs. Selon les données officielles, les DApps utilisant la nouvelle version peuvent généralement réaliser une optimisation de taille de 30 %, et pour les applications avec moins de fonctionnalités, le taux d'optimisation peut être encore plus élevé.

Ce changement impose des exigences plus élevées en matière de qualité de la documentation pour l'équipe Solana. Comment permettre aux développeurs de trouver rapidement les fonctionnalités requises est devenu un problème clé. Actuellement, la sémantique des noms de paquets est relativement bonne, permettant de comprendre en gros leur utilité à partir de leur nom, ce qui réduit dans une certaine mesure la difficulté de migration pour les développeurs.

Cependant, en raison de sa récente publication, de nombreux projets n'ont pas encore migré. Certains exemples et descriptions de documents ne sont pas suffisamment complets, ce qui peut causer un certain confusion aux développeurs.

Une autre caractéristique importante de la version 2.x est l'absence de dépendances. Cela est essentiel pour améliorer la sécurité, surtout après l'attaque de la chaîne d'approvisionnement sur les versions 1.95.5 et 1.95.6 de @solana/web3.js début décembre 2023. La nouvelle version utilise davantage de fonctionnalités natives, supprimant les dépendances externes et l'introduction de Polyfills, réduisant ainsi les risques de sécurité.

Changements principaux

méthode de connexion

La version 2.x adopte une approche plus fonctionnelle pour gérer les connexions. La classe Connection n'est plus utilisée, mais les émetteurs de requêtes sont créés en configurant l'adresse de la requête RPC. Par exemple, lors de l'envoi d'une transaction, une requête HTTPS est automatiquement initiée et une connexion WSS est établie, s'abonnant à l'état de la transaction et retournant le hachage de la transaction après confirmation.

Gestion des paires de clés

Les opérations liées aux clés publiques et privées ont également subi des changements importants. Les classes Keypair et PublicKey, couramment utilisées dans la version 1.x, n'existent plus, remplacées par une série de fonctions. Par exemple, vous utilisez maintenant await generateKeyPair() pour générer une paire de clés, au lieu de l'ancienne méthode Keypair.generate().

La nouvelle implémentation utilise l'API Web Crypto de JavaScript et repose sur une implémentation native d'Ed25519. Cela a rendu certaines opérations asynchrones, mais pour les développeurs modernes de JavaScript familiers avec les Promises, ce n'est pas un gros problème.

traitement des transactions

Dans la version 2.x, les classes Transaction et VersionedTransaction n'existent plus. Les méthodes relatives au System Program doivent également être importées d'autres sources. Par exemple, les instructions de transfert nécessitent désormais d'appeler la fonction getTransferSolInstruction du module @solana-program/system.

La nouvelle version propose une forme de pipe couramment utilisée dans la programmation fonctionnelle. Les transactions ne sont plus initiées par la connexion, mais plutôt par la génération de fonctions spécifiques à partir d'un fournisseur RPC défini. Bien que cette méthode augmente légèrement la quantité de code, elle offre une personnalisation plus forte.

React prend en charge

Il convient de noter que le projet @solana/web3.js inclut également une bibliothèque appelée @solana/react, qui fournit quelques hooks React et intègre des fonctionnalités telles que signIn.

Conclusion

La publication de la version 2.x de @solana/web3.js témoigne de la détermination de l'équipe Solana à s'améliorer continuellement. La nouvelle version offre aux développeurs un moyen efficace, flexible et personnalisable d'interagir avec le réseau Solana, ce qui devrait favoriser le développement et l'application de la plate-forme.

Série pour débutants Web3 : mise à jour maintenant @solana/web3.js 2.x pour activer la programmation fonctionnelle

Voir l'original
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.
  • Récompense
  • 3
  • Partager
Commentaire
0/400
SoliditySlayervip
· Il y a 12h
Combien de TPS cela peut-il augmenter ?
Voir l'originalRépondre0
GateUser-aa7df71evip
· Il y a 13h
solana cette vague va To the moon, non ?
Voir l'originalRépondre0
GateUser-e87b21eevip
· Il y a 13h
Après la mise à jour, le développement est devenu facile !
Voir l'originalRépondre0
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)