System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术实施例涉及区块链,尤其涉及一种区块链交易执行方法及装置。
技术介绍
1、随着区块链应用场景的逐渐丰富,链上应用对底层区块链平台性能的要求变得越来越高。为了提高交易处理的效率,目前技术中往往采用不同计算机设备并行处理的方式来对区块链交易进行处理。
2、但不同计算机设备并行处理交易时会出现存储资源冲突和执行结果不一致的问题。
技术实现思路
1、本申请实施例提供了一种区块链交易执行方法及装置,用于实现区块中交易的异步、高并发执行。
2、第一方面,本申请实施例提供了一种区块链交易执行方法,包括:
3、执行节点获取出块节点生成的具有交易执行顺序的多个交易的区块;
4、所述执行节点按照如下方式并行执行所述区块中的多个交易:
5、在第k执行阶段,若第一交易任务在执行第i子任务前,确定执行所述第i子任务所需的第i存储资源处于可用状态且任一第二交易任务的未执行子任务均不依赖所述第i存储资源,则设置所述第i存储资源为占用状态并通过所述第i存储资源执行所述第i子任务;所述第一交易任务为所述多个交易对应的任务中的任一个;所述第二交易任务为所述多个交易对应的任务中按照所述交易执行顺序位于所述第一交易任务之前的任一交易任务;所述第i存储资源为智能合约中关联的存储资源。
6、通过对交易占用的存储资源采用所有权机制,确保每个存储资源在被多个交易任务访问时的独占性,另外也能保证不同计算能力的执行节点在执行交易后交易结果的一致性,确保了
7、可选地,在所述第k执行阶段,若第三交易任务在执行第j子任务前,确定执行所述第j子任务所需的所述第i存储资源处于占用状态,则阻塞所述第三交易任务;所述第三交易任务为所述多个交易对应的任务中的任一个。
8、通过对存储资源处于占用状态的交易任务进行阻塞,避免了任务并行执行时对同一智能合约存储资源的读写,保证了在不同设备中执行结果的一致性。
9、可选地,所述通过所述第i存储资源执行所述第i子任务之后,还包括:
10、在执行完所述第i子任务的后,设置所述第i存储资源为可用状态并发送资源释放通知。
11、通过将存储资源的所有权概念引入到区块链交易异步执行环境中,提高了区块中所有交易处理的效率,并且支持大量交易并行处理的同时,保证了在不同设备中交易执行结果的一致性。
12、可选地,所述阻塞所述第三交易任务之后,还包括:
13、若接收到针对所述第i存储资源的资源释放通知,则唤醒所述第三交易任务并确定任一第四交易任务的未执行子任务均不依赖所述第i存储资源,则设置所述第i存储资源为占用状态并通过所述第i存储资源执行所述第j子任务;所述第四交易任务为所述多个交易对应的任务中按照交易执行顺序位于所述第三交易任务之前的任一交易任务。
14、可选地,所述阻塞所述第三交易任务之后,还包括:
15、在所述第k执行阶段中未阻塞任务均执行完毕后,进入第k+1执行阶段并唤醒所有阻塞任务。
16、可选地,若确定执行所述第i子任务所需的第i存储资源处于可用状态且存在至少一个第二交易任务的未执行子任务依赖所述第i存储资源,则阻塞所述第一交易任务。
17、第二方面,本申请实施例提供了一种区块链交易执行装置,包括:
18、执行单元,用于执行节点获取出块节点生成的具有交易执行顺序的多个交易的区块;
19、所述执行单元,还用于所述执行节点按照如下方式并行执行所述区块中的多个交易:
20、在第k执行阶段,若第一交易任务在执行第i子任务前,确定执行所述第i子任务所需的第i存储资源处于可用状态且任一第二交易任务的未执行子任务均不依赖所述第i存储资源,则设置所述第i存储资源为占用状态并通过所述第i存储资源执行所述第i子任务;所述第一交易任务为所述多个交易对应的任务中的任一个;所述第二交易任务为所述多个交易对应的任务中按照所述交易执行顺序位于所述第一交易任务之前的任一交易任务;所述第i存储资源为智能合约中关联的存储资源。
21、通过对交易占用的存储资源采用所有权机制,确保每个存储资源在被多个交易任务访问时的独占性,另外也能保证不同计算能力的执行节点在执行交易后交易结果的一致性,确保了并行处理中的执行结果与串行处理结果完全一致。
22、可选地,所述执行单元具体用于:
23、在所述第k执行阶段,若第三交易任务在执行第j子任务前,确定执行所述第j子任务所需的所述第i存储资源处于占用状态,则阻塞所述第三交易任务;所述第三交易任务为所述多个交易对应的任务中的任一个。
24、可选地,所述执行单元具体用于:
25、在执行完所述第i子任务的后,设置所述第i存储资源为可用状态并发送资源释放通知。
26、可选地,所述执行单元具体用于:
27、若接收到针对所述第i存储资源的资源释放通知,则唤醒所述第三交易任务并确定任一第四交易任务的未执行子任务均不依赖所述第i存储资源,则设置所述第i存储资源为占用状态并通过所述第i存储资源执行所述第j子任务;所述第四交易任务为所述多个交易对应的任务中按照交易执行顺序位于所述第三交易任务之前的任一交易任务。
28、可选地,所述执行单元具体用于:
29、在所述第k执行阶段中未阻塞任务均执行完毕后,进入第k+1执行阶段并唤醒所有阻塞任务。
30、可选地,所述执行单元具体用于:
31、若确定执行所述第i子任务所需的第i存储资源处于可用状态且存在至少一个第二交易任务的未执行子任务依赖所述第i存储资源,则阻塞所述第一交易任务。
32、第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行上述第一方面任意所述的区块链交易执行方法。
33、第四方面,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行上述第一方面任意所述的区块链交易执行方法。
34、第五方面,本申请实施例提供了一种区块链系统,包括出块节点和多个执行节点;
35、所述出块节点,用于基于多个交易任务的交易执行顺序,生成包含所述多个交易任务的区块;
36、任一执行节点,用于按照权利要求1至6中任一项所述方法,并行执行所述区块中的多个交易。
本文档来自技高网...【技术保护点】
1.一种区块链交易执行方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,还包括:
3.如权利要求2所述的方法,其特征在于,所述通过所述第i存储资源执行所述第i子任务之后,还包括:
4.如权利要求3所述的方法,其特征在于,所述阻塞所述第三交易任务之后,还包括:
5.如权利要求2所述的方法,其特征在于,所述阻塞所述第三交易任务之后,还包括:
6.如权利要求1至5任一项所述的方法,其特征在于,还包括:
7.一种区块链交易执行装置,其特征在于,包括:
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1~6任一项所述的方法步骤。
9.一种计算机可读存储介质,其特征在于,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行权利要求1~6任一所述方法的步骤。
10.一种区块链系统,其特征在于,包括出块节点和多个执行节点;
【技术特征摘要】
1.一种区块链交易执行方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,还包括:
3.如权利要求2所述的方法,其特征在于,所述通过所述第i存储资源执行所述第i子任务之后,还包括:
4.如权利要求3所述的方法,其特征在于,所述阻塞所述第三交易任务之后,还包括:
5.如权利要求2所述的方法,其特征在于,所述阻塞所述第三交易任务之后,还包括:
6.如权利要求1至5任一项所述的方法,其特征在于,还包括:
<...【专利技术属性】
技术研发人员:朱晓阳,
申请(专利权)人:航天信息股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。