Solana Web3.js phiên bản 2.x: Tách chức năng và tối ưu hóa
Solana Web3.js là một thư viện JavaScript giàu tính năng gần đây đã phát hành phiên bản 2.x. Phiên bản mới có những thay đổi đáng kể so với 1.x và bài viết này sẽ phác thảo các bản cập nhật chính của nó.
Mặc dù phiên bản 2.x vừa mới được phát hành không lâu, lượng sử dụng chưa cao, nhiều thư viện được sử dụng rộng rãi vẫn chưa được chuyển đổi, nhưng việc tìm hiểu trước những thay đổi này sẽ giúp chuẩn bị cho việc nâng cấp trong tương lai.
So sánh các phiên bản
Phiên bản cũ sử dụng khá đơn giản, tất cả các chức năng đều tập trung trong gói @solana/web3.js, đóng gói nhiều thao tác thông dụng dựa trên thiết kế lớp. Tuy nhiên, thiết kế này cũng mang lại một số vấn đề, chẳng hạn như toàn bộ thư viện sẽ được tải xuống thiết bị của người dùng, ngay cả khi chỉ sử dụng một phần rất nhỏ chức năng.
Phiên bản 2.x đã tách thư viện mã thành nhiều mô-đun nhỏ, chẳng hạn như @solana/accounts, @solana/codecs, @solana/rpc, v.v. Phiên bản mới từ bỏ việc triển khai dựa trên lớp và thay vào đó sử dụng nhiều hàm đơn lẻ, có lợi cho việc 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à sẽ không được tải xuống thiết bị của người dùng. Theo thống kê chính thức, ứng dụng sử dụng phiên bản mới có thể đạt được tối ưu hóa dung lượng lên đến 30%.
Thiết kế mô-đun của phiên bản mới đặt ra yêu cầu cao hơn đối với tài liệu phát triển. Hiện tại, tên module có ngữ nghĩa tốt giúp các nhà phát triển nhanh chóng tìm thấy các tính năng họ cần. Tuy nhiên, vì nó chỉ mới được phát hành, nhiều dự án vẫn chưa được di chuyển và có rất ít ví dụ về điều này.
Một tính năng quan trọng khác của bản phát hành 2.x là không có phụ thuộc. Tính năng này có thể không có nhiều tác động đến người dùng bình thường, nhưng nó rất quan trọng từ góc độ bảo mật. Nhóm phát triển đã quyết định sử dụng nhiều hơn các tính năng gốc, loại bỏ các phụ thuộc bên ngoài và giới thiệu polyfill để giảm rủi ro bảo mật.
Thay đổi chính
kết nối xử lý
Phiên bản mới sử dụng cách tiếp cận hàm nhiều hơn để thực hiện kết nối. Ví dụ, khi gửi giao dịch, nó sẽ tự động khởi tạo yêu cầu HTTPS và thiết lập kết nối WSS, đăng ký trạng thái giao dịch, và trả về hàm băm giao dịch sau khi giao dịch được xác nhận.
Quản lý cặp khóa
Chức năng liên quan đến khóa công và khóa riêng đã có sự thay đổi lớn. Các lớp Keypair và PublicKey thường dùng trong phiên bản 1.x không còn tồn tại, mà được thay thế bằng một số hàm. Ví dụ, bạn có thể sử dụng await generateKeyPair() để tạo cặp khóa, thay vì trước đây là Keypair.generate().
Việc 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 gốc. Điều này dẫn đến một số phương thức trở thành bất đồng bộ, nhưng không phải là vấn đề lớn đối với các nhà phát triển quen thuộc với Promise.
Gửi giao dịch
Các lớp Transaction và VersionedTransaction không còn khả dụng trong bản phát hành 2.x. Các phương pháp liên quan đến Chương trình hệ thống không còn tồn tại và cần được giới thiệu từ các mô-đun khác.
Phiên bản mới cung cấp hình thức pipe thường được sử dụng trong lập trình hàm. Ví dụ, khi thực hiện chức năng chuyển tiền, không còn khởi xướng giao dịch qua Connection nữa, mà là thông qua một hàm cụ thể được tạo ra từ RPC Provider đã định nghĩa. Mặc dù cách này làm tăng khối lượng mã, nhưng nó cung cấp khả năng tùy chỉnh mạnh mẽ hơn.
Điều đáng chú ý là dự án @solana/web3.js cũng bao gồm thư viện @solana/react, cung cấp một số React Hooks và các tính năng tích hợp sẵn 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ũ phát triển đối với việc 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à tùy chỉnh hơn, hứa hẹn sẽ thúc đẩy việc áp dụng và phát triển của nền tảng.
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.
15 thích
Phần thưởng
15
9
Chia sẻ
Bình luận
0/400
ProbablyNothing
· 07-19 15:36
sol cuối cùng đã dậy lên
Xem bản gốcTrả lời0
GweiWatcher
· 07-18 09:24
Kết nối là vua !
Xem bản gốcTrả lời0
MoonBoi42
· 07-18 08:31
前排 ăn dưa tăng lên sol
Xem bản gốcTrả lời0
CryptoMotivator
· 07-17 01:02
Cuối cùng cũng đợi được bản cập nhật này!
Xem bản gốcTrả lời0
Anon32942
· 07-17 01:01
Cuối cùng cũng đã tối ưu hóa, có vẻ như trước đây thực sự không ổn.
Cập nhật lớn phiên bản 2.x của Solana Web3.js: Thiết kế mô-đun nâng cao hiệu suất và độ an toàn
Solana Web3.js phiên bản 2.x: Tách chức năng và tối ưu hóa
Solana Web3.js là một thư viện JavaScript giàu tính năng gần đây đã phát hành phiên bản 2.x. Phiên bản mới có những thay đổi đáng kể so với 1.x và bài viết này sẽ phác thảo các bản cập nhật chính của nó.
Mặc dù phiên bản 2.x vừa mới được phát hành không lâu, lượng sử dụng chưa cao, nhiều thư viện được sử dụng rộng rãi vẫn chưa được chuyển đổi, nhưng việc tìm hiểu trước những thay đổi này sẽ giúp chuẩn bị cho việc nâng cấp trong tương lai.
So sánh các phiên bản
Phiên bản cũ sử dụng khá đơn giản, tất cả các chức năng đều tập trung trong gói @solana/web3.js, đóng gói nhiều thao tác thông dụng dựa trên thiết kế lớp. Tuy nhiên, thiết kế này cũng mang lại một số vấn đề, chẳng hạn như toàn bộ thư viện sẽ được tải xuống thiết bị của người dùng, ngay cả khi chỉ sử dụng một phần rất nhỏ chức năng.
Phiên bản 2.x đã tách thư viện mã thành nhiều mô-đun nhỏ, chẳng hạn như @solana/accounts, @solana/codecs, @solana/rpc, v.v. Phiên bản mới từ bỏ việc triển khai dựa trên lớp và thay vào đó sử dụng nhiều hàm đơn lẻ, có lợi cho việc 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à sẽ không được tải xuống thiết bị của người dùng. Theo thống kê chính thức, ứng dụng sử dụng phiên bản mới có thể đạt được tối ưu hóa dung lượng lên đến 30%.
Thiết kế mô-đun của phiên bản mới đặt ra yêu cầu cao hơn đối với tài liệu phát triển. Hiện tại, tên module có ngữ nghĩa tốt giúp các nhà phát triển nhanh chóng tìm thấy các tính năng họ cần. Tuy nhiên, vì nó chỉ mới được phát hành, nhiều dự án vẫn chưa được di chuyển và có rất ít ví dụ về điều này.
Một tính năng quan trọng khác của bản phát hành 2.x là không có phụ thuộc. Tính năng này có thể không có nhiều tác động đến người dùng bình thường, nhưng nó rất quan trọng từ góc độ bảo mật. Nhóm phát triển đã quyết định sử dụng nhiều hơn các tính năng gốc, loại bỏ các phụ thuộc bên ngoài và giới thiệu polyfill để giảm rủi ro bảo mật.
Thay đổi chính
kết nối xử lý
Phiên bản mới sử dụng cách tiếp cận hàm nhiều hơn để thực hiện kết nối. Ví dụ, khi gửi giao dịch, nó sẽ tự động khởi tạo yêu cầu HTTPS và thiết lập kết nối WSS, đăng ký trạng thái giao dịch, và trả về hàm băm giao dịch sau khi giao dịch được xác nhận.
Quản lý cặp khóa
Chức năng liên quan đến khóa công và khóa riêng đã có sự thay đổi lớn. Các lớp Keypair và PublicKey thường dùng trong phiên bản 1.x không còn tồn tại, mà được thay thế bằng một số hàm. Ví dụ, bạn có thể sử dụng await generateKeyPair() để tạo cặp khóa, thay vì trước đây là Keypair.generate().
Việc 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 gốc. Điều này dẫn đến một số phương thức trở thành bất đồng bộ, nhưng không phải là vấn đề lớn đối với các nhà phát triển quen thuộc với Promise.
Gửi giao dịch
Các lớp Transaction và VersionedTransaction không còn khả dụng trong bản phát hành 2.x. Các phương pháp liên quan đến Chương trình hệ thống không còn tồn tại và cần được giới thiệu từ các mô-đun khác.
Phiên bản mới cung cấp hình thức pipe thường được sử dụng trong lập trình hàm. Ví dụ, khi thực hiện chức năng chuyển tiền, không còn khởi xướng giao dịch qua Connection nữa, mà là thông qua một hàm cụ thể được tạo ra từ RPC Provider đã định nghĩa. Mặc dù cách này làm tăng khối lượng mã, nhưng nó cung cấp khả năng tùy chỉnh mạnh mẽ hơn.
! Web3 Starter Series: Nâng cấp @solana/web3.js 2.x ngay bây giờ để cho phép lập trình chức năng
Hỗ trợ React
Điều đáng chú ý là dự án @solana/web3.js cũng bao gồm thư viện @solana/react, cung cấp một số React Hooks và các tính năng tích hợp sẵn 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ũ phát triển đối với việc 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à tùy chỉnh hơn, hứa hẹn sẽ thúc đẩy việc áp dụng và phát triển của nền tảng.