# ソラナ Web3.js 2.xバージョン:機能豊富なJavaScriptライブラリの重大アップグレードソラナ Web3.jsは、機能豊富なJavaScriptライブラリとして、今年の11月に正式に2.xバージョンをリリースしました。1.xバージョンと比較して、新しいバージョンは構造や使用方法において顕著な変化があります。本記事では、これらの主要な変化を概説し、開発者が将来の移行に備える手助けをします。! [Web3スターターシリーズ:今すぐ@solana/web3.js 2.xをアップグレードして関数型プログラミングを有効にする](https://img-cdn.gateio.im/social/moments-0fa0888db1937c21f03f2851ec3bd095)## バージョン比較1.xバージョンのWeb3.jsライブラリは、使い方が比較的シンプルで直接的です。主なパッケージは1つだけで、@solana/web3.jsです。すべての機能はこのパッケージに集中しています。クラスベースの設計を採用しており、多くの一般的な操作をカプセル化しています。例えば、Connectionクラスは数十種類のメソッドを提供しており、開発者が必要とするほとんどすべての機能をカバーしています。しかし、このような設計にはいくつかの問題もあります。開発者が実際に使用する機能はライブラリの中のごく一部かもしれませんが、全体のコードベースがユーザーのデバイスにダウンロードされるため、読み込み時間が延びる可能性があります。2.xバージョンでは異なるアプローチが採用されました。開発チームは既存のコードベースをいくつかの小型モジュールに分割しました。例えば、@solana/accounts、@solana/codecs、@solana/rpc、@solana/signers、@solana/transactionsなどです。新しいバージョンではクラスベースの実装を放棄し、代わりに単一の関数の方法を採用しています。このアプローチは、JavaScriptコードの構築時の最適化に役立ち、未使用のコードは削除できるため、ユーザーのデバイスにダウンロードされることはありません。統計によると、新しいバージョンの分散型アプリケーション(DApp)を使用すると、通常約30%のコードサイズの最適化が得られます。機能が少ない場合、最適化の割合はさらに高くなる可能性があります。2.xバージョンのもう一つの重要な特徴はゼロ依存です。この特性は多くのユーザーにとってはそれほど重要ではないかもしれませんが、最近発生した@solana/web3.js 1.95.5および1.95.6バージョンにおけるサプライチェーン攻撃を考慮すると、外部依存を減らすことでセキュリティリスクを大幅に低減できます。Web3.jsの開発チームは、より多くのネイティブ機能を使用することを決定し、外部依存とポリフィルの導入を取りやめました。## 重要な変更点###接続2.xバージョンでは、接続方法がより関数的になりました:JavaScriptのimport { createSolanaRpc } from "@solana/web3.js";const rpc = createSolanaRpc("");sendAndConfirmTransactionを呼び出して取引を送信すると、システムは自動的にHTTPSリクエストを開始し、取引の状態を購読するためにWSS接続を確立します。取引が確認されると、取引ハッシュが返されます。### キーペア2.xバージョンでは、従来のKeypairおよびPublicKeyクラスは一連の関数に置き換えられました。例えば、await generateKeyPair()を使用してキー ペアを生成できますが、以前のKeypair.generate()ではありません。新しい実装では、JavaScriptのWeb Crypto APIを利用し、ネイティブなEd25519実装が使用されています。### トランザクションを送信するバージョン 2.x では、Transaction クラスと VersionedTransaction クラスは使用されなくなりました。 また、システムプログラム関連の手法も他から導入する必要があります。 たとえば、transfer ディレクティブは、@solana-program/system の getTransferSolInstruction 関数を呼び出す必要があります。新しいバージョンでは、関数型プログラミングで一般的に使用されるpipe形式が提供されています。以下は、pipe関数を使用して送金機能を実装する例です:JavaScriptのimport { pipe } from "@solana/web3.js";const トランザクション = pipe( createTransaction({ バージョン: 0 }), addInstruction(getTransferSolInstruction({ 送信者から、 宛先:受信者、 amount: transferAmount、 })), setTransactionFeePayer(sender)、);const signature = sendAndConfirmTransaction(rpc、トランザクション、[senderKeypair])を待ちます。### React のサポート注目すべきは、@solana/web3.jsプロジェクトには@solana/reactというライブラリも含まれており、signInなどの機能を内蔵したいくつかのReact Hookを提供していることです。## まとめ@solana/web3.js 2.xバージョンのリリースは、ソラナチームの持続的な発展と改善へのコミットメントを示しています。新しいバージョンは、開発者にソラナネットワークとインタラクションするためのより効率的で柔軟性があり、カスタマイズ可能な方法を提供し、このプラットフォームのさらなる採用と発展を促進することが期待されています。! [Web3スターターシリーズ:今すぐ@solana/web3.js 2.xをアップグレードして関数型プログラミングを有効にする](https://img-cdn.gateio.im/social/moments-d3e17fab6bb8c485a8bdac5b1e385273)
ソラナ Web3.js 2.xバージョンがリリースされ、コードサイズが30%ドロップしました。
ソラナ Web3.js 2.xバージョン:機能豊富なJavaScriptライブラリの重大アップグレード
ソラナ Web3.jsは、機能豊富なJavaScriptライブラリとして、今年の11月に正式に2.xバージョンをリリースしました。1.xバージョンと比較して、新しいバージョンは構造や使用方法において顕著な変化があります。本記事では、これらの主要な変化を概説し、開発者が将来の移行に備える手助けをします。
! Web3スターターシリーズ:今すぐ@solana/web3.js 2.xをアップグレードして関数型プログラミングを有効にする
バージョン比較
1.xバージョンのWeb3.jsライブラリは、使い方が比較的シンプルで直接的です。主なパッケージは1つだけで、@solana/web3.jsです。すべての機能はこのパッケージに集中しています。クラスベースの設計を採用しており、多くの一般的な操作をカプセル化しています。例えば、Connectionクラスは数十種類のメソッドを提供しており、開発者が必要とするほとんどすべての機能をカバーしています。
しかし、このような設計にはいくつかの問題もあります。開発者が実際に使用する機能はライブラリの中のごく一部かもしれませんが、全体のコードベースがユーザーのデバイスにダウンロードされるため、読み込み時間が延びる可能性があります。
2.xバージョンでは異なるアプローチが採用されました。開発チームは既存のコードベースをいくつかの小型モジュールに分割しました。例えば、@solana/accounts、@solana/codecs、@solana/rpc、@solana/signers、@solana/transactionsなどです。新しいバージョンではクラスベースの実装を放棄し、代わりに単一の関数の方法を採用しています。このアプローチは、JavaScriptコードの構築時の最適化に役立ち、未使用のコードは削除できるため、ユーザーのデバイスにダウンロードされることはありません。
統計によると、新しいバージョンの分散型アプリケーション(DApp)を使用すると、通常約30%のコードサイズの最適化が得られます。機能が少ない場合、最適化の割合はさらに高くなる可能性があります。
2.xバージョンのもう一つの重要な特徴はゼロ依存です。この特性は多くのユーザーにとってはそれほど重要ではないかもしれませんが、最近発生した@solana/web3.js 1.95.5および1.95.6バージョンにおけるサプライチェーン攻撃を考慮すると、外部依存を減らすことでセキュリティリスクを大幅に低減できます。Web3.jsの開発チームは、より多くのネイティブ機能を使用することを決定し、外部依存とポリフィルの導入を取りやめました。
重要な変更点
###接続
2.xバージョンでは、接続方法がより関数的になりました:
JavaScriptの import { createSolanaRpc } from "@solana/web3.js";
const rpc = createSolanaRpc("");
sendAndConfirmTransactionを呼び出して取引を送信すると、システムは自動的にHTTPSリクエストを開始し、取引の状態を購読するためにWSS接続を確立します。取引が確認されると、取引ハッシュが返されます。
キーペア
2.xバージョンでは、従来のKeypairおよびPublicKeyクラスは一連の関数に置き換えられました。例えば、await generateKeyPair()を使用してキー ペアを生成できますが、以前のKeypair.generate()ではありません。新しい実装では、JavaScriptのWeb Crypto APIを利用し、ネイティブなEd25519実装が使用されています。
トランザクションを送信する
バージョン 2.x では、Transaction クラスと VersionedTransaction クラスは使用されなくなりました。 また、システムプログラム関連の手法も他から導入する必要があります。 たとえば、transfer ディレクティブは、@solana-program/system の getTransferSolInstruction 関数を呼び出す必要があります。
新しいバージョンでは、関数型プログラミングで一般的に使用されるpipe形式が提供されています。以下は、pipe関数を使用して送金機能を実装する例です:
JavaScriptの import { pipe } from "@solana/web3.js";
const トランザクション = pipe( createTransaction({ バージョン: 0 }), addInstruction(getTransferSolInstruction({ 送信者から、 宛先:受信者、 amount: transferAmount、 })), setTransactionFeePayer(sender)、 );
const signature = sendAndConfirmTransaction(rpc、トランザクション、[senderKeypair])を待ちます。
React のサポート
注目すべきは、@solana/web3.jsプロジェクトには@solana/reactというライブラリも含まれており、signInなどの機能を内蔵したいくつかのReact Hookを提供していることです。
まとめ
@solana/web3.js 2.xバージョンのリリースは、ソラナチームの持続的な発展と改善へのコミットメントを示しています。新しいバージョンは、開発者にソラナネットワークとインタラクションするためのより効率的で柔軟性があり、カスタマイズ可能な方法を提供し、このプラットフォームのさらなる採用と発展を促進することが期待されています。
! Web3スターターシリーズ:今すぐ@solana/web3.js 2.xをアップグレードして関数型プログラミングを有効にする