Phát hành phiên bản 2.x của Solana Web3.js tối ưu hóa kích thước mã giảm 30%

robot
Đang tạo bản tóm tắt

Solana Web3.js phiên bản 2.x: Cải tiến lớn cho thư viện JavaScript phong phú về tính năng

Thư viện JavaScript đầy đủ chức năng Solana Web3.js đã chính thức phát hành phiên bản 2.x vào tháng 11 năm nay. So với phiên bản 1.x, phiên bản mới có những thay đổi đáng kể về cấu trúc và cách sử dụng. Bài viết này sẽ tổng quan về những thay đổi chính để giúp các nhà phát triển chuẩn bị cho việc di chuyển trong tương lai.

Web3 người mới series: Bây giờ nâng cấp @solana/web3.js 2.x mở chức năng lập trình

So sánh phiên bản

Thư viện Web3.js phiên bản 1.x sử dụng tương đối đơn giản và trực tiếp. Nó chỉ có một gói chính: @solana/web3.js, tất cả các chức năng đều được tập trung trong gói này. Nó áp dụng thiết kế dựa trên lớp, đóng gói một lượng lớn các thao tác thông dụng. Ví dụ, lớp Connection cung cấp hàng chục phương thức, gần như bao phủ tất cả các chức năng mà các nhà phát triển cần.

Tuy nhiên, thiết kế này cũng mang lại một số vấn đề. Mặc dù các chức năng mà các nhà phát triển thực sự sử dụng có thể chỉ là một phần nhỏ trong thư viện, nhưng toàn bộ mã nguồn sẽ được tải xuống thiết bị của người dùng, điều này có thể dẫn đến thời gian tải lâu hơn.

Phiên bản 2.x đã áp dụng một phương pháp khác. Nhóm phát triển đã chia nhỏ mã nguồn hiện có thành một số mô-đun nhỏ, chẳng hạn như @solana/accounts, @solana/codecs, @solana/rpc, @solana/signers và @solana/transactions. Phiên bản mới cũng đã từ bỏ việc thực hiện dựa trên lớp, mà thay vào đó sử dụng nhiều hơn cách thức hàm đơn. Phương pháp này có lợi cho việc tối ưu hóa mã JavaScript khi xây dựng, mã không được sử dụng có thể bị xóa, do đó không được tải xuống thiết bị của người dùng.

Theo thống kê, việc sử dụng phiên bản mới của ứng dụng phi tập trung (DApp) thường có thể đạt được khoảng 30% tối ưu hóa kích thước mã. Nếu chỉ sử dụng một số ít chức năng, tỷ lệ tối ưu hóa có thể cao hơn.

Một đặc điểm quan trọng khác của phiên bản 2.x là không phụ thuộc. Tính năng này có thể không nổi bật đối với nhiều người dùng, nhưng xét đến cuộc tấn công chuỗi cung ứng gần đây xảy ra trên phiên bản @solana/web3.js 1.95.5 và 1.95.6, việc giảm thiểu phụ thuộc bên ngoài có thể giảm thiểu đáng kể rủi ro an ninh. Nhóm phát triển Web3.js đã quyết định sử dụng nhiều hơn các chức năng gốc, loại bỏ sự phụ thuộc bên ngoài và việc đưa vào Polyfills.

Điểm thay đổi quan trọng

kết nối

Trong phiên bản 2.x, cách kết nối trở nên hàm thức hơn:

javascript import { createSolanaRpc } from "@solana/web3.js";

const rpc = createSolanaRpc("");

Khi gọi sendAndConfirmTransaction để gửi giao dịch, hệ thống sẽ tự động thực hiện yêu cầu HTTPS và thiết lập kết nối WSS để đăng ký trạng thái giao dịch, sau khi giao dịch được xác nhận sẽ trả về hash giao dịch.

cặp khóa

Trong phiên bản 2.x, các lớp Keypair và PublicKey đã được thay thế bằng một loạt các hàm. Ví dụ, bạn có thể sử dụng await generateKeyPair() để tạo cặp khóa, thay vì sử dụng Keypair.generate() như trước đây. Cách triển khai mới tận dụng API Web Crypto của JavaScript, sử dụng triển khai Ed25519 nguyên bản.

gửi giao dịch

Phiên bản 2.x không còn sử dụng các lớp Transaction và VersionedTransaction. Các phương thức liên quan đến System Program cũng cần được nhập từ nơi khác. Ví dụ, lệnh transfer bây giờ cần gọi hàm getTransferSolInstruction trong @solana-program/system.

Phiên bản mới cung cấp dạng pipe thường được sử dụng trong lập trình hàm. Dưới đây là ví dụ về việc sử dụng hàm pipe để thực hiện chức năng chuyển tiền:

javascript import { pipe } from "@solana/web3.js";

const transaction = pipe( createTransaction({ phiên bản: 0 }), addInstruction(getTransferSolInstruction({ từ: người gửi, đến: người nhận, amount: transferAmount, })), setTransactionFeePayer(sender), );

const signature = await sendAndConfirmTransaction(rpc, transaction, [senderKeypair]);

Hỗ trợ React

Cần lưu ý rằng dự án @solana/web3.js cũng bao gồm một thư viện có tên @solana/react, cung cấp một số React Hook, tích hợp các chức năng như signIn.

Tóm tắt

Việc phát hành phiên bản 2.x của @solana/web3.js đã thể hiện cam kết của đội ngũ Solana đối với sự phát triển và cải tiến liên tục. Phiên bản mới cung cấp cho các nhà phát triển một cách tương tác với mạng Solana hiệu quả hơn, linh hoạt hơn và có thể tùy chỉnh, hứa hẹn sẽ thúc đẩy việc áp dụng và phát triển hơn nữa cho nền tảng này.

Web3 người mới: Bây giờ nâng cấp @solana/web3.js 2.x để bắt đầu lập trình hàm

SOL-1.95%
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
  • Phần thưởng
  • 5
  • Chia sẻ
Bình luận
0/400
rekt_but_resilientvip
· 07-11 16:59
Cuối cùng cũng nâng cấp rồi, phát triển thật đau khổ.
Xem bản gốcTrả lời0
ThatsNotARugPullvip
· 07-08 18:57
Cuối cùng đã giảm cân thành công.
Xem bản gốcTrả lời0
CompoundPersonalityvip
· 07-08 18:57
Đúng rồi, cuối cùng không phải mã nhiều code như vậy nữa.
Xem bản gốcTrả lời0
BtcDailyResearchervip
· 07-08 18:45
Đáng tin cậy, mô-đun là đúng rồi
Xem bản gốcTrả lời0
gas_fee_traumavip
· 07-08 18:30
Solana lại trở nên mạnh mẽ hơn
Xem bản gốcTrả lời0
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)