并发模型

通过把智能合约交易派发到并行的执行管道同时执行,能够提高大量合约交易并发执行的能力,缩短整体交易执行时间。

  • 把一个出块时间内需要执行的所有智能合约,划分为到不同管道中执行。管道这里特指合约处理器,意味着不同的管道可以在不同的线程中同时进行合约执行。
  • 管道分为串行管道和并行管道,不同并行管道可以并行执行,串行管道不能和其他管道并行执行,最多只有一个串行管道。
  • 一个管道启动后,其中的智能合约交易串行执行。
  • 先执行串行管道中的智能合约,再并行执行多个并行管道中的智能合约。
  • 读取或者修改的账户或合约地址列表称作本交易的依赖地址列表。智能合约交易可以在客户端预先执行获取依赖地址列表。普通交易也有依赖地址列表。依赖地址列表有冲突的交易不能放入不同的管道。
  • 交易中不预先附加依赖地址列表的交易,进入串行管道,但是提高手续费。
  • 合约声明的依赖地址列表和实际执行的依赖地址列表有冲突时,执行失败,惩罚性收手续费并打包空白交易。
  • 通过管道的并行执行,可以大幅提高(最少提高 4 倍)大部分场景下的合约交易 TPS。