Phiên bản Web3.js 2.x: Chương mới trong phát triển Solana
Thư viện 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 mang lại những thay đổi đáng kể. Bài viết này sẽ tóm tắt những điểm cập nhật chính, chuẩn bị cho công việc di chuyển của các nhà phát triển trong tương lai.
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, tất cả các chức năng đều tập trung trong một gói @solana/web3.js. Nó dựa trên thiết kế lớp, bao bọc nhiều thao tác thông dụng, chẳng hạn như lớp Connection có chứa hàng chục phương thức, cơ bản bao quát hầu hết các chức năng cần thiết cho nhà phát triển.
Tuy nhiên, thiết kế này cũng mang lại một số vấn đề. Ngay cả khi các nhà phát triển chỉ sử dụng một phần nhỏ chức năng, toàn bộ kho mã cũng sẽ được tải xuống thiết bị của người dùng, 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 chiến lược khác. Nhóm phát triển đã chia nhỏ mã nguồn thành nhiều 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 đã từ bỏ cách triển khai dựa trên lớp, thay vào đó là sử dụng nhiều hàm đơn lẻ, điều này giúp tối ưu hóa trong quá trình xây dựng mã JavaScript. Mã không được sử dụng sẽ bị xóa và không được tải xuống thiết bị của người dùng. Theo thống kê chính thức, các DApp sử dụng phiên bản mới thường có thể đạt được tối ưu hóa kích thước lên đến 30%, và 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 có sự phụ thuộc. Xét đến các cuộc tấn công chuỗi cung ứng gần đây xảy ra trên phiên bản 1.95.5 và 1.95.6, việc giảm thiểu sự phụ thuộc vào bên ngoài có thể làm giảm đáng kể rủi ro an ninh. Nhóm phát triển Web3.js đã quyết định sử dụng nhiều tính năng gốc hơn, loại bỏ sự phụ thuộc bên ngoài và việc đưa Polyfills vào.
Điểm thay đổi quan trọng
kết nối
Phiên bản 2.x đã áp dụng cách tiếp cận hàm nhiều hơn để thực hiện chức năng kết nối. Các nhà phát triển bây giờ có thể tạo một bộ gửi yêu cầu bằng cách cấu hình địa chỉ yêu cầu RPC, sau đó sử dụng nó để gửi nhiều yêu cầu khác nhau.
khóa bí mật
Về việc xử lý cặp khóa, phiên bản 2.x cũng có những thay đổi lớn. Các lớp Keypair và PublicKey trước đây không còn tồn tại, thay vào đó là một số hàm mới. Ví dụ, bây giờ bạn có thể sử dụng await generateKeyPair() để tạo cặp khóa, thay vì trước đây là Keypair.generate(). Cách triển khai mới tận dụng tối đa Web Crypto API của JavaScript, sử dụng triển khai Ed25519 nguyên gốc.
gửi giao dịch
Trong phiên bản 2.x, các lớp Transaction và VersionedTransaction đã bị loại bỏ. Các phương thức liên quan đến System Program cũng không còn được cung cấp trực tiếp, cần phải đượ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, cho phép các nhà phát triển kết hợp và thực hiện các thao tác giao dịch một cách linh hoạt hơn.
Hỗ trợ React
Đáng chú ý là dự án @solana/web3.js còn 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, mang lại nhiều tiện lợi hơn cho các nhà phát triển React.
Tóm tắt
Việc phát hành phiên bản 2.x của Solana Web3.js thể hiện quyết tâm không ngừng cải tiến và đổi mới của đội ngũ Solana. 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 hiệu quả, linh hoạt và tùy chỉnh hơn với mạng Solana, hứa hẹn sẽ thúc đẩy sự phát triển và ứng dụng hơn nữa của nền tảng này.
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át hành phiên bản 2.x của Solana Web3.js: Thiết kế mô-đun hỗ trợ nâng cao hiệu suất phát triển
Phiên bản Web3.js 2.x: Chương mới trong phát triển Solana
Thư viện 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 mang lại những thay đổi đáng kể. Bài viết này sẽ tóm tắt những điểm cập nhật chính, chuẩn bị cho công việc di chuyển của các nhà phát triển trong tương lai.
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, tất cả các chức năng đều tập trung trong một gói @solana/web3.js. Nó dựa trên thiết kế lớp, bao bọc nhiều thao tác thông dụng, chẳng hạn như lớp Connection có chứa hàng chục phương thức, cơ bản bao quát hầu hết các chức năng cần thiết cho nhà phát triển.
Tuy nhiên, thiết kế này cũng mang lại một số vấn đề. Ngay cả khi các nhà phát triển chỉ sử dụng một phần nhỏ chức năng, toàn bộ kho mã cũng sẽ được tải xuống thiết bị của người dùng, 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 chiến lược khác. Nhóm phát triển đã chia nhỏ mã nguồn thành nhiều 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 đã từ bỏ cách triển khai dựa trên lớp, thay vào đó là sử dụng nhiều hàm đơn lẻ, điều này giúp tối ưu hóa trong quá trình xây dựng mã JavaScript. Mã không được sử dụng sẽ bị xóa và không được tải xuống thiết bị của người dùng. Theo thống kê chính thức, các DApp sử dụng phiên bản mới thường có thể đạt được tối ưu hóa kích thước lên đến 30%, và 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 có sự phụ thuộc. Xét đến các cuộc tấn công chuỗi cung ứng gần đây xảy ra trên phiên bản 1.95.5 và 1.95.6, việc giảm thiểu sự phụ thuộc vào bên ngoài có thể làm giảm đáng kể rủi ro an ninh. Nhóm phát triển Web3.js đã quyết định sử dụng nhiều tính năng gốc hơn, loại bỏ sự phụ thuộc bên ngoài và việc đưa Polyfills vào.
Điểm thay đổi quan trọng
kết nối
Phiên bản 2.x đã áp dụng cách tiếp cận hàm nhiều hơn để thực hiện chức năng kết nối. Các nhà phát triển bây giờ có thể tạo một bộ gửi yêu cầu bằng cách cấu hình địa chỉ yêu cầu RPC, sau đó sử dụng nó để gửi nhiều yêu cầu khác nhau.
khóa bí mật
Về việc xử lý cặp khóa, phiên bản 2.x cũng có những thay đổi lớn. Các lớp Keypair và PublicKey trước đây không còn tồn tại, thay vào đó là một số hàm mới. Ví dụ, bây giờ bạn có thể sử dụng await generateKeyPair() để tạo cặp khóa, thay vì trước đây là Keypair.generate(). Cách triển khai mới tận dụng tối đa Web Crypto API của JavaScript, sử dụng triển khai Ed25519 nguyên gốc.
gửi giao dịch
Trong phiên bản 2.x, các lớp Transaction và VersionedTransaction đã bị loại bỏ. Các phương thức liên quan đến System Program cũng không còn được cung cấp trực tiếp, cần phải đượ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, cho phép các nhà phát triển kết hợp và thực hiện các thao tác giao dịch một cách linh hoạt hơn.
Hỗ trợ React
Đáng chú ý là dự án @solana/web3.js còn 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, mang lại nhiều tiện lợi hơn cho các nhà phát triển React.
Tóm tắt
Việc phát hành phiên bản 2.x của Solana Web3.js thể hiện quyết tâm không ngừng cải tiến và đổi mới của đội ngũ Solana. 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 hiệu quả, linh hoạt và tùy chỉnh hơn với mạng Solana, hứa hẹn sẽ thúc đẩy sự phát triển và ứng dụng hơn nữa của nền tảng này.