Skip to content

交易

交易是 Sui 上状态变化的核心机制。它们代表用户与 Sui 网络交互的方式,通过封装操作指令和数据来实现特定功能。交易可以用来创建新对象、更新现有对象、转移对象所有权,或与其他对象交互。

交易的组成部分

Sui 上的交易包含以下核心组件:

  1. 输入 交易的输入提供执行操作所需的所有数据,分为以下两类:

    • 纯参数:基本数据类型,如布尔值 (bool)、无符号整数 (u64)、地址 (address)、字符串 (string) 和向量 (vector<T>)。
    • 对象参数:包括交易访问的对象或其引用,例如共享对象、冻结对象或交易发起者拥有的对象。
  2. 指令 交易指令定义了要执行的具体操作。指令通常包括以下行为:

    • 调用 Move 模块中的函数。
    • 创建、更新或删除对象。
    • 转移对象的所有权。
  3. 气体对象 为了避免垃圾交易和拒绝服务攻击,每笔交易都需要指定一个气体对象来支付相关费用。气体对象需包含足够的 SUI 代币,用于支付计算资源和存储成本。

交易执行路径

交易在 Sui 上的执行路径根据对象的性质而不同,分为两种:快速路径和共识路径。

快速路径

适用于只涉及以下对象的交易:

  • 账户所有对象:这些对象由单个账户独占拥有。
  • 不可变对象:状态已被冻结的只读对象。

由于无需进行全局排序,快速路径的交易可以以极低的延迟完成,从而实现高效处理。

共识路径

适用于涉及共享对象(可变共享状态)的交易。这类交易需要通过网络达成共识,以确保状态变更的顺序和一致性。尽管共识路径需要更多的验证步骤并导致更高的延迟,但它确保了所有验证者对共享状态的更改达成一致,从而维护网络的完整性。

交易效果

交易效果是指交易对区块链状态的实际更改。具体包括以下内容:

  1. 费用支付 气体对象用于支付交易的计算和存储费用。

  2. 对象操作

    • 创建对象:例如初始化新的资产或资源。
    • 更新对象:修改对象的状态或属性。
    • 删除对象:移除已不再需要的对象。
  3. 事件记录 交易可以触发事件,这些事件通常用于记录系统中的重要状态变化或操作历史。

交易结果

每笔交易的执行结果由以下几个部分组成:

  • 交易摘要:交易哈希,用于唯一标识交易。
  • 交易数据:包括输入、指令和气体对象。
  • 交易效果:记录了交易对区块链状态的更改,包括:
    • 更新的对象及其新版本。
    • 使用的气体对象及其剩余余额。
    • 交易的气体成本。
    • 触发的事件列表。
  • 对象更改:包括对象所有权和数据状态的变更。
  • 余额更改:记录账户余额的增减情况。

总结

  • 交易是 Sui 上状态变化的关键机制。
  • 每笔交易由输入、指令和气体对象组成。
  • 交易在 Sui 上采用两种执行路径:快速路径和共识路径。
  • 交易效果描述了交易对链上状态的实际更改。

额外信息

在深入理解 Sui 交易的过程中,还需注意以下几点:

  1. 交易费用 所有交易都需支付费用,用于补偿网络的计算和存储资源消耗。

  2. 交易签名 交易需由发送者使用私钥签名,以验证其真实性和合法性。

  3. 交易传播 交易会在网络中广播,直到被验证并纳入区块链。