# ソラナ Web3.js 2.x バージョン:関数型プログラミングの新時代ソラナ Web3.js ライブラリは、今年の11月に2.xバージョンをリリースしました。1.xバージョンに比べて、新しいバージョンは重大な変革をもたらしました。本記事では、その主な変更点を概説し、開発者の今後の移行作業に備えます。! [Web3スターターシリーズ:今すぐ@solana/web3.js 2.xをアップグレードして関数型プログラミングを有効にする](https://img-cdn.gateio.im/social/moments-0fa0888db1937c21f03f2851ec3bd095)## バージョン比較1.xバージョンは使いやすいですが、いくつかの問題があります。すべての機能が1つのパッケージに集中しているため、開発者が少量の機能しか使用しない場合でも、全体のライブラリをダウンロードする必要があります。これにより、読み込み時間が増加するだけでなく、ユーザーエクスペリエンスにも影響を与える可能性があります。2.xバージョンはモジュール化設計を採用し、元のコードベースを複数の小さなモジュールに分割しました。例えば、@solana/accounts、@solana/codecsなどです。同時に、新しいバージョンはクラスベースの実装を放棄し、単一の関数方式に切り替えました。この設計はJavaScriptコードの構築時の最適化に役立ち、未使用のコードは削除され、ユーザーのデバイスにダウンロードされることはありません。公式データによると、新しいバージョンのDAppを使用すると、通常30%のコードサイズの最適化が実現でき、場合によってはさらに高くなることもあります。しかし、新しいバージョンのモジュール設計は、ソラナチームのドキュメントに対してもより高い要求をもたらしました。どのように開発者が必要な機能を迅速に特定できるかが重要な問題となっています。現在、各モジュールの命名はかなり良い意味を持っており、これはある程度、開発者の移行の難易度を下げています。注目すべきは、2.xバージョンがゼロ依存を実現したことです。最近1.95.5および1.95.6バージョンで発生したサプライチェーン攻撃を考慮すると、外部依存を減らすことはライブラリの安全性を確実に向上させます。## 重要な変更点###接続2.xバージョンでは、より関数型の方法で接続を処理しています。新しいバージョンでは、RPCリクエストアドレスを設定してリクエスト送信器を作成し、その送信器を利用してさまざまなリクエストを発起します。### 鍵ペア公開鍵と秘密鍵に関連する処理も大きな変化がありました。1.xバージョンで一般的に使用されていたKeypairとPublicKeyクラスは、一連の関数に置き換えられました。例えば、今ではawait generateKeyPair()を使用して鍵ペアを生成できるようになりました。以前のKeypair.generate()ではありません。新しいメソッドはPromiseを返します。これはJavaScriptのWeb Crypto APIを利用し、ネイティブのEd25519実装を使用しているためです。### トランザクションを送信するバージョン 2.x では、Transaction クラスと VersionedTransaction クラスは使用されなくなりました。 システムプログラム関連のメソッドも削除され、他の場所で導入する必要があります。 たとえば、transfer ディレクティブは、@solana-program/system の getTransferSolInstruction 関数を呼び出す必要があります。新しいバージョンでは、関数型プログラミングで一般的に使用されるpipe形式が提供されています。例えば、pipe関数を使用して、以前の1.xバージョンの送金機能を実現できます。新しい方法はWSSに依存するため、RPCプロバイダーのサービスの安定性に対してより高い要求がされることに注意が必要です。### React のサポート@solana/web3.jsプロジェクトには、@solana/reactライブラリも含まれており、いくつかのReact Hookを提供し、signInなどの機能が内蔵されています。## まとめソラナ Web3.js 2.xのリリースは、ソラナチームの継続的な改善の決意を示しています。新しいバージョンは、開発者にとってより効率的で柔軟、カスタマイズ可能なソラナネットワークとのインタラクション方法を提供し、このプラットフォームのさらなる発展と応用を促進することが期待されています。! [Web3スターターシリーズ:今すぐ@solana/web3.js 2.xをアップグレードして関数型プログラミングを有効にする](https://img-cdn.gateio.im/social/moments-d3e17fab6bb8c485a8bdac5b1e385273)
ソラナ Web3.js 2.x重大アップグレード:モジュール設計が性能と安全性を向上させる
ソラナ Web3.js 2.x バージョン:関数型プログラミングの新時代
ソラナ Web3.js ライブラリは、今年の11月に2.xバージョンをリリースしました。1.xバージョンに比べて、新しいバージョンは重大な変革をもたらしました。本記事では、その主な変更点を概説し、開発者の今後の移行作業に備えます。
! Web3スターターシリーズ:今すぐ@solana/web3.js 2.xをアップグレードして関数型プログラミングを有効にする
バージョン比較
1.xバージョンは使いやすいですが、いくつかの問題があります。すべての機能が1つのパッケージに集中しているため、開発者が少量の機能しか使用しない場合でも、全体のライブラリをダウンロードする必要があります。これにより、読み込み時間が増加するだけでなく、ユーザーエクスペリエンスにも影響を与える可能性があります。
2.xバージョンはモジュール化設計を採用し、元のコードベースを複数の小さなモジュールに分割しました。例えば、@solana/accounts、@solana/codecsなどです。同時に、新しいバージョンはクラスベースの実装を放棄し、単一の関数方式に切り替えました。この設計はJavaScriptコードの構築時の最適化に役立ち、未使用のコードは削除され、ユーザーのデバイスにダウンロードされることはありません。公式データによると、新しいバージョンのDAppを使用すると、通常30%のコードサイズの最適化が実現でき、場合によってはさらに高くなることもあります。
しかし、新しいバージョンのモジュール設計は、ソラナチームのドキュメントに対してもより高い要求をもたらしました。どのように開発者が必要な機能を迅速に特定できるかが重要な問題となっています。現在、各モジュールの命名はかなり良い意味を持っており、これはある程度、開発者の移行の難易度を下げています。
注目すべきは、2.xバージョンがゼロ依存を実現したことです。最近1.95.5および1.95.6バージョンで発生したサプライチェーン攻撃を考慮すると、外部依存を減らすことはライブラリの安全性を確実に向上させます。
重要な変更点
###接続
2.xバージョンでは、より関数型の方法で接続を処理しています。新しいバージョンでは、RPCリクエストアドレスを設定してリクエスト送信器を作成し、その送信器を利用してさまざまなリクエストを発起します。
鍵ペア
公開鍵と秘密鍵に関連する処理も大きな変化がありました。1.xバージョンで一般的に使用されていたKeypairとPublicKeyクラスは、一連の関数に置き換えられました。例えば、今ではawait generateKeyPair()を使用して鍵ペアを生成できるようになりました。以前のKeypair.generate()ではありません。新しいメソッドはPromiseを返します。これはJavaScriptのWeb Crypto APIを利用し、ネイティブのEd25519実装を使用しているためです。
トランザクションを送信する
バージョン 2.x では、Transaction クラスと VersionedTransaction クラスは使用されなくなりました。 システムプログラム関連のメソッドも削除され、他の場所で導入する必要があります。 たとえば、transfer ディレクティブは、@solana-program/system の getTransferSolInstruction 関数を呼び出す必要があります。
新しいバージョンでは、関数型プログラミングで一般的に使用されるpipe形式が提供されています。例えば、pipe関数を使用して、以前の1.xバージョンの送金機能を実現できます。新しい方法はWSSに依存するため、RPCプロバイダーのサービスの安定性に対してより高い要求がされることに注意が必要です。
React のサポート
@solana/web3.jsプロジェクトには、@solana/reactライブラリも含まれており、いくつかのReact Hookを提供し、signInなどの機能が内蔵されています。
まとめ
ソラナ Web3.js 2.xのリリースは、ソラナチームの継続的な改善の決意を示しています。新しいバージョンは、開発者にとってより効率的で柔軟、カスタマイズ可能なソラナネットワークとのインタラクション方法を提供し、このプラットフォームのさらなる発展と応用を促進することが期待されています。
! Web3スターターシリーズ:今すぐ@solana/web3.js 2.xをアップグレードして関数型プログラミングを有効にする