杭州物联网前十名公司,河南seo推广多少钱,wordpress菜单加图标,小程序模板下载安装到目前为止#xff0c;一个简单的合约语言与合约虚拟机已经完成了#xff1b;接下来#xff0c;我们让我们的整个系统可以并行化#xff1b; 为什么要并行#xff1f;
性能#xff0c;如果我们用现在的互联网应用去衡量dapp#xff0c;dapp无法支撑这种量级的访问… 到目前为止一个简单的合约语言与合约虚拟机已经完成了接下来我们让我们的整个系统可以并行化 为什么要并行
性能如果我们用现在的互联网应用去衡量dappdapp无法支撑这种量级的访问当然退而求其次即使我们把关键数据上链这种量级对于现在的dapp也是不可想象的所以性能一直都是区块链一个热门话题于是乎出现了众多解决方案侧链分片二层等等我们即将要做的并行化也是为了提高性能的一种方案。 并行并行的内容是什么
一般我们第一反应就是交易并行五条交易同时运行那如果我们在深究一下交易之下是什么每条交易的本质是什么其实是操作链上数据对链上数据的读写我们对这些读写操作称之为读写集即一个交易对链的读操作写操作的集合我们需要把这些读写集并行起来有点类似与数据库很明显会有一些问题读写之间的冲突那我们应该如何解决这个问题呢 如何衡量并行
说并行之前我们先说一下现在的模式——串行执行交易一个一个的执行执行完之后的状态作为后一个交易的起始状态如此依次执行所有的交易
我们并行的时候有一个前提就是并行执行的结果与串行执行的结果保持一致。并行是多线程同时执行合约但是并不会导致交易的顺序产生变化这样也在不同的节点上运行时也能有一个统一的标准。 如何并行
以块为单位进行处理同时选取块中的多个交易执行然后将交易产生的读写集保存到缓存中保存的时候会将要读写的数据版本号也进行保存作为后续校验的依据交易执行完之后还需要进行校验主要的校验工作就是验证本交易的读取的数据是否被修改过如果被其他交易修改过则版本号会有变化则该交易无效需要重新执行如果验证没有问题就可以标记为完成。然后重复该过程直到区块中的所有交易都被执行当cpu的核数越多处理速度也会提高但是还依赖与交易之间的依赖程度依赖程度越搞则交易的重复执行的次数也会越多速度也会变慢。 后续我们就按照这个思路对之前合约引擎系统进行改造升级。