Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

协议与网络限制

为保证网络安全与稳定,Sui 在协议层规定了一系列限制。超过这些限制时,交易会被网络拒绝或执行时中止。这些限制由协议配置定义,只能通过网络升级修改。开发应用时需在设计阶段就考虑这些上限。

交易大小

单笔交易的总大小上限为 128KB,包括交易负载、签名和元数据。超过后交易会被网络拒绝。

对象大小

单个对象的数据大小上限为 256KB。超过后对象无法被接受。若需存储更多数据,可使用「基础对象 + 动态字段」(如 Bag)等方式拆分。

单参数大小(Pure 参数)

单笔交易中,单个纯参数的大小上限为 16KB。若传入的向量等超过该限制,会导致执行失败。例如要传入超过约 500 个 address(每个 32 字节)的列表,应在 PTB 或 Move 内用 vector::append 等动态拼接,而不是一次性传入超过 16KB 的单个参数。

单笔交易创建的对象数

单笔交易中新创建的对象数量上限为 2048。超过后交易会被拒绝。动态字段的 key 和 value 也计为对象,因此单笔交易中新创建的动态字段数量上限约为 1000(动态对象字段同理)。

单笔交易访问的动态字段数

单笔交易中被访问的动态字段数量上限为 1000。超过后交易会被拒绝。

单笔交易发出的事件数

单笔交易中发出的事件数量上限为 1024。超过后交易会中止。

小结

限制项上限超出后果
交易大小128KB交易被拒绝
对象大小256KB对象被拒绝
单纯参数大小16KB执行失败
单笔创建对象数2048交易被拒绝
单笔创建动态字段数约 1000交易被拒绝
单笔访问动态字段数1000交易被拒绝
单笔事件数1024交易中止

设计大对象、批量铸造、复杂 PTB 或高吞吐事件时,请对照上述限制做容量与拆分设计。更多实践可参考「安全最佳实践」与「代码质量检查清单」。