构建时的限制

为了保证网络的安全和稳定,Sui 设置了一些限制和约束。这些限制旨在防止滥用,确保网络保持稳定和高效。本指南概述了这些限制和约束,以及如何在这些限制内构建应用程序。

这些限制在协议配置中定义,并由网络强制执行。如果任何限制被超出,交易将被拒绝或中止。作为协议的一部分,这些限制只能通过网络升级进行更改。

交易大小

交易的大小限制为 128KB。这包括交易负载的大小、交易签名的大小和交易元数据的大小。如果交易超过这个限制,将被网络拒绝。

对象大小

对象的大小限制为 256KB。这包括对象数据的大小。如果对象超过这个限制,将被网络拒绝。虽然单个对象不能绕过这个限制,但可以通过使用动态字段(例如 Bag)将一个基础对象与其他对象组合来实现更大存储需求。

单个纯参数大小

单个纯参数的大小限制为 16KB。超过这个限制的交易参数将导致执行失败。因此,要创建超过 ~500 个地址的向量(假设单个地址为 32 字节),需要在交易块或 Move 函数中动态拼接。标准函数如 vector::append() 可以将两个 ~16KB 的向量拼接成一个 ~32KB 的单一值。

创建的最大对象数

单笔交易中最多可以创建 2048 个对象。如果交易尝试创建超过 2048 个对象,将被网络拒绝。这也影响了动态字段,因为键和值都是对象。所以单笔交易中最多可以创建 1024 个动态字段。

创建的最大动态字段数

单个对象中最多可以创建 1024 个动态字段。如果对象尝试创建超过 1024 个动态字段,将被网络拒绝。

最大事件数

单笔交易中最多可以发出 1024 个事件。如果交易尝试发出超过 1024 个事件,将被中止。

了解并遵守这些限制对于开发稳定和高效的应用程序至关重要。通过合理的设计和优化,可以在这些限制内构建出功能强大的应用程序。