Mới nhất
Cập nhật những bài đăng mới nhất.
Bài viết
2356Hướng dẫn khái niệm: Tương tác đầu tiên của bạn với đối tượng Sui
Hãy hình dung cách nó hoạt động mà không cần viết một dòng mã nào. •Sáng tạo (Đúc tiền) :Hãy tưởng tượng bạn chơi một trò chơi và kiếm được “Thanh kiếm huyền thoại”. Hợp đồng thông minh của trò chơi thực hiện một chức năng tạo ra một đối tượng Sword mới. Đối tượng này có các thuộc tính như sát thương: 100, hiếm: 'Huyền thoại' và quan trọng nhất, nó được gán một ID duy nhất và trường chủ sở hữu của nó được đặt vào địa chỉ ví của bạn. •Chuyển nhận: Bạn quyết định bán thanh kiếm cho bạn của mình, David. Bạn ký một giao dịch có nội dung: “Lấy đối tượng với ID 0x123... (thanh gươm) và chuyển quyền sở hữu của nó đến địa chỉ của David. Bởi vì chỉ có bạn sở hữu thanh kiếm, đây là một giao dịch đơn giản. Nó được gửi đến người xác thực, những người nhanh chóng xác minh quyền sở hữu của bạn, đăng ký thay đổi và hoàn tất nó trong mili giây mà không cần sự đồng thuận mạng đầy đủ. •Sửa đổi: Đối tượng Sword có thể có một hàm gọi là upgrade (). Bạn có thể gọi hàm này, có thể tiêu thụ một vật thể “Sharpening Stone” mà bạn cũng sở hữu, để thay đổi thuộc tính sát thương của vật Kiếm từ 100 thành 110. Một lần nữa, vì bạn sở hữu cả hai đối tượng, đây là một giao dịch đơn giản thực hiện trên đường dẫn nhanh. Kết luận: Xây dựng cho tương lai Sui không phải là một sự cải tiến dần dần dần; nó là một sự thay đổi mô hình. Bằng cách chuyển từ một con đường một làn tắc nghẽn sang siêu xa lộ nhiều làn, nó mở ra hiệu suất cần thiết để web3 trở thành xu hướng chủ đạo. Mô hình tập trung vào đối tượng của nó, kết hợp với tính bảo mật của ngôn ngữ Move và cơ chế gas thân thiện với người dùng, tạo ra một môi trường nơi các nhà phát triển có thể xây dựng các ứng dụng phức tạp, tần số cao như trò chơi trên chuỗi, mạng xã hội và hệ thống DeFi thời gian thực mà trước đây đơn giản là không thể thực hiện được. Đối với người dùng, điều này chuyển thành trải nghiệm nhanh hơn, rẻ hơn và an toàn hơn, cuối cùng thu hẹp khoảng cách giữa lời hứa của web3 và khả năng sử dụng liền mạch của web2.
- Sui
0Tìm hiểu sâu hơn về Sui Blockchain: Không chỉ là một lớp 1 khác
Trong một vũ trụ đang mở rộng nhanh chóng của các blockchain lớp 1, thật dễ bị lạc trong tiếng ồn của những lời hứa tiếp thị và biệt ngữ kỹ thuật. Những người mới đến và thậm chí những người đam mê tiền điện tử dày dạn kinh nghiệm thường hỏi, “Điều gì làm cho điều này khác biệt?” Khi nói đến blockchain Sui, câu trả lời không phải là một tinh chỉnh nhỏ hoặc một cải tiến nhỏ; đó là một suy nghĩ lại cơ bản về cách một blockchain nên được thiết kế để phục vụ thế hệ ứng dụng phi tập trung tiếp theo. Bài viết này sẽ giải thích triết lý cốt lõi của Sui, khám phá các vấn đề mà nó nhằm giải quyết và minh họa lý do tại sao mô hình tập trung đối tượng độc đáo của nó đại diện cho một bước nhảy vọt đáng kể về phía trước. **Vấn đề: Thoát khỏi chuỗi xử lý tuần tự ** Trong nhiều năm, thế giới blockchain đã bị chi phối bởi mô hình “dựa trên tài khoản”, được phổ biến bởi Ethereum. Trong mô hình này, toàn bộ mạng về cơ bản là một máy tính khổng lồ, được chia sẻ. Mọi giao dịch, cho dù đó là chuyển token đơn giản giữa hai người hay tương tác phức tạp với giao thức DeFi, đều phải được xử lý theo một thứ tự cụ thể. Điều này được gọi là xử lý tuần tự. Hãy tưởng tượng một ngân hàng chỉ có một giao dịch viên. Không quan trọng nếu bạn chỉ muốn gửi séc hay bạn đang đăng ký một khoản vay kinh doanh phức tạp; mọi người phải đứng trong cùng một hàng duy nhất và được phục vụ từng người một. Đây chính xác là điểm tắc nghẽn gây hại cho các blockchain truyền thống. Nó dẫn đến một số vấn đề quan trọng: • Thông lượng thấp: Mạng chỉ có thể xử lý nhiều giao dịch như “đơn giao dịch” có thể xử lý trong một thời gian nhất định. • Độ trễ cao: Giao dịch đơn giản của bạn có thể bị mắc kẹt sau một giao dịch lớn, tốn nhiều tính toán, dẫn đến thời gian chờ đợi lâu. • Phí gas biến động: Khi đường dây quá dài (nhu cầu mạng cao), người dùng buộc phải đấu thầu với nhau, trả phí cắt cổ để thu hút sự chú ý của nhân viên giao dịch. Điều này làm cho nhiều ứng dụng, đặc biệt là trong trò chơi và phương tiện truyền thông xã hội, không khả thi về mặt kinh tế. Giải pháp của Sui: Cuộc cách mạng lấy đối tượng làm trung tâm Các nhà phát triển của Sui, nhiều người trong số họ đến từ dự án blockchain Diem tiên tiến của Meta, nhận ra rằng dòng tệp đơn này là không cần thiết. Họ đặt ra một câu hỏi đơn giản nhưng sâu sắc: “Tại sao hai giao dịch hoàn toàn không liên quan lại phải chờ đợi nhau?” Nếu Alice đang gửi một vé xem hòa nhạc NFT cho Bob và Charlie đang chế tạo riêng một thanh kiếm trong một trò chơi đi��n tử, hai sự kiện này không ảnh hưởng đến nhau. Họ không chạm vào cùng một dữ liệu. Vậy tại sao họ phải bị ép vào một thứ tự tuần tự? Cái nhìn sâu sắc này đã dẫn đến mô hình tập trung đối tượng của Sui. Thay vì một sổ cái chia sẻ duy nhất (mô hình tài khoản), Sui xem thế giới như một tập hợp các đối tượng có thể lập trình được. Một đối tượng có thể là bất cứ thứ gì: đồng xu, NFT, nhân vật trò chơi, vị trí DeFi hoặc hồ sơ truyền thông xã hội. Mỗi đối tượng có một ID duy nhất trên toàn cầu và được kiểm soát bởi chủ sở hữu. Hệ quả đột phá của mô hình này là thực hiện giao dịch song song. Quay trở lại với ví dụ về ngân hàng của chúng ta, Sui giống như một ngân hàng với hàng ngàn người thanh toán. Nếu giao dịch của bạn chỉ liên quan đến các đối tượng bạn sở hữu (như chuyển tiền của chính bạn), bạn có thể đến bất kỳ giao dịch viên nào có sẵn mà không cần chờ ở hàng chính. Đây là “con đường nhanh”. Chỉ khi một giao dịch liên quan đến một đối tượng được chia sẻ (như gửi vào một nhóm đầu tư trung tâm mà nhiều người sử dụng) thì nó mới cần phải trải qua một quy trình đặt hàng chính thức hơn. **Các yếu tố khác biệt chính xác định lại trải nghiệm người dùng Sự thay đổi kiến trúc này cho phép một số tính năng độc đáo giải quyết trực tiếp các điểm khó khăn của các blockchain cũ.** • Khả năng mở rộng lớn thông qua tính song song: Bằng cách xử lý phần lớn các giao dịch song song, Sui có thể đạt được thông lượng lý thuyết được đo bằng hàng trăm nghìn giao dịch mỗi giây (TPS). Khả năng mở rộng theo chiều ngang này có nghĩa là khi nhiều trình xác thực (máy tính) được thêm vào mạng, dung lượng của nó sẽ tăng lên, tương tự như thêm nhiều máy chủ hơn vào ứng dụng web2. • Phí khí đốt luôn thấp và có thể dự đoán được: Mô hình khí đốt của Sui được thiết kế để ổn định. Bởi vì dung lượng mạng không phải là một nút thắt liên tục, các cuộc chiến khí đốt phần lớn được giảm nhẹ. Hơn nữa, Sui tách chi phí thực hiện với chi phí lưu trữ dữ liệu. Người dùng phải trả một khoản phí một lần để lưu trữ các đối tượng của họ trên chuỗi, tạo ra một “quỹ lưu trữ” bù đắp cho người xác thực trong tương lai về chi phí lưu giữ dữ liệu đó. Điều này dẫn đến chi phí giao dịch có thể dự đoán được hơn, điều này rất quan trọng đối với các nhà phát triển xây dựng các doanh nghiệp bền vững. • Tăng cường bảo mật với Sui Move: Sui sử dụng phiên bản mạnh mẽ của ngôn ngữ lập trình Move, được thiết kế đặc biệt để xử lý an toàn các tài sản kỹ thuật số. Không giống như các ngôn ngữ hợp đồng thông minh khác trong đó tài sản được biểu diễn dưới dạng các mục trong sổ cái, trong Move, một tài sản như Coin là một tài nguyên thực sự. Hệ thống kiểu ngôn ngữ đảm bảo nó không thể vô tình nhân đôi hoặc bị xóa, loại bỏ toàn bộ các lớp lỗi phổ biến và khai thác ở cấp độ trình biên dịch.
- Sui
0Ngôn ngữ di chuyển: Cung cấp năng lượng cho các hợp đồng thông minh của Sui
Khi bạn nghe nói về việc xây dựng trên Sui, một từ xuất hiện liên tục:* Di chuyển*. Nó không chỉ là một ngôn ngữ hợp đồng thông minh khác - đó là một mô hình lập trình ưu tiên bảo mật được thiết kế để ngăn chặn các lỗi và khai thác đã gây khó khăn cho các blockchain khác. Nếu bạn muốn xây dựng các ứng dụng mạnh mẽ, an toàn và hiệu suất cao trên Sui, hiểu Move là điều cần thiết. Về cốt lõi, Move xử lý tài sản kỹ thuật số như các đối tượng trong thế giới thực. Nếu bạn sở hữu một chiếc cốc, bạn không thể vô tình “sao chép” nó thành hai cốc hoặc quên nơi bạn đặt nó — quyền sở hữu luôn rõ ràng. Điều này được gọi làlập trình định hướng tài lượng, và đó là một trong những thế mạnh lớn nhất của Move. Nó đảm bảo mã thông báo, NFT và các tài sản khác không thể bị sao chép hoặc mất nếu không có mã của bạn làm cho nó trở thành “rất cố ý”. Trên Sui, Move được nâng cấp. Mô hình đối tượng của Sui mở rộng khả năng của Move bằng cách cho phép bạn lưu trữ dữ liệu trực tiếp trong các đối tượng, truyền chúng giữa các giao dịch và biến đổi chúng một cách an toàn mà không chạm vào trạng thái không liên quan. Điều này có nghĩa là bạn có thể thiết kế các ứng dụng mở rộng theo chiều ngang — xử lý song song dữ liệu của người dùng khác nhau — mà không gặp phải tắc nghẽn toàn cầu. Một lợi ích lớn khác là* đánh máy tĩnh mạnh*. Move buộc bạn phải xác định chính xác những gì có thể và không thể xảy ra với dữ liệu của bạn trước khi mã chạy. Nếu hợp đồng của bạn cố gắng gửi mã thông báo đến một địa chỉ không hợp lệ hoặc sửa đổi một đối tượng bất biến, nó sẽ không biên dịch. Mặc dù điều này có thể cảm thấy nghiêm ngặt lúc đầu, nhưng nó làm giảm đáng kể lỗi thời gian chạy và rủi ro bảo mật. Các nhà phát triển mới sử dụng Move thường phải đối mặt với một đường cong học tập, đặc biệt nếu họ đến từ Solidity hoặc JavaScript. Sự chuyển đổi tư duy từ “biến và cân bằng” sang “đối tượng và quyền sở hữu” có thể mất thời gian. Một điểm khởi đầu tốt là khám phá các ví dụ Move chính thức của Sui, mày mò với các mô-đun nhỏ và thử nghiệm chuyển giao đối tượng. Một khi bạn nắm được quyền sở hữu và khả năng, mọi thứ khác bắt đầu nhấp vào. Trong thực tế, triết lý thiết kế của Move giúp bạn tránh khỏi toàn bộ các loại sai lầm tốn kém. Thay vì dựa vào các đánh giá bên ngoài để nắm bắt logic nguy hiểm sau khi triển khai, bản thân ngôn ngữ này giúp ngăn chặn các lỗi đó bao giờ được biên dịch. Kết hợp với thông lượng cao và thực thi dựa trên đối tượng của Sui, Move mở ra cánh cửa cho các ứng dụng phi tập trung phức tạp, tương tác và an toàn hơn hầu hết các chuỗi có thể hỗ trợ. Bằng cách dựa vào các nguyên tắc của Move — coi tài sản như tài nguyên độc đáo, xây dựng bằng cách đánh máy mạnh mẽ và tận dụng lợi thế thực thi song song của Sui — bạn có thể tạo ra các hợp đồng vừa mạnh mẽ vừa đáng tin cậy. Trong thế giới của Web3, đó là một lợi thế cạnh tranh nghiêm trọng.
- Move
0Vai trò của sự đồng thuận trong Sui
Về cốt lõi, blockchain là một cỗ máy thỏa thuận khổng lồ. Mỗi node cần phải đồng ý về những gì đã xảy ra, theo thứ tự nào và ai sở hữu cái gì. Điều này được gọi là* sự đồng lệ*, và nó là xương sống của niềm tin trong một mạng lưới phi tập trung. Sui có một cách tiếp cận mới cho việc này, tối ưu hóa tốc độ, khả năng mở rộng và hiệu quả. Trong hầu hết các blockchain, tất cả các giao dịch - dù đơn giản hay phức tạp - đều trải qua cùng một quy trình đồng thuận nặng nề. Điều đó giống như khiến mọi người phải đợi trong cùng một hàng an ninh sân bay, cho dù họ đang mang theo một chiếc ba lô hay toàn bộ container chở hàng. Sui thay đổi điều này với một hệ thống giao dịch chế độ kép**. Đây là cách nó hoạt động: •Giao dịch đơn giản— Nếu một giao dịch chỉ chạm vào các đối tượng thuộc sở hữu* (thuộc về một người dùng), giao dịch đó không cần sự đồng thuận toàn diện. Thay vào đó, Sui sử dụng một cơ chế nhanh hơn gọi làByzantine Consistent Broadcast. Điều này cho phép các giao dịch được giải quyết gần như ngay lập tức mà không liên quan đến toàn bộ mạng lưới trong việc sắp xếp chúng. •Giao dịch phức tạng— Nếu một giao dịch liên quan đến đối tượng được chia sẻ (có thể truy cập được cho nhiều người dùng), Sui sử dụngNarwhal & Bullshark, giao thức đồng thuận nâng cao của nó. Điều này đảm bảo rằng mọi người đều đồng ý về thứ tự chính xác của các sự kiện để không có nguy cơ chi tiêu gấp đôi hoặc cập nhật mâu thuẫn. Vẻ đẹp của thiết kế này là mạng không lãng phí tài nguyên để đặt hàng các giao dịch không cần phải đặt hàng. Bằng cách bỏ qua sự đồng thuận trong nhiều trường hợp phổ biến, Sui có thể xử lý nhiều giao dịch song song hơn nhiều so với các chuỗi truyền thống. Tại sao điều này lại quan trọng? •* Độ trễ thấp hơn*- Người chơi trong trò chơi có thể nâng cấp nhân vật của họ ngay lập tức mà không cần chờ toàn bộ mạng. •* Thông lượng cao hơn*- Ứng dụng DeFi có thể xử lý hàng nghìn lần chuyển mã thông báo độc lập cùng một lúc. •* Hiệu quả chi phí*- Người dùng trả ít tiền xăng hơn vì mạng lưới không bị tắc nghẽn bởi các vòng đồng thuận không cần thiết. Hãy tưởng tượng một thị trường trò chơi nơi hàng trăm người chơi mua và bán các mặt hàng cùng một lúc. Trên hầu hết các blockchain, mỗi giao dịch sẽ đứng thẳng hàng, lần lượt. Trên Sui, nếu các giao dịch không chạm vào cùng một tài nguyên được chia sẻ, tất cả chúng có thể được xác nhận song song - như hàng chục trạm tự thanh toán thay vì một nhân viên thu ngân duy nhất. Mô hình đồng thuận lai này là một trong những đổi mới lớn nhất của Sui. Đó là lý do tại sao mạng có thể mở rộng quy mô lên hàng triệu giao dịch hàng ngày mà không cần đổ mồ hôi - tất cả trong khi vẫn giữ nguyên sự an toàn và tin cậy.
- Sui
- Transaction Processing
0Vai trò của sự đồng thuận trong Sui
Về cốt lõi, blockchain là một cỗ máy thỏa thuận khổng lồ. Mỗi node cần phải đồng ý về những gì đã xảy ra, theo thứ tự nào và ai sở hữu cái gì. Điều này được gọi là* sự đồng lệ*, và nó là xương sống của niềm tin trong một mạng lưới phi tập trung. Sui có một cách tiếp cận mới cho việc này, tối ưu hóa tốc độ, khả năng mở rộng và hiệu quả. Trong hầu hết các blockchain, tất cả các giao dịch - dù đơn giản hay phức tạp - đều trải qua cùng một quy trình đồng thuận nặng nề. Điều đó giống như khiến mọi người phải đợi trong cùng một hàng an ninh sân bay, cho dù họ đang mang theo một chiếc ba lô hay toàn bộ container chở hàng. Sui thay đổi điều này với một hệ thống giao dịch chế độ kép**. Đây là cách nó hoạt động: •Giao dịch đơn giản— Nếu một giao dịch chỉ chạm vào các đối tượng thuộc sở hữu* (thuộc về một người dùng), giao dịch đó không cần sự đồng thuận toàn diện. Thay vào đó, Sui sử dụng một cơ chế nhanh hơn gọi làByzantine Consistent Broadcast. Điều này cho phép các giao dịch được giải quyết gần như ngay lập tức mà không liên quan đến toàn bộ mạng lưới trong việc sắp xếp chúng. •Giao dịch phức tạng— Nếu một giao dịch liên quan đến đối tượng được chia sẻ (có thể truy cập được cho nhiều người dùng), Sui sử dụngNarwhal & Bullshark, giao thức đồng thuận nâng cao của nó. Điều này đảm bảo rằng mọi người đều đồng ý về thứ tự chính xác của các sự kiện để không có nguy cơ chi tiêu gấp đôi hoặc cập nhật mâu thuẫn. Vẻ đẹp của thiết kế này là mạng không lãng phí tài nguyên để đặt hàng các giao dịch không cần phải đặt hàng. Bằng cách bỏ qua sự đồng thuận trong nhiều trường hợp phổ biến, Sui có thể xử lý nhiều giao dịch song song hơn nhiều so với các chuỗi truyền thống. Tại sao điều này lại quan trọng? •* Độ trễ thấp hơn*- Người chơi trong trò chơi có thể nâng cấp nhân vật của họ ngay lập tức mà không cần chờ toàn bộ mạng. •* Thông lượng cao hơn*- Ứng dụng DeFi có thể xử lý hàng nghìn lần chuyển mã thông báo độc lập cùng một lúc. •* Hiệu quả chi phí*- Người dùng trả ít tiền xăng hơn vì mạng lưới không bị tắc nghẽn bởi các vòng đồng thuận không cần thiết. Hãy tưởng tượng một thị trường trò chơi nơi hàng trăm người chơi mua và bán các mặt hàng cùng một lúc. Trên hầu hết các blockchain, mỗi giao dịch sẽ đứng thẳng hàng, lần lượt. Trên Sui, nếu các giao dịch không chạm vào cùng một tài nguyên được chia sẻ, tất cả chúng có thể được xác nhận song song - như hàng chục trạm tự thanh toán thay vì một nhân viên thu ngân duy nhất. Mô hình đồng thuận lai này là một trong những đổi mới lớn nhất của Sui. Đó là lý do tại sao mạng có thể mở rộng quy mô lên hàng triệu giao dịch hàng ngày mà không cần đổ mồ hôi - tất cả trong khi vẫn giữ nguyên sự an toàn và tin cậy. Nếu bạn đã sẵn sàng, bây giờ tôi có thể thực hiện* Điều 4 - Move Language: Powering Smart Contractscủa Sui*để chúng tôi có bốn hợp đồng đầu tiên được hoàn thiện hoàn toàn.
- Sui
- Architecture
- SDKs and Developer Tools
- Transaction Processing
- Security Protocols
0Hiểu mô hình lấy đối tượng làm trung tâm của Sui
Hầu hết các blockchain coi token và trạng thái hợp đồng thông minh như các mục nhập trong một sổ cái được chia sẻ khổng lồ, nhưng Sui lật ngược điều đó. Thay vì làm việc với một quốc gia toàn cầu khổng lồ, Sui được xây dựng xung quanh các đối tượng**- những mẩu dữ liệu độc lập tồn tại trên chuỗi và có thể được sở hữu, chuyển giao hoặc sửa đổi. Hãy nghĩ về các đối tượng như bưu kiện trong bưu điện. Mỗi người có một ID duy nhất, một chủ sở hữu xác định và nội dung cụ thể. Công việc của blockchain là đảm bảo các bưu kiện này không thể bị đánh cắp, nhân đôi hoặc thay đổi mà không có sự đồng ý của chủ sở hữu. Trong Sui, một đối tượng có thể là bất cứ thứ gì: đồng xu, NFT, nhân vật trò chơi, mảnh đất trong metaverse hoặc thậm chí là cấu trúc dữ liệu nội bộ của hợp đồng thông minh. Có hai loại đối tượng chính trong Tùy: •* Đối tượng thuộc sở hữu*- thuộc về một địa chỉ cụ thể. Chỉ địa chỉ đó (hoặc các hợp đồng thông minh được ủy quyền của nó) mới có thể sửa đổi chúng. •* Đối tượng được chia sẻ*- có thể truy cập cho nhiều người dùng. Những điều này đòi hỏi sự đồng thuận và sắp xếp giao dịch nghiêm ngặt hơn vì nhiều người có thể tương tác với họ cùng một lúc. Sự kỳ diệu thực sự đến từ* Thiết kế định hướng tài nguyên của Move*. Trong Sui, các đối tượng được lưu trữ dưới dạng tài nguyên, có nghĩa là chúng không thể bị sao chép hoặc vô tình xóa. Nếu bạn chuyển một đối tượng, bản gốc sẽ biến mất - không có bản sao, không có mục nhập ma. Điều này giữ cho hệ thống an toàn và có thể dự đoán được. Khi bạn gửi một giao dịch bằng Sui, về cơ bản bạn đang nói, “Tôi muốn lấy đối tượng này, làm gì đó với nó và tạo ra một phiên bản mới.” Blockchain xác minh rằng bạn thực sự sở hữu đối tượng và hành động của bạn được cho phép, sau đó cập nhật trạng thái cho phù hợp. Đối với các nhà phát triển, cách tiếp cận này thay đổi trò chơi. Nó có nghĩa là: • Bạn có thể thiết kế các ứng dụng trong đó mọi tài sản là công dân hạng nhất, không chỉ là một hàng cơ sở dữ liệu. • Các giao dịch liên quan đến các đối tượng không liên quan có thể chạy song song, làm cho mạng nhanh hơn nhiều so với các chuỗi truyền thống. • Các vật phẩm trò chơi phức tạp, vị trí DeFi hoặc thông tin xác thực nhận dạng có thể tồn tại dưới dạng các đối tượng an toàn, có thể chuyển nhượng. Đây là một ví dụ nhanh: hãy tưởng tượng bạn xây dựng một thị trường cho kiếm trong trò chơi. Mỗi thanh kiếm là một đối tượng với các chỉ số như sức mạnh tấn công, độ bền và độ hiếm. Khi người chơi nâng cấp thanh kiếm của họ, họ sẽ thay thế đối tượng cũ bằng một đối tượng mới có số liệu thống kê cập nhật. Blockchain đảm bảo chỉ chủ sở hữu hợp pháp mới có thể thực hiện thay đổi đó - và không ai khác có thể sao chép thanh kiếm. Hiểu mô hình lấy đối tượng làm trung tâm này là chìa khóa để xây dựng các ứng dụng thực sự tương tác và có thể mở rộng trên Sui. Nó chuyển suy nghĩ của bạn từ “cập nhật các biến số trong hợp đồng toàn cầu” sang “chuyển các tài sản giống như thế giới thực một cách an toàn, có thể kiểm chứng được”.
- Sui
- Architecture
0Lộ trình 2025 của Sui: Đổi mới kỹ thuật để áp dụng hàng loạt
Sui, ra mắt vào năm 2023, đã sẵn sàng để áp dụng hàng loạt với lộ trình năm 2025. Với 2 tỷ đô la TVL và 8 triệu ví, mã thông báo SUI của Sui thúc đẩy hệ sinh thái của nó. Tổng quan Sui: Hơn 120.000 TPS và phí thấp của Sui cho phép dApps thị trường đại chúng. ZKLogin và tài trợ gas thúc đẩy việc áp dụng, với Mysticeti v2 nâng cao hiệu suất. Kiến trúc: Mô hình lấy đối tượng trung tâm và Mysticeti hỗ trợ xử lý song song, với quy mô theo chiều ngang đảm bảo dung lượng trong tương lai. Sự phức tạp có thể làm chậm việc áp dụng nhà phát triển. SDK và Công cụ dành cho nhà phát triển: SDK và mạng thử nghiệm của Sui hợp lý hóa việc phát triển, với Move đảm bảo an ninh. Move Registry sẽ tăng khả năng cấu tạo, thúc đẩy việc áp dụng. Xử lý giao dịch: Thực thi song song và tính cuối cùng dưới giây hỗ trợ dApps quy mô lớn. Mysticeti v2 sẽ giảm độ trễ, tăng cường khả năng áp dụng của người dùng. Giao thức bảo mật: Quy tắc sở hữu của Move và BFT của Mysticeti đảm bảo sự tin tưởng. Ví zkLogin và edDSA thúc đẩy việc áp dụng an toàn cho người dùng chính thống. NFT: NFT động cho phép các ứng dụng có thể mở rộng, với phí thấp thúc đẩy sự tương tác. SuiBridge sẽ mở rộng việc áp dụng chuỗi chênh lệch, nâng cao thị trường. Di chuyển: Thiết kế an toàn của Move hỗ trợ DApps trong tương lai, với việc tối ưu hóa việc thực thi SuiVM. Move Registry sẽ thúc đẩy việc áp dụng nhà phát triển vào năm 2025. Lộ trình năm 2025 của Sui tận dụng những đổi mới kỹ thuật để áp dụng hàng loạt, định hình tương lai của Web3.
- Sui
- Architecture
- Transaction Processing
0Thiết kế các giao dịch Sui tiết kiệm khí - Hướng dẫn thực tế
Sui đã được biết đến với mức phí gas rất thấp so với các tên tuổi lớn như Ethereum hoặc Solana, nhưng “thấp” không có nghĩa là “miễn phí”. Nếu bạn đang xây dựng một ứng dụng quy mô lớn - đặc biệt là một ứng dụng xử lý hàng nghìn giao dịch mỗi ngày - ngay cả một sự kém hiệu quả nhỏ trong mỗi giao dịch cuối cùng cũng sẽ khiến bạn phải trả giá. Rất nhiều nhà phát triển rơi vào bẫy suy nghĩ: * “Nếu tôi chỉ đưa tất cả hành động của mình vào một giao dịch lớn, nó sẽ hiệu quả hơn.” * Ở Sui, điều đó không phải lúc nào cũng đúng. Mỗi khi bạn thêm nhiều đối tượng đầu vào**(tài sản trên chuỗi mà giao dịch của bạn đọc hoặc thay đổi), độ phức tạp sẽ tăng lên. Điều này có thể đẩy giao dịch của bạn vượt quá ngân sách gas hoặc gây ra lỗi “hết gas”, đặc biệt là khi chạy các hoạt động số lượng lớn. ####Bước 1: Hồ sơ trước khi bạn tối ưu hóa Bước đầu tiên hướng tới hiệu quả khí đốt là hiểu cách sử dụng hiện tại của bạn. Sui cung cấp cho bạn một cách dễ dàng để làm điều này bằng cách sử dụng --gas-budgetcờ của CLI. Bằng cách mô phỏng các giao dịch của bạn ở các ngân sách khí đốt khác nhau, bạn có thể thấy họ thực sự cần bao nhiêu gas. Điều này giúp bạn phát hiện ra liệu một “giao dịch lớn” duy nhất có đang ăn nhiều khí hơn bình thường hay không. Ví dụ: sui client call --function my_function \ --module my_module \ --package \ --args \ --gas-budget 2000 Nếu bạn thấy giao dịch thất bại trừ khi bạn đặt ngân sách gas khổng lồ, đó là lá cờ đỏ của bạn. ####Bước 2: Chia nhỏ các giao dịch lớn Thay vì nhồi nhét mọi thứ thành một lần, hãy chia nó thành các nhóm logic nhỏ hơn. Giả sử dApp của bạn đang đúc các NFT mới, chuyển chúng cho người dùng và cập nhật một số siêu dữ liệu - tất cả trong một giao dịch. Đó là ba phép toán riêng biệt, mỗi thao tác có đối tượng đọc và ghi riêng. Cách tiếp cận tốt hơn: Giao dịch 1 → Đúc NFT Giao dịch 2 → Chuyển NFT Giao dịch 3 → Cập nhật siêu dữ liệu Bằng cách phá vỡ chúng ra, bạn giảm số lượng đối tượng đầu vào trong mỗi bước, điều này làm giảm khả năng đạt đến giới hạn gas hoặc lỗi phiên bản đối tượng. ####Bước 3: Chữ ký hàng loạt trong SDK Nếu bạn đang sử dụng Sui JavaScript SDK, có một viên ngọc ẩn: bạn có thể kínhiều hành động trong một mộtvà sau đó gửi chúng cùng nhau. Điều này giúp tiết kiệm khí bằng cách tránh xác minh chữ ký lặp đi lặp lại, có thể cộng lại trong các tình huống khối lượng lớn. Quá trình này rất đơn giản: Tạo nhiều khối giao dịch trong bộ nhớ. Ký tất cả cùng một lúc. Gửi họ trong một cuộc gọi RPC duy nhất. Nhưng có một vấn đề - bạn phảilàm mới trạng thái đối tượng của bạnngay trước khi thực hiện lô. Nếu số phiên bản của đối tượng thay đổi trong khi giao dịch của bạn đang chờ xử lý, nó sẽ không thành công. ####Bước 4: Sử dụng dữ liệu bất biến cho các hằng số Đây là một tối ưu hóa tinh tế nhưng mạnh mẽ: dữ liệu bất biến (các đối tượng không bao giờ thay đổi sau khi tạo) có thể* đọcmiễn phí*trong Sui. Nếu bạn đang lưu trữ lại các giá trị giống nhau trong các đối tượng có thể thay đổi - như giá mặc định, tùy chọn cấu hình hoặc ID tham chiếu - bạn đang làm cho các giao dịch của mình thực hiện công việc không cần thiết. Thay vào đó: Lưu trữ các hằng số đó dưới dạng đối tượng bất biến một lần. Tham khảo chúng trong các giao dịch của bạn thay vì sao chép chúng mỗi lần. Bằng cách này, các giao dịch của bạn không lãng phí việc đọc hoặc viết cùng một dữ liệu liên tục. ####Bước 5: Giữ tư duy hiệu quả khí Tối ưu hóa khí đốt không chỉ là tiết kiệm một vài xu; mà còn là làm cho DApp của bạnđáng tin cậy hơn. Khi các giao dịch của bạn tinh gọn, chúng thất bại ít thường xuyên hơn, chạy nhanh hơn và dễ gỡ lỗi hơn. Theo thời gian, những khoản tiết kiệm này tăng lên - cả về tiền bạc và trải nghiệm người dùng mượt mà hơn. Điểm nổi bật: Hồ sơ giao dịch trước khi tối ưu hóa. Chia các giao dịch lớn thành những giao dịch nhỏ hơn. Chữ ký hàng loạt để lưu khi xác minh lặp đi lặp lại. Lưu trữ các hằng số là bất biến để tránh chi phí gas không cần thiết. Luôn làm mới trạng thái đối tượng trước khi gửi giao dịch. Nắm vững những thói quen này sớm và bạn sẽ tránh được các vấn đề đau đớn về việc mở rộng quy mô sau này. Phí thấp của Sui là một món quà - nhưng chỉ khi bạn đối xử với họ một cách tôn trọng.
- Sui
- SDKs and Developer Tools
- Transaction Processing
0Tự động hóa giao dịch Sui với SDK
Khi bạn lần đầu tiên bắt đầu với Sui, việc thực hiện các giao dịch theo cách thủ công - cho dù từ CLI hay thông qua giao diện người dùng ví - cảm thấy hoàn toàn ổn. Bạn viết mô-đun Move của bạn, triển khai nó vào devnet và sau đó thực hiện từng hàm một, ký mỗi giao dịch khi nó bật lên. Nó đơn giản, trực tiếp và thành thật là một cách tuyệt vời để học hỏi. Nhưng đây là điểm mấu chốt: một khi bạn chuyển từ “chơi đùa” sang xây dựng một ứng dụngthực thực, các giao dịch thủ công sẽ trở thành nút thắt. Hãy tưởng tượng một DApp yêu cầu 5—10 giao dịch liên tiếp - có thể đúc NFT, đặt siêu dữ liệu, chuyển nó sang tài khoản khác và ghi lại hành động trong sổ đăng ký được chia sẻ. Làm điều đó theo cách thủ công với lời nhắc ví liên tục sẽ là một cơn ác mộng đối với người dùng của bạn và một sự chậm lại lớn đối với bạn với tư cách là một nhà phát triển. Đây là nơitự động hóa thông qua JavaScript SDKbước vào. SDK cung cấp cho bạn khả năng tương tác với mạng Sui theo chương trình. Điều đó có nghĩa là mã của bạn có thể chuẩn bị, ký và gửi giao dịch mà không cần sự can thiệp thủ công liên tục và thậm chí nó có thể xử lý lỗi một cách duyên dáng bằng cách thử lại khi có sự cố xảy ra. ###Bước 1 - Thiết lập môi trường của bạn Trước khi bạn có thể tự động hóa bất cứ điều gì, bạn cần cài đặt SDK JavaScript và nhà cung cấp để nói chuyện với mạng. Cài đặt nó với: npm install @mysten/sui.js Sau đó thiết lập kết nối của bạn: import { JsonRpcProvider, Ed25519Keypair, RawSigner } from '@mysten/sui.js'; const provider = new JsonRpcProvider(); const keypair = Ed25519Keypair.generate(); // or load from existing keys const signer = new RawSigner(keypair, provider); Đây providerlà liên kết của bạn đến blockchain và signerlà những gì bạn sẽ sử dụng để ký các giao dịch bằng mã thay vì dựa vào lời nhắc bật lên. ###Bước 2 - Làm mới trạng thái đối tượng trước mỗi giao dịch Một trong những nguyên nhân phổ biến nhất của các giao dịch tự động thất bại trong Sui là vấn đề* không phù hợp phiên bản đối tượng*. Mỗi khi một đối tượng thay đổi, số phiên bản của nó tăng lên. Nếu tập lệnh của bạn lấy dữ liệu của một đối tượng, chờ một chút và sau đó cố gắng sử dụng nó, rất có thể phiên bản bị lỗi thời - đặc biệt nếu đối tượng được chia sẻ hoặc hệ thống của bạn đang xử lý nhiều giao dịch. Cách khắc phục rất đơn giản nhưng rất quan trọng:* luôn làm mới dữ liệu đối tượng của bạn ngay trước khi gửi giao dịch*. const freshObject = await provider.getObject({ id: objectId, options: { showContent: true } }); Điều này đảm bảo bạn đang làm việc với phiên bản mới nhất và giảm bớt những lỗi “phiên bản đối tượng đã thay đổi” gây khó chịu. ###Bước 3 - Giao dịch theo một Một lợi thế lớn khác của tự động hóa là khả năng gói nhiều hoạt động liên quan vào một giao dịch. Trên Sui, bạn có thể soạn một số cuộc gọi thành một khối giao dịch duy nhất, giảm số lượng chữ ký và cải thiện hiệu quả. import { TransactionBlock } from '@mysten/sui.js'; const tx = new TransactionBlock(); tx.moveCall({ target: ${packageId}::module::function1, arguments: [tx.pure(arg1), tx.pure(arg2)] }); tx.moveCall({ target: ${packageId}::module::function2, arguments: [tx.pure(arg3)] }); const result = await signer.signAndExecuteTransactionBlock({ transactionBlock: tx }); console.log(result); Thay vì yêu cầu người dùng xác nhận hai giao dịch riêng biệt, bạn chỉ cần gửi một giao dịch, tiết kiệm thời gian và giảm ma sát. ###Bước 4 - Triển khai logic thử lại với phản hồi theo cấp mần Ngay cả với mã hoàn hảo, giao dịch đôi khi thất bại. Sự cố mạng, thời gian chờ RPC hoặc không khả dụng tạm thời điểm cuối có thể làm gián đoạn luồng của bạn. Nếu bạn đang xây dựng tự động hóa cấp độ sản xuất, bạn không thể bỏ cuộc khi có lỗi - bạn cần thử lại. Một cách tiếp cận vững chắc làlùi ngược theo cấp mần: thử lại giao dịch thất bại sau một thời gian chờ đợi ngắn, tăng gấp đôi độ trễ mỗi lần cho đến khi bạn thành công hoặc đạt đến giới hạn thử lại. async function executeWithRetry(executeFn, maxRetries = 5) { let attempt = 0; let delay = 1000; // 1 second while (attempt setTimeout(res, delay)); delay *= 2; // exponential increase } } throw new Error('Transaction failed after max retries'); } Với điều này, một trục trặc mạng tạm thời sẽ không làm mất toàn bộ quá trình của bạn. ###Bước 5 - Quản lý các khóa an toàn để tự động hóa Một phần khó khăn của việc tự động hóa giao dịch là tập lệnh của bạn cần khả năng ký. Điều đó có nghĩa là bạn tải khóa riêng của ví vào tập lệnh của mình hoặc sử dụng dịch vụ ký an toàn. Không bao giờ mã cứng khóa riêng vào cơ sở mã của bạn - lưu trữ chúng trong các biến môi trường hoặc sử dụng kho bảo mật (ví dụ: AWS Secrets Manager, HashiCorp Vault). Nếu ứng dụng của bạn chạy trong bối cảnh trình duyệt, hãy tích hợp với bộ điều hợp ví thay vì giữ khóa trực tiếp. Trong phần phụ trợ, sẽ an toàn hơn khi sử dụng tài khoản dịch vụ bị khóa với quyền tối thiểu. ###Bước 6 - Giảm ma sát người dùng Khi tự động hóa của bạn được áp dụng, chiến thắng lớn nhất là dành cho người dùng của bạn. Thay vì phê duyệt từng bước, họ phê duyệt một lần và ứng dụng thực hiện phần còn lại. Ví dụ: Thị trường có thể xử lý niêm yết, cập nhật siêu dữ liệu và chuyển tài sản chỉ bằng một cú nhấp chuột. Một trò chơi có thể xếp hàng loạt các bản cập nhật đối tượng liên quan đến trò chơi thành một giao dịch mỗi lượt. Bạn càng ít làm gián đoạn người dùng, trải nghiệm của họ càng mượt mà hơn - và họ càng có nhiều khả năng tiếp tục sử dụng ứng dụng của bạn. ###**Bước 7 — Kiểm tra trước khi triển khai Luôn kiểm tra tính năng tự động hóa của bạn trêndevnethoặctestnettrước khi chạm vào mainnet. Các tập lệnh tự động hóa có thể gửi rất nhiều giao dịch một cách nhanh chóng và một lỗi trong logic có thể khiến bạn mất token hoặc làm hỏng trạng thái đối tượng được chia sẻ. Sử dụng địa chỉ kiểm tra, in hash giao dịch và xác minh các thay đổi provider.getObject()sau mỗi lần chạy. ###Bước 8 - Giám sát và ghi nhập Khi tự động hóa của bạn hoạt động, hãy thiết lập ghi nhật ký thích hợp. Theo dõi các hash giao dịch, dấu thời gian, mức sử dụng gas và bất kỳ lỗi nào. Theo thời gian, điều này sẽ giúp bạn điều chỉnh ngân sách gas, phát hiện các mẫu lỗi và tối ưu hóa khoảng thời gian thử lại. Cuối cùng, tự động hóa các giao dịch Sui không chỉ là viết ít mã hơn hoặc tránh các nhấp chuột lặp đi lặp lại - mà còn về việcxây dựng độ tin cậy vào ứng dụng của bạn. Bằng cách lấy dữ liệu đối tượng mới, phân nhóm các cuộc gọi liên quan, thêm logic thử lại và quản lý các khóa một cách an toàn, bạn đang thiết lập DApp của mình cho các hoạt động trơn tru, có thể mở rộng. Kết quả là một trải nghiệm mà mọi thứ chỉ hoạt động, cho cả bạn và người dùng của bạn - và trên blockchain, đó là một cảm giác hiếm có và có giá trị.
- Sui
- SDKs and Developer Tools
0- Bài ViếtDành choSuiAug 11, 2025
Ngăn chặn xung đột phiên bản đối tượng trong phát triển
Nếu bạn đã từng gặp phải lỗi * “Object version mismatch” *, bạn biết nó có thể gây bực bội như thế nào. Bạn đã có ID đối tượng chính xác, mã của bạn trông ổn, nhưng giao dịch từ chối thực hiện. Chuyện gì đang xảy ra? Vấn đề là hệ thống phiên bản của Sui. Mỗi đối tượng trên Sui đều có một* số phiên bản*tăng lên mỗi khi nó bị đột biến. Nếu kịch bản hoặc giao dịch của bạn sử dụng tham chiếu phiên bản cũ, Sui sẽ từ chối nó - đây là cách nó đảm bảo tính nhất quán và ngăn chặn việc ghi đè các thay đổi. Tin xấu là trong môi trường chuyển động nhanh (hoặc khi thử nghiệm với các đối tượng được chia sẻ), các phiên bản có thể thay đổi giữa thời gian bạn lấy chúng và thời điểm bạn gửi giao dịch của mình. Cách khắc phục rất đơn giản nhưng quan trọng: luôn tìm nạp dữ liệu đối tượng mới nhất ngay trước khi sử dụng nó. Trong CLI, đó là: sui client object Trong JavaScript, bạn sẽ làm: const object = await provider.getObject({ id: objectId, options: { showContent: true } }); Điều này đảm bảo bạn đang làm việc với trạng thái mới nhất. Đối với các tập lệnh tự động, hãy viết một trình trợ giúp nhỏ làm mới đối tượng mỗi lần trước khi bạn chuyển nó vào một giao dịch. Trong các thử nghiệm, tránh hoàn toàn các phiên bản mã cứng - thay vào đó, hãy tự động lấy chúng trong quá trình thiết lập thử nghiệm. Một khi bạn áp dụng thói quen này, lỗi không khớp phiên bản trở thành một cảnh tượng hiếm gặp và quy trình làm việc của bạn sẽ cảm thấy mượt mà hơn rất nhiều, đặc biệt nếu bạn đang cộng tác với các nhà phát triển khác có thể chạm vào các đối tượng tương tự.
- SDKs and Developer Tools
0