Cập nhật phiên bản 2.x của Solana Web3.js: Đón nhận lập trình hàm
Thư viện JavaScript Solana Web3.js, một thư viện phong phú về chức năng, đã 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ể. Mặc dù hiện tại mức sử dụng phiên bản 2.x không 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 hiểu những thay đổi này là rất quan trọng cho công việc phát triển và chuyển đổi trong tương lai.
So sánh phiên bản
Việc sử dụng phiên bản 1.x tương đối đơn giản, tất cả các chức năng được tập trung trong một gói duy nhất @solana/web3.js, được đóng gói dựa trên thiết kế lớp với nhiều 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 trùm tất cả các chức năng cần thiết cho lập trình viên. Tuy nhiên, thiết kế này cũng mang lại một số vấn đề, chẳng hạn như kích thước thư viện quá lớn, thiết bị người dùng cần tải xuống toàn bộ thư viện, ngay cả khi chỉ sử dụng một phần nhỏ trong số đó.
Phiên bản 2.x áp dụng thiết kế mô-đun, tách thư viện mã thành nhiều mô-đun nhỏ, chẳng hạn như @solana/accounts, @solana/codecs, @solana/rpc, @solana/signers, @solana/transactions, v.v. Phiên bản mới đã từ bỏ việc triển khai dựa trên lớp, thay vào đó áp dụng cách tiếp cận với hàm đơn, có lợi cho việc tối ưu hóa khi xây dựng mã JavaScript. Mã không 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 dữ liệu chính thức, các ứng dụng 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%, 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ó phụ thuộc. Xét đến các cuộc tấn công chuỗi cung ứng gần đây xảy ra ở các phiên bản 1.95.5 và 1.95.6, việc giảm thiểu phụ thuộc bên ngoài sẽ giúp nâng cao tính bảo mật. Nhóm phát triển đã 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 sử dụng Polyfills.
Điểm thay đổi quan trọng
kết nối
Phiên bản 2.x đã áp dụng phương pháp hàm nhiều hơn để xử lý kết nối. Không còn sử dụng lớp Connection, mà thay vào đó là tạo ra bộ phát yêu cầu thông qua cấu hình địa chỉ yêu cầu RPC. Ví dụ, khi gửi giao dịch 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ề hash giao dịch sau khi xác nhận giao dịch.
cặp khóa
Trong phiên bản 2.x, các lớp Keypair và PublicKey cũ đã được thay thế bằng một loạt các hàm. Ví dụ, bây giờ sử dụng await generateKeyPair() để tạo cặp khóa, thay vì Keypair.generate(). Thực hiện mới tận dụng Web Crypto API của JavaScript, sử dụng thực hiện Ed25519 gốc, điều này dẫn đến nhiều phương thức trở thành bất đồng bộ.
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 đã bị loại bỏ, cần phải được nhập từ các gói khác. Ví dụ, lệnh chuyển tiền bây giờ cần gọi hàm getTransferSolInstruction trong @solana-program/system.
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. Giao dịch không còn được khởi xướng qua Connection nữa, mà được khởi xướng thông qua các hàm cụ thể do RPC Provider được định nghĩa tạo ra. Cách này mặc dù có sự gia tăng nhẹ về số lượng mã, nhưng cung cấp khả năng tùy chỉnh mạnh mẽ hơn.
React hỗ trợ
Dự án @solana/web3.js còn bao gồm một thư viện có tên là @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 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 việc áp dụng và phát triển của nền tảng này. Mặc dù hiện tại vẫn đang ở giai đoạn đầu, nhưng theo thời gian, tin rằng sẽ có nhiều dự án chuyển sang phiên bản mới 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.
10 thích
Phần thưởng
10
5
Chia sẻ
Bình luận
0/400
DiamondHands
· 07-27 11:54
v2 của sol cuối cùng đã đến
Xem bản gốcTrả lời0
GasGrillMaster
· 07-26 04:37
Hoàn toàn không phụ thuộc? Tôi muốn xem thử.
Xem bản gốcTrả lời0
GweiObserver
· 07-24 21:40
Solana cuối cùng đã vào cuộc
Xem bản gốcTrả lời0
ThreeHornBlasts
· 07-24 21:22
Solana cuối cùng đã có sức mạnh một lần rồi!
Xem bản gốcTrả lời0
PretendingSerious
· 07-24 21:20
Cập nhật này cuối cùng cũng đã đến, coi như bạn biết điều.
Cập nhật Solana Web3.js 2.x: Thiết kế mô-đun nâng cao hiệu suất và an ninh
Cập nhật phiên bản 2.x của Solana Web3.js: Đón nhận lập trình hàm
Thư viện JavaScript Solana Web3.js, một thư viện phong phú về chức năng, đã 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ể. Mặc dù hiện tại mức sử dụng phiên bản 2.x không 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 hiểu những thay đổi này là rất quan trọng cho công việc phát triển và chuyển đổi trong tương lai.
So sánh phiên bản
Việc sử dụng phiên bản 1.x tương đối đơn giản, tất cả các chức năng được tập trung trong một gói duy nhất @solana/web3.js, được đóng gói dựa trên thiết kế lớp với nhiều 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 trùm tất cả các chức năng cần thiết cho lập trình viên. Tuy nhiên, thiết kế này cũng mang lại một số vấn đề, chẳng hạn như kích thước thư viện quá lớn, thiết bị người dùng cần tải xuống toàn bộ thư viện, ngay cả khi chỉ sử dụng một phần nhỏ trong số đó.
Phiên bản 2.x áp dụng thiết kế mô-đun, tách thư viện mã thành nhiều mô-đun nhỏ, chẳng hạn như @solana/accounts, @solana/codecs, @solana/rpc, @solana/signers, @solana/transactions, v.v. Phiên bản mới đã từ bỏ việc triển khai dựa trên lớp, thay vào đó áp dụng cách tiếp cận với hàm đơn, có lợi cho việc tối ưu hóa khi xây dựng mã JavaScript. Mã không 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 dữ liệu chính thức, các ứng dụng 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%, 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ó phụ thuộc. Xét đến các cuộc tấn công chuỗi cung ứng gần đây xảy ra ở các phiên bản 1.95.5 và 1.95.6, việc giảm thiểu phụ thuộc bên ngoài sẽ giúp nâng cao tính bảo mật. Nhóm phát triển đã 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 sử dụng Polyfills.
Điểm thay đổi quan trọng
kết nối
Phiên bản 2.x đã áp dụng phương pháp hàm nhiều hơn để xử lý kết nối. Không còn sử dụng lớp Connection, mà thay vào đó là tạo ra bộ phát yêu cầu thông qua cấu hình địa chỉ yêu cầu RPC. Ví dụ, khi gửi giao dịch 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ề hash giao dịch sau khi xác nhận giao dịch.
cặp khóa
Trong phiên bản 2.x, các lớp Keypair và PublicKey cũ đã được thay thế bằng một loạt các hàm. Ví dụ, bây giờ sử dụng await generateKeyPair() để tạo cặp khóa, thay vì Keypair.generate(). Thực hiện mới tận dụng Web Crypto API của JavaScript, sử dụng thực hiện Ed25519 gốc, điều này dẫn đến nhiều phương thức trở thành bất đồng bộ.
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 đã bị loại bỏ, cần phải được nhập từ các gói khác. Ví dụ, lệnh chuyển tiền bây giờ cần gọi hàm getTransferSolInstruction trong @solana-program/system.
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. Giao dịch không còn được khởi xướng qua Connection nữa, mà được khởi xướng thông qua các hàm cụ thể do RPC Provider được định nghĩa tạo ra. Cách này mặc dù có sự gia tăng nhẹ về số lượng mã, nhưng cung cấp khả năng tùy chỉnh mạnh mẽ hơn.
React hỗ trợ
Dự án @solana/web3.js còn bao gồm một thư viện có tên là @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 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 việc áp dụng và phát triển của nền tảng này. Mặc dù hiện tại vẫn đang ở giai đoạn đầu, nhưng theo thời gian, tin rằng sẽ có nhiều dự án chuyển sang phiên bản mới này.