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.
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.
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.
15 J'aime
Récompense
15
3
Partager
Commentaire
0/400
SoliditySlayer
· Il y a 12h
Combien de TPS cela peut-il augmenter ?
Voir l'originalRépondre0
GateUser-aa7df71e
· Il y a 13h
solana cette vague va To the moon, non ?
Voir l'originalRépondre0
GateUser-e87b21ee
· Il y a 13h
Après la mise à jour, le développement est devenu facile !
Publication de la version 2.x de Solana Web3.js : la programmation fonctionnelle redéfinit l'expérience de développement
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.
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.