R3E cập nhật NeoRust SDK với những cải tiến toàn diện về chất lượng mã và tăng cường bảo mật.

Bài viết này được dịch máy
Xem bản gốc

R3E Network vừa phát hành phiên bản mới của NeoRust, một bản cập nhật bảo trì quan trọng tập trung vào chất lượng mã, bảo mật và trải nghiệm của nhà phát triển.

Ra mắt lần đầu vào năm 2021, NeoRust là một bộ công cụ phát triển phần mềm (SDK) dựa trên ngôn ngữ Rust, giúp các nhà phát triển xây dựng trên nền tảng Neo N3 bằng API cấp cao với khả năng xử lý lỗi thống nhất. Dự án đã nhận được tài trợ từ GrantShares vào năm 2023 và bao gồm các công cụ cho mật mã học, quản lý ví (ví Đề xuất cải tiến Bitcoin (BIP)-39/44 HD, ví đa chữ ký và ví phần cứng), và tương tác nút dựa trên RPC. Nó cũng hỗ trợ triển khai và gọi hợp đồng thông minh, các hoạt động Token NEP-17, giám sát sự kiện dựa trên WebSocket, mô phỏng giao dịch để ước tính phí và cấu hình mạng cho MainNet, TestNet và các mạng tùy chỉnh.

Những cải tiến quan trọng trong phiên bản v1.0.3

Được phát hành vào ngày 7 tháng 2, NeoRust v1.0.3 là kết quả của 10 vòng xem xét mã và tái cấu trúc nhằm giải quyết các vấn đề về xử lý lỗi, bảo mật bộ nhớ, tối ưu hóa hiệu suất và chức năng dành riêng cho từng nền tảng. Phiên bản này tương thích với Neo-CLI v3.9.1, đảm bảo các nhà phát triển có thể tận dụng các tính năng mới nhất của blockchain Neo , bao gồm Danh sách trắng phí hợp đồng, hợp đồng gốc Treasury và độ chính xác hệ số phí thực thi được nâng cao được giới thiệu trong bản cập nhật Neo v3.9 tháng 1 năm 2026.

Cải tiến xử lý lỗi

Thông báo lỗi chi tiết: Bản phát hành này thay thế hơn 40 lệnh gọi .unwrap() bằng .expect() chứa các thông báo lỗi chi tiết, cải thiện trải nghiệm của nhà phát triển khi gỡ lỗi. Thay vì gặp phải các thông báo lỗi chung chung, giờ đây các nhà phát triển nhận được thông tin theo ngữ cảnh về những gì đã xảy ra sai và ở đâu.

Dọn dẹp mã: Việc loại bỏ mã chết đã loại bỏ các trường, lệnh nhập và mã được chú thích không sử dụng trong toàn bộ cơ sở mã, giảm gánh nặng bảo trì và cải thiện khả năng đọc mã cho những người đóng góp và người dùng xem xét mã nguồn SDK.

Tối ưu hóa hiệu năng

Hiệu quả phân bổ bộ nhớ: Chín thao tác phân bổ vector đã được tối ưu hóa bằng cách sử dụng Vec::with_capacity() để phân bổ trước, giảm thiểu việc phân bổ lại bộ nhớ không cần thiết trong quá trình hoạt động. Phiên bản này cũng loại bỏ bốn thao tác .clone() không cần thiết, giúp loại bỏ các thao tác sao chép bộ nhớ dư thừa có thể ảnh hưởng đến hiệu suất trong các tình huống yêu cầu thông lượng cao.

Kiểm tra giới hạn: Việc thêm các câu lệnh debug_assert! để kiểm tra giới hạn bộ đệm trong các phương thức giải mã đường dẫn nóng cung cấp thêm các đảm bảo an toàn trong quá trình phát triển và thử nghiệm mà không ảnh hưởng đến hiệu suất bản dựng phát hành.

Cải tiến tài liệu

Hoàn thiện tài liệu cho các module: Bản phát hành này bổ sung tài liệu toàn diện cho các module trước đây chưa được ghi chép, đạt được độ phủ tài liệu 100% cho các module serde_with_utilscontract_manifest modules . Tất cả các hàm hỗ trợ tuần tự hóa serde hiện đều bao gồm các ví dụ sử dụng.

Tài liệu về bố cục bộ nhớ: Tài liệu chi tiết về kiểu liệt kê StackItem giải thích các kích thước biến thể và các vấn đề liên quan đến đóng gói, giúp các nhà phát triển hiểu được các mô hình sử dụng bộ nhớ khi làm việc với các mục ngăn xếp của máy ảo Neo .

Các phương thức truy cập không sao chép: Các phương thức mới as_array_ref()as_map_entries() trên StackItem cung cấp khả năng truy cập không sao chép hiệu quả vào dữ liệu mảng và bản đồ mà không cần cấp phát bộ nhớ không cần thiết.

Tính nhất quán phiên bản: Các lỗi không khớp phiên bản tài liệu đã được khắc phục, cập nhật các tham chiếu từ v1.0.1 lên v1.0.3 trên toàn bộ lib.rsneo_types/mod.rs ở bốn vị trí, đồng thời vẫn giữ nguyên các tham chiếu cũ khi cần thiết.

Cải tiến an ninh

NeoRust v1.0.3 giới thiệu nhiều cải tiến bảo mật tập trung vào việc bảo vệ các dữ liệu mã hóa nhạy cảm trong bộ nhớ:

Xóa sạch bộ nhớ: Các đặc tính ZeroizeZeroizeOnDrop đã được triển khai cho KeyPair để xóa an toàn các byte khóa riêng tư khỏi bộ nhớ khi cặp khóa bị loại bỏ. Việc triển khai Drop tùy chỉnh cho AccountNEP6Account hiện đảm bảo các chuỗi khóa riêng tư được mã hóa được xóa sạch, ngăn dữ liệu nhạy cảm tồn tại trong bộ nhớ sau khi sử dụng.

Kiểm tra tính hợp lệ của dữ liệu đầu vào: Các câu lệnh kiểm tra tính hợp lệ của dữ liệu đầu vào đã được thêm vào để ngăn chặn tình trạng tràn bộ đệm trong các bản dựng gỡ lỗi, giúp phát hiện các vấn đề bảo mật tiềm ẩn trong quá trình phát triển trước khi chúng được đưa vào sản xuất.

Bảo mật phụ thuộc: jsonwebtoken đã được nâng cấp từ phiên bản 9.2.0 lên 10.3.0 với tính năng rust_crypto , loại bỏ yêu cầu CryptoProvider ở cấp tiến trình và hiện đại hóa việc triển khai mã hóa.

Sửa lỗi dành riêng cho từng nền tảng

Bản phát hành này cũng giải quyết các vấn đề cụ thể của nền tảng ảnh hưởng đến việc lưu trữ thông tin đăng nhập trên macOS và Windows:

Tích hợp Keychain cho macOS: Việc tích hợp Keychain neo-cli với macOS đã được khắc phục bằng cách thay thế các lệnh gọi hàm độc lập không tồn tại ( passwords::set_generic_password , get_generic_password , delete_generic_password ) bằng API phương thức SecKeychain chính xác từ security-framework 2.11. Điều này đảm bảo thông tin đăng nhập ví Neo có thể được lưu trữ và truy xuất đúng cách bằng Keychain gốc của macOS.

Kho lưu trữ thông tin xác thực Windows: Lỗi biên dịch mượn sau khi di chuyển (E0382) đã được khắc phục trong kho lưu trữ thông tin xác thực Windows bằng cách sắp xếp lại các thao tác trong store_windows_credential , đặt thao tác mượn trước thao tác di chuyển HashMap::insert . Bản sửa lỗi này đảm bảo người dùng Windows có thể lưu trữ thông tin xác thực ví một cách chính xác trong Trình quản lý thông tin xác thực Windows gốc.

Cải thiện chất lượng mã

Ứng dụng nguyên tắc DRY: Hàm trợ giúp neo_config_lock() trong config.rs đã được tách ra để loại bỏ bốn khối lock-plus-poison-recovery giống hệt nhau trong api_trait.rs , cải thiện khả năng bảo trì mã và giảm sự trùng lặp.

Các quy tắc loại bỏ Clippy đã được ghi lại: Các bình luận căn chỉnh nội tuyến đã được thêm vào tất cả các quy tắc loại bỏ #![allow(clippy::...)] trong src/lib.rs , ghi lại lý do tại sao các cảnh báo linter cụ thể bị vô hiệu hóa một cách có chủ ý và đảm bảo các quyết định này vẫn hiển thị cho những người đóng góp trong tương lai.

Dọn dẹp API: Trường nns không còn sử dụng từ RpcClient đã được loại bỏ và các macro không dùng đến đã được dọn dẹp, giúp đơn giản hóa giao diện API công khai và giảm sự nhầm lẫn về các tính năng đang được hỗ trợ.

Hỗ trợ và tính khả dụng của nền tảng

NeoRust v1.0.3 cung cấp các tệp nhị phân được biên dịch sẵn cho nhiều nền tảng:

  • Linux: neorust-linux-amd64.tar.gz
  • macOS: neorust-macos-amd64.tar.gz
  • Windows: neorust-windows-amd64.zip

Các tệp nhị phân này cho phép các nhà phát triển sử dụng công cụ CLI của NeoRust mà không cần môi trường phát triển Rust đầy đủ.

Ngay sau khi phát hành phiên bản v1.0.3, nhóm đã công bố phiên bản v1.0.4 để giải quyết các vấn đề về cấu hình CI và cài đặt Kiểm định bảo mật , đảm bảo tất cả các kiểm tra tự động đều vượt qua một cách suôn sẻ đồng thời ghi chép đầy đủ các cảnh báo về phụ thuộc đã biết mà không có bản vá lỗi nào từ nguồn gốc.

Khả năng tương thích

NeoRust v1.0.3 tương thích với Neo v3.9.1 trở lên, đảm bảo các nhà phát triển có thể xây dựng ứng dụng tận dụng các tính năng mới nhất của giao thức Neo N3. Các nhà phát triển sử dụng NeoRust nên cập nhật lên phiên bản này để được hưởng lợi từ khả năng xử lý lỗi được cải thiện, bảo mật nâng cao cho các hoạt động mã hóa và các bản vá lỗi dành riêng cho nền tảng về lưu trữ thông tin xác thực trên macOS và Windows.

Bạn có thể tải xuống phiên bản NeoRust mới nhất từ ​​LINK (Chainlink) bên dưới:
https://crates.io/crates/neo3

Nguồn
Tuyên bố từ chối trách nhiệm: Nội dung trên chỉ là ý kiến của tác giả, không đại diện cho bất kỳ lập trường nào của Followin, không nhằm mục đích và sẽ không được hiểu hay hiểu là lời khuyên đầu tư từ Followin.
Thích
65
Thêm vào Yêu thích
15
Bình luận