Sui通过对共享对象的阻塞控制简化交易
Sui共享对象阻塞控制为热门对象引入了更智能的交易管理。
高吞吐量区块链的核心是它能快速、安全地处理大量交易。然而,当交易涉及写入相同的共享对象时,它们必须依次执行。这可能导致较长的检查点时间,进而降低状态同步的效率。
共享对象阻塞控制的首要目标是提高检查点执行的效率。通过控制每个检查点中接触到阻塞(或热门)共享对象的交易数量,系统确保处理时间保持一致,避免延迟。
该机制还通过确保更高gas费用的交易在检查点中优先处理,促进了交易的公平性。用户会期望成本更高的交易能更快地处理。
解决Sui早期的限制
Sui之前通过交易管理器管理共享对象阻塞。这个系统监控所有待执行交易的数量,等待所需对象可用。如果待处理交易超过了阈值,交易管理器就会停止接受新的交易签名或执行请求。
尽管之前的机制在某些情况下有效,但在多个方面表现不足。例如,它经常导致部分交易被拒绝以及由于验证节点之间的不一致性导致对象锁定。此外,它无法准确估算依赖交易序列的执行时间,导致处理效率低下和潜在的阻塞。当某个对象阻塞时,之前的解决方案会拒绝所有新交易,直到当前交易执行完毕,并且无法通过gas费用来优先处理交易。
阻塞控制的新方法
新的共识处理器设计引入了更精细的方式来管理热门共享对象之间的执行依赖关系,包含两个新功能:
- 推迟交易的能力:共识处理器现在可以将交易推迟到未来的共识提交中,更有效地管理检查点中的执行依赖关系。
- 主动取消交易:验证节点现在可以主动取消推迟过多次的交易。一旦取消,交易仍会被处理,但执行引擎会立即停止并释放被锁定的对象,快速返回取消错误给客户端。
共识处理器对交易进行排序和管理,该图使用彩色圆圈表示具有不同gas费用的交易。
当共识处理器收到共识提交时,它首先将提交中的交易与任何先前被推迟的交易合并,并按gas价格排序。然后,它逐一检查每笔交易,创建一个基于对象的执行依赖图,图片概述了检查点执行所需的关键步骤。这个过程确保了交易根据成本的顺序高效处理。
为了将交易添加到依赖图中,处理器会评估交易中涉及的所有共享对象。它会识别出队列最长的对象作为交易执行的起点,并将所有涉及对象的队列对齐到这一最大长度。交易的成本随后会被添加到每个对象的队列中,更新执行顺序。
依赖图根据最长队列为每个对象提供执行延迟的估算,这也表明了整个共识提交的总体延迟。每个共识提交中的队列长度有一个最大限制。如果交易超过了这个限制,它将被推迟到未来的提交中。如果多次推迟并超过一定阈值,交易将被取消并从处理流程中移除。这通常发生在交易目标是高度需求的对象,但提供的gas费用过低而无法竞争时。
新设计通过监控执行依赖关系并限制每个共识提交中涉及高需求共享对象的交易,显著提高了效率,从而保护了检查点执行。重要的是,不涉及这些高需求对象的交易不会受到这些限制的影响。
解决以往的挑战
如前所述,之前的系统在跟踪每个对象的交易队列时表现不佳,导致了效率低下。共享对象阻塞控制机制不仅解决了这些问题,还通过简化流程引入了显著的改进。新方法确保了所有验证节点在决定执行、推迟或取消交易时的一致性。这一变化有效地消除了与锁定对象相关的问题,并允许快速释放由低优先级交易占用的对象。
阻塞控制机制还通过在每个共识提交中跟踪完整的交易依赖图来提高准确性。这意味着它会仔细记录交易的顺序和依赖关系,从而更清晰地了解执行检查点所需的实际时间。通过这样做,它解决了之前被忽略的复杂性和低效问题。
此外,通过推迟交易并在后续的共识提交中与新的交易结合,新方法支持了本地费用市场。该设置有利于gas价格较高的交易,确保它们在繁忙时期有更大的处理机会。用户可以为交易的优先处理付费,这对DeFi活动尤其有用。
最后,新方法在热点共享对象工作负载中通常能在检查点执行性能下降之前实现更好的表现。这一改进源于验证节点的一致集体决策,带来了更高效的交易处理和整体网络吞吐量的增加。这种一致性确保了系统在性能问题出现之前能够处理更多交易。
Sui开辟新路径
共享对象阻塞控制的实施不仅是技术升级,也是战略性增强,大大提升了Sui的扩展性和效率。随着这一基础的建立,Sui上的用户和应用将享受更高效和更可靠的交易处理,这一优化为部署更复杂和响应更快的应用程序提供了跳板,进一步扩展了生态的能力。