ソラナ Web3.js 2.xバージョンがリリースされ、コードサイズが30%ドロップしました。

robot
概要作成中

ソラナ 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をアップグレードして関数型プログラミングを有効にする

原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 5
  • 共有
コメント
0/400
rekt_but_resilientvip
· 07-11 16:59
やっとアップグレードできた。開発はとても苦痛だった。
原文表示返信0
ThatsNotARugPullvip
· 07-08 18:57
ついにダイエットに成功した
原文表示返信0
CompoundPersonalityvip
· 07-08 18:57
やった、とうとうそんなにコードを移動させなくて済むようになった。
原文表示返信0
BtcDailyResearchervip
· 07-08 18:45
信頼性があり、モジュール化が正解です。
原文表示返信0
gas_fee_traumavip
· 07-08 18:30
ソラナがまた強くなった
原文表示返信0
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)