CKB new script verification with VM pause

CKB new script verification with VM pause

💡 原文中文,约2900字,阅读约需7分钟。
📝

内容提要

CKB交易在提交前需经过脚本验证,使用CKB-VM执行脚本。改进后的CKB-VM支持事件驱动的暂停,简化了大循环交易的处理流程,提高了效率,采用队列和多线程方案来处理交易。

🎯

关键要点

  • CKB交易在提交前需经过脚本验证,使用CKB-VM执行脚本。

  • 脚本是可在链上执行的二进制文件,通常用C或Rust实现。

  • 大循环交易的处理面临效率问题,CKB-VM之前支持不足。

  • 通过设置step cycles,CKB-VM可以在处理大循环交易时暂停。

  • 旧的脚本校验流程复杂,使用FIFO队列处理大交易,导致代码复杂度增加。

  • CKB-VM的暂停机制通过event-based方式改进,简化了状态保存和恢复。

  • 新的实现方案采用队列和多线程,提高了大交易处理效率。

  • 本地交易优先处理,不放入队列,网络交易则放入队列。

  • 新增的spawn实现允许父子VM共享暂停状态,优化了执行逻辑。

  • 整个改进旨在简化代码并提高CKB验证效率。

延伸问答

CKB交易的脚本验证是如何进行的?

CKB交易在提交前通过CKB-VM执行脚本进行验证,若脚本执行失败则交易被拒绝。

CKB-VM的新暂停机制有什么优势?

新暂停机制通过事件驱动方式简化了状态保存和恢复,提高了大交易处理效率。

大循环交易在CKB-VM中面临哪些挑战?

大循环交易处理效率低,旧的脚本校验流程复杂,导致代码复杂度增加。

CKB-VM如何处理大循环交易的暂停?

CKB-VM通过设置step cycles来实现暂停,允许在处理大循环交易时切换到其他业务。

CKB-VM的新实现方案是怎样的?

新实现方案采用队列和多线程,优先处理本地交易,网络交易则放入队列,提高了处理效率。

CKB-VM的脚本是用什么语言实现的?

CKB-VM的脚本通常用C或Rust语言实现。

🏷️

标签

➡️

继续阅读