[发明专利]一种智能合约分簇并行的区块链实现方法及装置有效
申请号: | 202110222612.5 | 申请日: | 2021-02-26 |
公开(公告)号: | CN112598525B | 公开(公告)日: | 2021-12-03 |
发明(设计)人: | 张建钢 | 申请(专利权)人: | 北京全息智信科技有限公司 |
主分类号: | G06Q40/04 | 分类号: | G06Q40/04;G06F16/27;H04L29/06;H04L29/08 |
代理公司: | 北京鼎承知识产权代理有限公司 11551 | 代理人: | 顾可嘉;夏华栋 |
地址: | 100081 北京市海淀区中*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 智能 约分 并行 区块 实现 方法 装置 | ||
本发明提供了一种智能合约分簇并行的区块链实现方法及装置,将没有依赖关系的智能合约分配进入不同的合约簇、每个合约簇有独立的待执行交易池、待执行交易序列、合约簇状态,以及独立的交易执行线程执行交易。同时修改区块构成将每个合约簇的交易序列的共识和执行结果的共识分开并异步进行,在做到支持任意长耗时的智能合约交易、无依赖关系的智能合约互不干扰的同时,通过区块生成和验证时交易执行无等待或短等待和分属不同合约簇的交易并行执行的方式,大幅度缩短区块链协议栈的整体时延,大大提高区块链协议栈的并发能力和吞吐能力。
技术领域
本发明涉及区块链技术领域,尤其是区块组成、区块生成、区块验证和智能合约交易执行这一技术领域。
背景技术
无论基于什么共识算法,一个区块链网络上的区块生成节点在生成区块时,会从执行上一区块中的交易序列达成的世界状态开始,从等待交易池中选择一批待执行交易予以执行,然后把这些交易、执行这些交易达成的新的世界状态(或其哈希值),上一个区块的哈希值,连同其他必要信息,生成新的区块并把该区块发送给区块链网络上的其他节点,进而对该区块完成显式或隐式的共识。
一个区块链网络上的区块验证节点在收到一个新区块时,会初步验证该区块和其中的交易的有效性,然后从执行上一区块中的交易达成的世界状态开始,执行区块中包含的所有交易并达成的新的世界状态(或其哈希值),然后与区块中声称的新的世界状态进行比较。比较成功之后,该区块链节点会依共识流程对该区块完成显式或隐式的共识(即接受或拒绝该区块)。
在区块生成和验证时,执行交易需要的时间在整个区块共识全流程所需总时间中占据很大一部分,从而直接影响了区块链网络的并发和吞吐能力。而且,现实场景通常比较复杂、交易执行的耗时甚至可能超过区块生成、验证和共识可能允许的最大交易执行时长,甚至导致这样的场景不被区块链协议栈直接支持。还有,如果区块链网络上的各个节点软硬件配置和负载不完全相同,在给定的时间敏感的共识机制下,一个长耗时的交易可能在一组节点上能够完成运行,但在另一组节点上则不能,从而因为出现本应避免的不确定性而造成区块链协议栈的瘫痪。
还有,一个区块链网络上部署的智能合约,经常互不关联。不相关的智能合约相互干扰,降低了区块链网络的整体吞吐能力。
发明内容
为了解决上述技术问题中的至少一个,本发明提供了一种智能合约分簇并行的区块链实现方法及装置。
本发明的第一方面,提供了一种智能合约分簇并行的区块链实现方法,包括:
区块链的节点并行地处理各个合约簇的待执行交易池中的交易,生成各个合约簇的交易处理信息和各个合约簇的世界状态;其中,每个合约簇包括一个智能合约或多个存在依赖关系的智能合约;
所述区块链的节点根据所述交易处理信息和所述世界状态,生成或者验证第一区块。
可选地,所述交易处理信息,包括:
第一待执行交易队列的已执行交易信息;
所述世界状态,包括:
执行所述第一待执行交易队列后达成的世界状态。
本发明实施例中,一个区块包含了多个合约簇的待执行交易队列和执行该区块的待执行交易队列之后达至的世界状态。
可选地,所述交易处理信息,包括:
第二待执行交易队列和第二区块包括的第三待执行交易队列对应的已执行交易信息;其中,所述第二区块包括所述第一区块和在所述第一区块之前生成的区块,或者,所述第二区块包括在所述第一区块之前生成的区块;
所述世界状态,包括:
执行所述第三待执行交易队列后达成的世界状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京全息智信科技有限公司,未经北京全息智信科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110222612.5/2.html,转载请声明来源钻瓜专利网。