Sui.

Bài viết

Chia sẻ kiến thức của bạn.

article banner.
Meaning.Sui.
Jul 08, 2025
Bài Viết

📦 Phân tích chuyên sâu về mô-đun `sui: :package`: Xuất bản gói & Nâng cấp trong Move

Trong sự phát triển nhanh chóng của công nghệ blockchain, ngôn ngữ lập trình Movenổi bật về tính bảo mật,** tính linh hợp khả năng kiểm tra**. Một trong những thế mạnh cốt lõi của nó là** quản lý tinh tế các gói hợp đồng thông minh**.

Bài viết này đi sâu vào sui::packagemô-đun - công cụ đằng sau việc xuất bản, nâng cấp và duy trì các gói Move trên blockchain Sui.


🔍 Tổng quan về mô-đun

sui::packagelà nền tảng trong hệ sinh thái Move. Nó cung cấp cho các nhà phát triển các công cụ và giao diện mạnh mẽ để quản lý các góian toàn và hiệu quả.

📦 Tờ khai & Nhập khẩu

module sui::package;

use std::ascii::String;
use std::type_name;
use sui::types;

Điều này xác định mô-đun và mang đến các thư viện tiêu chuẩn Move thiết yếu và các mô-đun gốc SUI cho logic phức tạp.


🧩 Cấu trúc cốt lõi & Giao diện công cộng

1. Publisher

Xử lýnhận dạng nhà xuất bảncủa gói.

Chức năng chính:

  • claim
  • claim_and_keep
  • burn_publisher

2. UpgradeCap

Kiểm soátkhả năng nâng cấpcủa gói.

Các lĩnh vực chính:

  • package_id
  • version
  • policy(chính sách nâng cấp)

Chức năng chính:

  • upgrade_package
  • restrict

3. UpgradeTicket

Cấp quyền cho một bản nâng cấp cụ thể**.

Chức năng chính:

  • ticket_package
  • ticket_policy
  • ticket_digest

4. UpgradeReceipt

Được phát hành sau khi nâng cấp thành công.

Chức năng chính:

  • receipt_cap
  • receipt_package

🚨 Hằng số lỗi

Giúp các nhà phát triển gỡ lỗi một cách rõ ràng.

-ENotOneTimeWitness: Nhân chứng một lần không hợp lệ -ETooPermissive: Chính sách nâng cấp quá khoan dung -EInvalidPackage: Gói cung cấp không hợp lệ


🔒 Hằng số chiến lược nâng cấp

Kiểm soát cách các gói có thể phát triển:

-COMPATIBLE: Nâng cấp tương thích ngược -ADDITIVE: Thêm các tính năng mới, nhưng không thay đổi/xóa các tính năng hiện có -DEP_ONLY: Chỉ được phép thay đổi phụ thuộc

Các hằng số này thực thinâng cấp an toàn và có kiểm soát.


🧱 Định nghĩa cấu trúc

Publisher

-địa chỉ gói: Nhận dạng duy nhất nhà xuất bản -** tên mô-đun**: Không gian tên mô-đun của nhà xuất bản


UpgradeCap

-ID gói: Gói mục tiêu -** phiên bản**: Phiên bản hiện tại -chính sách: Áp dụng chính sách nâng cấp


UpgradeTicket

-upgrade_cap_id: Liên kết đến UpgradeCap điều khiển -package_id: Gói mục tiêu -chính sách: Chính sách nâng cấp được sử dụng -digest: tóm tắt Bytecode (vectơ byte)


UpgradeReceipt

-upgrade_cap_id: Nhận dạng bộ điều khiển -package_id: Gói nâng cấp


🧠 Định nghĩa chức năng cốt lõi

claim

fun claim(otw: &OneTimeWitness) -> Publisher;

Yêu cầu nhận dạng nhà xuất bản bằng cách sử dụng nhân chứng một lần (OTW). Đảm bảo tính độc đáo và tin tưởng.


claim_and_keep

fun claim_and_keep(otw: &OneTimeWitness) -> Publisher;

Tương tự nhưclaim, nhưng gửi đối tượng Publisher đến tài khoản của người gọi.


burn_publisher

fun burn_publisher(publisher: &mut Publisher);

Phá hủy danh tính nhà xuất bản và tất cả các đặc quyền liên quan.


authorize_upgrade

fun authorize_upgrade(cap: &UpgradeCap, package_id: &PackageID, policy: u8, digest: &vector<u8>) -> UpgradeTicket {
    assert!(cap.package_id == *package_id, EInvalidPackage);
    assert!(cap.policy <= policy, ETooPermissive);
    UpgradeTicket {
        upgrade_cap_id: cap.id(),
        package_id: *package_id,
        policy: policy,
        digest: digest.clone()
    }
}

Xác thực:

  • Điều đó UpgradeCapphù hợp với package_id
  • Chính sách này** không cho phép hơn**hơn mức cho phép Sau đó trả lại một chữ kýUpgradeTicket.

upgrade_package

fun upgrade_package(ticket: &UpgradeTicket, data: &vector<u8>) -> UpgradeReceipt {
    // Upgrade logic
}
  • Xác minh UpgradeTicket data- Thay thế mã gói hiện tại bằng bytecode mới ()
  • Trả về một UpgradeReceiptbằng chứng về việc nâng cấp thành công

restrict

fun restrict(cap: &mut UpgradeCap, policy: u8) {
    assert!(cap.policy < policy, ETooPermissive);
    cap.policy = policy;
}

Được sử dụng đóthắt chặt quyền nâng cấp. Không thể hạ cấp xuống chính sáchcho phép hơn.


🛡️ Tính năng bảo mật & kiểm toán

sui::packageđược thiết kế với mục tiêubảo mật và khả năng kiểm tra:

-Nhân chứng một lần (OTW): Ngăn chặn mạo danh trong việc xuất bản -** Hằng số chính sách nâng cấp**: Ngăn chặn các nâng cấp trái phép hoặc phá vỡ -** Xác định**: Bảo vệ tích hợp để ngăn chặn việc lạm dụng hoặc logic bất ngờ


🧪 Hỗ trợ thử nghiệm & mô phỏng

Mô-đun bao gồmchức năng chỉ thử nghiệmđược bảo vệ cho môi trường phát v/kiểm tra:

-TestOnly: Đánh dấu logic chỉ kiểm tra -publish: Mô phỏng xuất bản trong các bài kiểm tra -upgrade: Mô phỏng nâng cấp trong các thử nghiệm


✅ Tóm tắt

M sui::packageô-đun cung cấp cho các nhà phát triển Move một hệ thốngmạnh mẽ, có cấu trúc và an toànđể:

  • Xuất bản các gói
  • Ủy quyền và thực hiện nâng cấp
  • Quản lý khả năng nâng cấp và chính sách

Nó đảm bảoniềm tin, tính linh hợpvà** khả năng bảo trì**trong việc phát triển hợp đồng thông minh trên Sui.

Với các mô-đun nhưsui::package, ngôn ngữ Move tiếp tục thể hiện sức mạnh của nó trong** thiết kế mô-đun,** kiến trúc ưu tiên bảo mậtcông thái học của nhà phát triển**- mở đường cho các hệ thống Web3 an toàn, có thể mở rộng.

  • Sui
  • Architecture
0
Chia sẻ
Bình luận
.

Sui is a Layer 1 protocol blockchain designed as the first internet-scale programmable blockchain platform.

394Bài viết554Câu trả lời
Sui.X.Peera.

Kiếm phần của bạn từ 1000 Sui

Tích lũy điểm danh tiếng và nhận phần thưởng khi giúp cộng đồng Sui phát triển.

Chiến dịch phần thưởngTháng Bảy