Sui.

Bài viết

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

article banner.
harry phan.
Apr 12, 2025
Bài Viết

✏️ Đối tượng phụ huynh-con trong Sui Move

Trong Sui Move, các đối tượng có thể sở hữu các đối tượng khác giống như các đối tượng của tài khoản. Điều này mở ra các mẫu thiết kế mới (và một vài điểm) cho các nhà phát triển. Trong hướng dẫn này, tôi sẽ chia nhỏ các khái niệm đối tượng cha mẹ-con trong Sui Move thành bốn phần: 1.** Giới thiệu về khái niệm cha mẹ-con cái trong Sui Move** 2.** Cơ chế kiểm soát truy cập đối tượng** 3.** Quản lý con chênh lệch mô-đun với public_receive** 4.** Logic ràng buộc linh hồn và mô hình nhận trả lời**

Cuối cùng, bạn sẽ hiểu cách tổ các đối tượng, truy xuất các đối tượng con thông qua transfer: :receiver, quản lý con trên các mô-đun với public_receiver và thậm chí tạo các đối tượng liên kết với linh hồn mà boomerang trở lại chủ sở hữu của chúng.

Giới thiệu về các khái niệm cha mẹ-con cái trong Sui Move

###Đối tượng cha mẹ và con là gì?

Ở Sui, mọi đối tượng đều có một ID duy nhất và một * chủ sở hữu*. Thông thườngchủ sở hữu là một địa chỉ(giống như tài khoản của người dùng), nhưng chủ sở hữu cũng có thể là một đối tượng khác.

Nếu đối tượng A sở hữu đối tượng B, ta gọi A là cha mẹ và B là con. Đứa trẻ thuộc sở hữu của đối tượng chứ không phải thuộc sở hữu địa chỉ.

Chuyển sang các đối tượng: Sui không thực sự phân biệt giữa địa chỉ và ID đối tượng dưới mui xe - cả hai chỉ là định danh 32 byte Điều này có nghĩa là bạn có thể chuyển một đối tượng sang ID của đối tượng khác giống như cách bạn chuyển đến địa chỉ của người dùng. Khi bạn làm điều này, bạn đang lồng một đối tượng bên trong đối tượng cha một cách hiệu quả. Thời gian chạy của Sui đặt trường chủ sở hữu của con thành ID của cha mẹ (thay vì địa chỉ)

Vậy tại sao điều này lại tuyệt?

Bởi vì đứa trẻ giữ ID duy nhất của riêng mình và tồn tại độc lập trong bộ nhớ, nhưng bây giờ nó được gắn với cha mẹ. Nó giống như tặng bạn của bạn một bộ sưu tập độc đáo để giữ trong tủ của họ - bộ sưu tập giữ ID của nó và có thể được theo dõi, nhưng tủ khóa của bạn bạn của bạn bây giờ được liệt kê là chủ sở hữu của nó.

Điều quan trọng là phải phân biệt các đối tượng độc đáo so với đối tượng lồng nhau so với đối tượng con:**

-Đối tượng duy nhất (thuộc sở hữu địa chỉ) :Một đối tượng thông thường thuộc sở hữu của một địa chỉ (ví dụ: tài khoản của người dùng). Đây là trường hợp mặc định - hãy nghĩ đến NFT, tiền xu, v.v., sống trực tiếp trong ví của người dùng. Mỗi loại có một ID duy nhất và là cấp cao nhất trong bộ nhớ. -Đối tượng lồng nhau (Wrapped): Một đối tượng được lưu trữ bên trong dữ liệu của đối tượng khác (ví dụ, dưới dạng trường trong cấu trúc). Trong trường hợp này, đối tượng bên trong là bàn khônglà một thực thể cấp cao nhất riêng biệt. Nó không hiển thị theo ID của nó trong bộ nhớ toàn cầu vì nó là một phần của nội dung byte của cha mẹ. Trong Tùy, nếu bạn đặt một vật như một cánh đồng trong một vật khác mà không cần xử lý đặc biệt, nó sẽ bị quấn. -**Đối tượng con (Đối tượng thuộc sở hữu của đối tượng) :Một đối tượng thuộc sở hữu của đối tượng khác nhưng không được gói trực tiếp trong các trường của nó. Con vẫn là một đối tượng cấp cao nhất riêng biệt trong bộ nhớ (với ID và dữ liệu riêng) và ID của cha mẹ được ghi lại với tư cách là chủ sở hữu trong siêu dữ liệu của trẻ. Điều này có nghĩa là bạn có thể truy vấn hoặc truy cập đứa trẻ bằng ID của nó (với các quyền phù hợp). Nó không được nhúng vào nội dung của cha mẹ, chỉ được sở hữu một cách hợp lý. Sử dụng sự tương tự của chúng tôi, nó giống như bạn đã đưa cho bạn mình bộ sưu tập của mình để giữ - nó vẫn được gắn thẻ riêng lẻ và có thể theo dõi, chỉ được lưu trữ trong tủ khóa của họ.

Lợi ích của việc tạo một đối tượng con (thông qua chuyển khoản) thay vì gói nó là ID của trẻ vẫn có thể truy cập bên ngoài. Ví dụ: trình thám hiểm hoặc ví có thể liệt kê một đối tượng con theo ID, trong khi một đối tượng được gói lại không thể nhìn thấy bên ngoài đối tượng cha của nó.

Các đối tượng con cũng duy trì ID ổn định ngay cả khi chúng di chuyển giữa các chủ sở hữu hoặc lồng vào các bố mẹ khác nhau. Điều này rất phù hợp với những thứ như hàng tồn kho trên chuỗi hoặc mẫu “ví bên trong ví”, nơi bạn muốn đối tượng container chứa nhiều mặt hàng mà những người khác vẫn có thể tham khảo riêng lẻ

Quyền sở hữu và quyền truy cập: Nếu một đối tượng thuộc sở hữu của đối tượng khác, chỉ chủ sở hữu của cha mẹ thường có thể truy cập hoặc sử dụng con Đây là một hình thức ủy quyền động. Ví dụ, nếu Alice sở hữu một đối tượng cha mẹ P và P sở hữu con C, thì chỉ Alice (hoặc các giao dịch mà Alice ký) mới có thể thao túng C. Sui thực thi điều này để sở hữu một phụ huynh giống như giữ chìa khóa cho tất cả các con của nó 🔑.

Có thể bạn biết:

Tính năng chuyển sang đối tượng của Sui về cơ bản mang lại cho chúng ta* quyền sở hữu đối tượng giống như cây cốc*. Cha mẹ có thể có nhiều con (và những đứa trẻ đó có thể có con riêng, tạo thành một hệ thống phân cấp). Điều này được thực hiện bằng cách xử lý ID đối tượng như địa chỉ để chuyển. Chúng tôi có:

-** Đối tượng thuộc sở hữu địa chỉ**(đối tượng duy nhất bình thường), -** Đối tượng thuộc sở hữu đối tượng**(đối tượng con, vẫn ở cấp cao nhất nhưng gắn với cha mẹ), -** Các đối tượng được gói cảng**(lồng bên trong dữ liệu của đối tượng khác, không phải cấp cao nhất).

Trong các bài viết tiếp theo, chúng ta sẽ xem cách thực sự truy xuất hoặc tương tác với các đối tượng con (vì chúng không thể truy cập trực tiếp như các đối tượng thuộc sở hữu địa chỉ) và cách thực thi các quy tắc xung quanh chúng.

  • Sui
  • Move
3
Chia sẻ
Bình luận
.
Chúng tôi sử dụng cookie để đảm bảo bạn có trải nghiệm tốt nhất trên trang web của chúng tôi.
Thêm thông tin