当前位置: 首页 > 专利查询>天津大学专利>正文

一种基于多核架构的智能合约执行优化方法技术

技术编号:25804914 阅读:15 留言:0更新日期:2020-09-29 18:39
本发明专利技术涉及一种基于多核架构的智能合约执行优化方法,包括两个阶段:1)并行挖矿阶段;2)并行验证阶段。本发明专利技术针对智能合约执行的两个阶段,分别设计并实现并行挖矿和并行验证策略。在并行挖矿阶段,通过引入Spinlock和MVCC解决了线程的频繁的上下文切换及读写锁的阻塞问题;同时,在并行验证阶段,通过对冲突交易进行分组利用双端队列实现交易的并行化;提出的智能合约并行化策略,为智能合约的执行提供了新的解决方案,同时也是对多线程环境下任务执行顺序可恢复性的探索,可以为有效解决并发问题,具有一定的理论价值和研究意义。

【技术实现步骤摘要】
一种基于多核架构的智能合约执行优化方法
本专利技术属于区块链领域,涉及交易并行化技术和并行验证策略,特别涉及一种基于多核架构的智能合约执行优化方法。
技术介绍
区块链的核心思想主要包括加密和共识,众多的加密算法为区块链的安全性提供了保障,共识机制主要包括挖矿和验证两个阶段。矿工将交易成功打包便可以获取一定的区块奖励,区块链以这种激励机制来保证其长期运行。在矿工广播出打包的交易之后,需要其他矿工停下手头的工作,立马验证结点的正确性,并投入到下一区块的竞争,区块链以这种共识机制保证其安全正确地运行。同时,其采用理论上最为公平的工作量证明(ProofofWork,PoW)作为共识算法,PoW是按照一个CPU一票来规定的,能最大程度上实现去中心化的算力分布。尽可能地保证区块链正确且安全地运行下去。以太坊(Ethereum)自被提出以来,便引起了众多开发者和相关学者的密切关注。其最大的改进和创新就是引入了智能合约,或者说Ethereum赋予了智能合约更强大的功能。简单来说,智能合约只是一段可以由图灵完备的语言编写的一段部署在区块链上的代码。智能合约作为连接区块链和用户之间的桥梁,通过将智能合约部署到区块链上便可以实现各种去中心化的应用,大大降低了区块链的使用门槛。Ethereum的出现为科技的发展带来了新的生命力,也因此开启了区块链2.0时代。智能合约同样需要经过挖矿和验证阶段的执行验证,所以智能合约在一次交易过程中需要被反复地执行。为了保证交易的正确性,以太坊虚拟机(EthereumVirtualMachine,EVM)被设定为单线程的,串行化的执行不仅会限制系统的吞吐量,而且难以利用当前多核处理器的优势。随着Ethereum的快速发展,其吸引了大量的开发者和用户。与比特币相对于区块链类似,以太币(ETH)是基于Ethereum发行的一种数字货币,是在Ethereum上实现交易的一种介质。同时,区块奖励也是ETH产生的唯一途径。但是,其低下的交易执行效率也导致超过1万笔交易被阻塞在Ethereum区块链上,这也意味着这些交易在短时间内得不到确认,影响交易的实时性。基于以上研究背景可知,如何提高Ethereum的吞吐量成为一个新的话题。区块链专家和相关学者也纷纷发表各自的见解,希望能从根本上提高智能合约的执行效率。如利用当前多核处理器和集群的优势,使智能合约能够并行化执行,这样可以在一定程度上增加系统的并发度,提高系统的吞吐量,缩短交易的确认时间。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种基于多核架构的智能合约执行优化方法,用于智能合约的并行化,提高Ethereum的吞吐量,不仅能有效地解决交易堵塞的问题,使交易得到快速的确认,减轻Ethereum的负担,而且能提高矿工和验证结点的工作效率并达到节约资源的目的。本专利技术解决其技术问题是通过以下技术方案实现的:一种基于多核架构的智能合约执行优化方法,其特征在于:所述方法的步骤为:1)并行挖矿阶段:矿工收集交易信息对智能合约进行初次调用执行,对交易进行标记并对执行顺序进行记录,包含步骤:S1、并行化执行交易;S2、标记交易的执行顺序使交易的结构可以复现;2)并行验证阶段:验证结点对交易的结构进行复现,并对冲突的交易进行分组,验证交易的最终状态,包含步骤:S3、根据挖矿结点提供的标记信息对交易进行复现;S4、利用贪心分组策略将冲突的交易进行分组并行化;S5、保证组内交易的执行顺序避免锁的争用和等待;S6、对交易的结果进行验证。而且,所述步骤S1的具体操作为:使用自旋锁(pinLock)和时间戳(Timestamp)来解决读写冲突和优先级的问题并使用缓存提交,进行读操作时将读到的数据复制到线程局部变量(ThreadLocal)中,如果Timestamp的值没有改变,则继续进行下一步操作,否则表明在这段时间内有其他的线程对该变量进行了写操作;此时需要重新读取原变量的值,直到Timestamp的值相同,在此过程中缓存策略将所有成功执行的操作先存储在缓存(Cache)中,当所有动作执行完毕提交或丢弃Cache。而且,所述步骤S2使用Spinlock执行交易并对交易进行标记,记录每个操作的前驱结点和锁定时间,具体操作为:开启三个工作线程对交易进行并行化执行,Ti表示线程,ti表示交易序号,采用Spinlock和乐观读对交易进行处理,并记录每个操作的前驱结点和锁定的时间戳,若交易没有前驱结点则标记为空,如交易有多个前驱结点,则按照顺序进行记录。而且,所述步骤S3通过S2标记的信息构造交易图谱,具体操作为:通过并行挖矿阶段标记的信息可以得到合约之间交易的邻接矩阵M1,M2和M3,其顶点顺序依次为M1(V)={Kate,Ivy,Rita,Kim,Len,Eva,May,Zara,Lucy},M2(V)={Ruth,Elsa,Ruby},M3(V)={Vera,Kyra},每当有一笔交易记录就会在账户之间形成一条有向边用1表示,否则用0表示,如公式所示:其中:M表示邻接矩阵;vi,vj表示任意两个顶点,即合约账户。而且,所述步骤S4根据机器的并发将交易分组,具体操作为:递归是解决线性分组最直接的手段之一,首先,按照交易的规模对冲突交易集合U进行升序排序,假设排序后的集合为SU={s1,s2,...,sn},通过不断比较前i个元素和后n-i个元素的最值,得到问题的最优解,如公式所示:其中:n代表集合U中元素的个数;M|n,k|代表将n个元素分成k组的最优解;边界条件计算公式为:而且,所述步骤S5具体操作为:将分组后的交易分发给不同的消息队列并行执行,每个消息队列使用单一的消费线程进行串行执行,以保证组内交易的执行顺序避免锁的争用和等待。而且,所述步骤S6对基于多核架构的智能合约执行优化方法进行实验,具体操作为:基于Aelf区块链,使用经典的转账合约作为实验数据,通过设置交易数量(txCount)和交易冲突率(conflictRate)这两个参数控制冲突交易的比例,针对并行挖矿策略和并行验证策略设计实验,验证交易的冲突率对智能合约并行化执行效率的影响,并行挖矿和并行验证策略吞吐量和加速比的变化情况;并分别与Aelf区块链提出的串行挖矿和串行验证作对比,验证并行策略的优越性。本专利技术的优点和有益效果为:1、本专利技术针对智能合约执行的两个阶段,分别设计并实现并行挖矿和并行验证策略。在并行挖矿阶段,通过引入Spinlock和MVCC解决了线程的频繁的上下文切换及读写锁的阻塞问题;同时,在并行验证阶段,通过对冲突交易进行分组利用双端队列实现交易的并行化;提出的智能合约并行化策略,为智能合约的执行提供了新的解决方案,同时也是对多线程环境下任务执行顺序可恢复性的探索,可以为有效解决并发问题,具有一定的理论价值和研究意义。附图说明图1为本专利技术批量转账记录图;...

【技术保护点】
1.一种基于多核架构的智能合约执行优化方法,其特征在于:所述方法的步骤为:/n1)并行挖矿阶段:矿工收集交易信息对智能合约进行初次调用执行,对交易进行标记并对执行顺序进行记录,包含步骤:/nS1、并行化执行交易;/nS2、标记交易的执行顺序使交易的结构可以复现;/n2)并行验证阶段:验证结点对交易的结构进行复现,并对冲突的交易进行分组,验证交易的最终状态,包含步骤:/nS3、根据挖矿结点提供的标记信息对交易进行复现;/nS4、利用贪心分组策略将冲突的交易进行分组并行化;/nS5、保证组内交易的执行顺序避免锁的争用和等待;/nS6、对交易的结果进行验证。/n

【技术特征摘要】
1.一种基于多核架构的智能合约执行优化方法,其特征在于:所述方法的步骤为:
1)并行挖矿阶段:矿工收集交易信息对智能合约进行初次调用执行,对交易进行标记并对执行顺序进行记录,包含步骤:
S1、并行化执行交易;
S2、标记交易的执行顺序使交易的结构可以复现;
2)并行验证阶段:验证结点对交易的结构进行复现,并对冲突的交易进行分组,验证交易的最终状态,包含步骤:
S3、根据挖矿结点提供的标记信息对交易进行复现;
S4、利用贪心分组策略将冲突的交易进行分组并行化;
S5、保证组内交易的执行顺序避免锁的争用和等待;
S6、对交易的结果进行验证。


2.根据权利要求1所述的基于多核架构的智能合约执行优化方法,其特征在于:所述步骤S1的具体操作为:使用自旋锁(pinLock)和时间戳(Timestamp)来解决读写冲突和优先级的问题并使用缓存提交,进行读操作时将读到的数据复制到线程局部变量(ThreadLocal)中,如果Timestamp的值没有改变,则继续进行下一步操作,否则表明在这段时间内有其他的线程对该变量进行了写操作;此时需要重新读取原变量的值,直到Timestamp的值相同,在此过程中缓存策略将所有成功执行的操作先存储在缓存(Cache)中,当所有动作执行完毕提交或丢弃Cache。


3.根据权利要求1所述的基于多核架构的智能合约执行优化方法,其特征在于:所述步骤S2使用Spinlock执行交易并对交易进行标记,记录每个操作的前驱结点和锁定时间,具体操作为:开启三个工作线程对交易进行并行化执行,Ti表示线程,ti表示交易序号,采用Spinlock和乐观读对交易进行处理,并记录每个操作的前驱结点和锁定的时间戳,若交易没有前驱结点则标记为空,如交易有多个前驱结点,则按照顺序进行记录。


4.根据权利要求1所述的基于多核架构的智能合约执行优化方法,其特征在于:所述步骤S3通过S2标记的信息构造交易图谱,具体操作为:通过并行挖矿...

【专利技术属性】
技术研发人员:王建荣吴彤刘志强李雪威赵满坤侯庆志张克兴
申请(专利权)人:天津大学
类型:发明
国别省市:天津;12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1