Web3.js version 2.x : un nouveau chapitre pour le développement Solana
La bibliothèque Solana Web3.js a officiellement publié sa version 2.x en novembre de cette année. Par rapport à la version 1.x, la nouvelle version apporte des changements significatifs. Cet article résumera ses principales mises à jour pour préparer les développeurs à un futur travail de migration.
Comparaison des versions
La bibliothèque Web3.js version 1.x est relativement simple à utiliser, toutes les fonctionnalités étant concentrées dans un seul package : @solana/web3.js. Elle est basée sur un design orienté objet et encapsule de nombreuses opérations courantes, comme la classe Connection qui contient des dizaines de méthodes, couvrant ainsi la plupart des fonctionnalités requises par les développeurs.
Cependant, cette conception entraîne également certains problèmes. Même si les développeurs n'utilisent qu'une petite partie des fonctionnalités, l'ensemble de la bibliothèque de code sera téléchargé sur l'appareil de l'utilisateur, ce qui peut entraîner des temps de chargement plus longs.
La version 2.x adopte une stratégie différente. L'équipe de développement a divisé l'ancienne base de code en plusieurs petits modules, tels que @solana/accounts, @solana/codecs, @solana/rpc, @solana/signers et @solana/transactions. La nouvelle version abandonne l'implémentation basée sur des classes et utilise davantage une approche fonctionnelle, ce qui aide à l'optimisation lors de la construction du code JavaScript. Le code non utilisé sera supprimé et ne sera pas téléchargé sur les appareils des utilisateurs. Selon les statistiques officielles, les DApps utilisant la nouvelle version peuvent généralement bénéficier d'une optimisation de taille de 30 %, et si seules quelques fonctionnalités sont utilisées, le taux d'optimisation peut être encore plus élevé.
Une autre caractéristique importante de la version 2.x est l'absence de dépendances. Compte tenu des récentes attaques de la chaîne d'approvisionnement sur les versions 1.95.5 et 1.95.6, la réduction des dépendances externes peut considérablement diminuer les risques de sécurité. L'équipe de développement de Web3.js a décidé d'utiliser davantage les fonctionnalités natives, abandonnant l'introduction de dépendances externes et de polyfills.
Points de changement importants
connexion
La version 2.x adopte une approche plus fonctionnelle pour implémenter la fonctionnalité de connexion. Les développeurs peuvent maintenant créer un expéditeur de requêtes en configurant l'adresse de requête RPC, puis l'utiliser pour envoyer diverses requêtes.
paire de clés
Dans le traitement des paires de clés, la version 2.x a également des changements majeurs. Les anciennes classes Keypair et PublicKey n'existent plus, remplacées par de nouvelles fonctions. Par exemple, vous pouvez maintenant utiliser await generateKeyPair() pour générer une paire de clés, au lieu de l'ancienne méthode Keypair.generate(). La nouvelle mise en œuvre tire pleinement parti de l'API Web Crypto de JavaScript, utilisant une implémentation native d'Ed25519.
envoyer la transaction
Dans la version 2.x, les classes Transaction et VersionedTransaction ont été supprimées. Les méthodes liées au System Program ne sont plus fournies directement et doivent être importées d'ailleurs. Par exemple, l'instruction transfer nécessite maintenant d'appeler la fonction getTransferSolInstruction dans @solana-program/system.
La nouvelle version propose la forme pipe couramment utilisée en programmation fonctionnelle, permettant aux développeurs de combiner et d'exécuter des opérations de transaction de manière plus flexible.
React prend en charge
Il est à noter que le projet @solana/web3.js comprend également une bibliothèque appelée @solana/react, qui offre quelques hooks React, intégrant des fonctionnalités telles que signIn, fournissant ainsi plus de commodités aux développeurs React.
Résumé
La publication de la version 2.x de Solana Web3.js démontre la détermination de l'équipe Solana à améliorer et innover en continu. La nouvelle version offre aux développeurs un moyen plus efficace, flexible et personnalisable d'interagir avec le réseau Solana, ce qui devrait favoriser le développement et l'application ultérieurs de la plateforme.
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
Publication de la version 2.x de Solana Web3.js : un design modulaire pour améliorer l'efficacité du développement
Web3.js version 2.x : un nouveau chapitre pour le développement Solana
La bibliothèque Solana Web3.js a officiellement publié sa version 2.x en novembre de cette année. Par rapport à la version 1.x, la nouvelle version apporte des changements significatifs. Cet article résumera ses principales mises à jour pour préparer les développeurs à un futur travail de migration.
Comparaison des versions
La bibliothèque Web3.js version 1.x est relativement simple à utiliser, toutes les fonctionnalités étant concentrées dans un seul package : @solana/web3.js. Elle est basée sur un design orienté objet et encapsule de nombreuses opérations courantes, comme la classe Connection qui contient des dizaines de méthodes, couvrant ainsi la plupart des fonctionnalités requises par les développeurs.
Cependant, cette conception entraîne également certains problèmes. Même si les développeurs n'utilisent qu'une petite partie des fonctionnalités, l'ensemble de la bibliothèque de code sera téléchargé sur l'appareil de l'utilisateur, ce qui peut entraîner des temps de chargement plus longs.
La version 2.x adopte une stratégie différente. L'équipe de développement a divisé l'ancienne base de code en plusieurs petits modules, tels que @solana/accounts, @solana/codecs, @solana/rpc, @solana/signers et @solana/transactions. La nouvelle version abandonne l'implémentation basée sur des classes et utilise davantage une approche fonctionnelle, ce qui aide à l'optimisation lors de la construction du code JavaScript. Le code non utilisé sera supprimé et ne sera pas téléchargé sur les appareils des utilisateurs. Selon les statistiques officielles, les DApps utilisant la nouvelle version peuvent généralement bénéficier d'une optimisation de taille de 30 %, et si seules quelques fonctionnalités sont utilisées, le taux d'optimisation peut être encore plus élevé.
Une autre caractéristique importante de la version 2.x est l'absence de dépendances. Compte tenu des récentes attaques de la chaîne d'approvisionnement sur les versions 1.95.5 et 1.95.6, la réduction des dépendances externes peut considérablement diminuer les risques de sécurité. L'équipe de développement de Web3.js a décidé d'utiliser davantage les fonctionnalités natives, abandonnant l'introduction de dépendances externes et de polyfills.
Points de changement importants
connexion
La version 2.x adopte une approche plus fonctionnelle pour implémenter la fonctionnalité de connexion. Les développeurs peuvent maintenant créer un expéditeur de requêtes en configurant l'adresse de requête RPC, puis l'utiliser pour envoyer diverses requêtes.
paire de clés
Dans le traitement des paires de clés, la version 2.x a également des changements majeurs. Les anciennes classes Keypair et PublicKey n'existent plus, remplacées par de nouvelles fonctions. Par exemple, vous pouvez maintenant utiliser await generateKeyPair() pour générer une paire de clés, au lieu de l'ancienne méthode Keypair.generate(). La nouvelle mise en œuvre tire pleinement parti de l'API Web Crypto de JavaScript, utilisant une implémentation native d'Ed25519.
envoyer la transaction
Dans la version 2.x, les classes Transaction et VersionedTransaction ont été supprimées. Les méthodes liées au System Program ne sont plus fournies directement et doivent être importées d'ailleurs. Par exemple, l'instruction transfer nécessite maintenant d'appeler la fonction getTransferSolInstruction dans @solana-program/system.
La nouvelle version propose la forme pipe couramment utilisée en programmation fonctionnelle, permettant aux développeurs de combiner et d'exécuter des opérations de transaction de manière plus flexible.
React prend en charge
Il est à noter que le projet @solana/web3.js comprend également une bibliothèque appelée @solana/react, qui offre quelques hooks React, intégrant des fonctionnalités telles que signIn, fournissant ainsi plus de commodités aux développeurs React.
Résumé
La publication de la version 2.x de Solana Web3.js démontre la détermination de l'équipe Solana à améliorer et innover en continu. La nouvelle version offre aux développeurs un moyen plus efficace, flexible et personnalisable d'interagir avec le réseau Solana, ce qui devrait favoriser le développement et l'application ultérieurs de la plateforme.