区块链网络的分叉回归方法和装置制造方法及图纸

技术编号:20274133 阅读:26 留言:0更新日期:2019-02-02 04:14
本发明专利技术实施例提出一种区块链网络的分叉回归方法和装置。该方法包括:在检测到当前区块处于区块链网络的分叉链上的情况下,获取所述分叉链从所述区块链网络的主干链上开始分叉的起点区块的标识;根据所述起点区块的标识查找所述起点区块的快照信息;利用所述起点区块的快照信息,将所述当前区块中的状态变量回归到所述起点区块的状态变量。本发明专利技术实施例通过对区块中状态变量进行快照得到快照信息,能够支持快速的分叉回归,对交易上链速度有极大的提升作用。

【技术实现步骤摘要】
区块链网络的分叉回归方法和装置
本专利技术涉及互联网
,尤其涉及一种区块链网络的分叉回归方法和装置。
技术介绍
随着区块链技术的快速发展,对区块链的交易验证速度要求越来越高。从区块链历史发展来看,比特币打包7-9个交易每秒(TPS,TransactionPerSecond)。作为第二代公链的以太坊,性能在35TPS左右。提升交易上链速度的关键是出块速度。在不考虑硬件限制的情况下,出块的时间主要在于共识速度,以及分叉的回归速度。而且越快的共识,越无法单方面无限的提升出块速度。一定程度之后,会受限制于分叉的回归速度。目前比特币使用撤销(undo)日志进行分叉回归。以太坊使用梅克尔帕特里夏树(MPT,MerklePatriciaTree)树进行状态存储,MPT树的状态只能串行修改,交易速度受限,无法实现快速回归。
技术实现思路
本专利技术实施例提供一种区块链网络的分叉回归方法和装置,以解决现有技术中的一个或多个技术问题。第一方面,本专利技术实施例提供了一种区块链网络的分叉回归方法,包括:在检测到当前区块处于区块链网络的分叉链上的情况下,获取所述分叉链从所述区块链网络的主干链上开始分叉的起点区块的标识;根据所述起点区块的标识查找所述起点区块的快照信息;利用所述起点区块的快照信息,将所述当前区块中的状态变量回归到所述起点区块的状态变量。结合第一方面,本专利技术实施例在第一方面的第一种实现方式中,还包括:在签发区块时,将需要提交的各交易的状态变量保存到键值数据库中;对需要提交的各交易的状态变量进行快照,得到所签发的区块的快照信息;建立所签发的区块的标识与其快照信息之间的映射关系。结合第一方面的第一种实现方式,本专利技术实施例在第一方面的第二种实现方式中,对需要提交的各交易的状态变量进行快照,得到所签发的区块的快照信息,还包括:判断所述交易的状态变量是否发生变化;如果所述交易的状态变量发生变化,则在所签发的区块的快照信息中保存所述交易的变化后的状态变量;如果所述交易的状态变量未发生变化,则在所签发的区块的快照信息中保存所述交易的未发生变化的状态变量的索引,所述索引为所述交易的状态变量在键值数据库中的存储地址。结合第一方面或其任意一种实现方式,本专利技术实施例在第一方面的第三种实现方式中,还包括:获取交易的空间标识;将所述交易加入所述空间标识对应的交易处理队列。结合第一方面的第三种实现方式,本专利技术实施例在第一方面的第四种实现方式中,还包括:在执行所述交易时,如果需要对不同交易处理队列的状态变量进行一致性修改,则向需要一致性修改的各交易处理队列发起数据存储的准备请求;如果收到需要一致性修改的所有交易处理队列回复的准备就绪的响应,则允许对所述所有交易处理队列的状态变量进行一致性修改;如果收到任意一个交易处理队列回复的未就绪的响应,则终止对需要一致性修改的所有交易处理队列的状态变量进行修改。结合第一方面的第三种实现方式,本专利技术实施例在第一方面的第五种实现方式中,还包括:在执行所述交易之后,如果所述交易的状态变量发生变化,则将所述交易的变化后的状态变量保存到所述空间标识对应的交易处理队列中。第二方面,本专利技术实施例提供了一种区块链网络的分叉回归装置,包括:分叉起点获取模块,用于在检测到当前区块处于区块链网络的分叉链上的情况下,获取所述分叉链从所述区块链网络的主干链上开始分叉的起点区块的标识;快照信息查找模块,用于根据所述起点区块的标识查找所述起点区块的快照信息;回归模块,用于利用所述起点区块的快照信息,将所述当前区块中的状态变量回归到所述起点区块的状态变量。结合第二方面,本专利技术实施例在第二方面的第一种实现方式中,还包括:保存模块,用于在签发区块时,将需要提交的各交易的状态变量保存到键值数据库中;快照模块,用于对需要提交的各交易的状态变量进行快照,得到所签发的区块的快照信息;映射模块,用于建立所签发的区块的标识与其快照信息之间的映射关系。结合第二方面的第一种实现方式,本专利技术实施例在第二方面的第二种实现方式中,所述快照模块还用于:判断所述交易的状态变量是否发生变化;如果所述交易的状态变量发生变化,则在所签发的区块的快照信息中保存所述交易的变化后的状态变量;如果所述交易的状态变量未发生变化,则在所签发的区块的快照信息中保存所述交易的未发生变化的状态变量的索引,所述索引为所述交易的状态变量在键值数据库中的存储地址。结合第二方面或其任意一种实现方式,本专利技术实施例在第二方面的第三种实现方式中,还包括:空间标识获取模块,用于获取交易的空间标识;第一交易处理模块,用于将所述交易加入所述空间标识对应的交易处理队列。结合第二方面的第三种实现方式,本专利技术实施例在第二方面的第四种实现方式中,还包括:准备模块,用于在执行所述交易时,如果需要对不同交易处理队列的状态变量进行一致性修改,则向需要一致性修改的各交易处理队列发起数据存储的准备请求;一致性修改模块,用于如果收到需要一致性修改的所有交易处理队列回复的准备就绪的响应,则允许对所述所有交易处理队列的状态变量进行一致性修改;终止修改模块,用于如果收到任意一个交易处理队列回复的未就绪的响应,则终止对需要一致性修改的所有交易处理队列的状态变量进行修改。结合第二方面的第三种实现方式,本专利技术实施例在第二方面的第五种实现方式中,还包括:第二交易处理模块,用于在执行所述交易之后,如果所述交易的状态变量发生变化,则将所述交易的变化后的状态变量保存到所述空间标识对应的交易处理队列中。第三方面,本专利技术实施例提供了一种区块链网络的分叉回归装置,所述装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,所述装置的结构中包括处理器和存储器,所述存储器用于存储支持所述装置执行上述方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述装置还可以包括通信接口,用于与其他设备或通信网络通信。第四方面,本专利技术实施例提供了一种计算机可读存储介质,用于存储区块链网络的分叉回归装置所用的计算机软件指令,其包括用于执行上述方法所涉及的程序。上述技术方案中的一个技术方案具有如下优点或有益效果:本专利技术实施例通过对区块中状态变量进行快照得到快照信息,能够支持快速的分叉回归,对交易上链速度有极大的提升作用。上述技术方案中的另一个技术方案具有如下优点或有益效果:通过空间标识将交易划分到不同的空间,可以并行执行交易,进一步提升交易执行速度和上链速度。此外,通过一致性保证模块可以保证交易的状态数据的准确性。上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本专利技术进一步的方面、实施方式和特征将会是容易明白的。附图说明在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本专利技术公开的一些实施方式,而不应将其视为是对本专利技术范围的限制。图1示出根据本专利技术实施例的区块链网络的分叉回归方法的流程图。图2示出根据本专利技术实施例的区块链网络的分叉回归方法的流程图。图3示出根据本专利技术实施例的区块链网络的分叉回归方法的流程图本文档来自技高网...

【技术保护点】
1.一种区块链网络的分叉回归方法,其特征在于,包括:在检测到当前区块处于区块链网络的分叉链上的情况下,获取所述分叉链从所述区块链网络的主干链上开始分叉的起点区块的标识;根据所述起点区块的标识查找所述起点区块的快照信息;利用所述起点区块的快照信息,将所述当前区块中的状态变量回归到所述起点区块的状态变量。

【技术特征摘要】
1.一种区块链网络的分叉回归方法,其特征在于,包括:在检测到当前区块处于区块链网络的分叉链上的情况下,获取所述分叉链从所述区块链网络的主干链上开始分叉的起点区块的标识;根据所述起点区块的标识查找所述起点区块的快照信息;利用所述起点区块的快照信息,将所述当前区块中的状态变量回归到所述起点区块的状态变量。2.根据权利要求1所述的方法,其特征在于,还包括:在签发区块时,将需要提交的各交易的状态变量保存到键值数据库中;对需要提交的各交易的状态变量进行快照,得到所签发的区块的快照信息;建立所签发的区块的标识与其快照信息之间的映射关系。3.根据权利要求2所述的方法,其特征在于,对需要提交的各交易的状态变量进行快照,得到所签发的区块的快照信息,还包括:判断所述交易的状态变量是否发生变化;如果所述交易的状态变量发生变化,则在所签发的区块的快照信息中保存所述交易的变化后的状态变量;如果所述交易的状态变量未发生变化,则在所签发的区块的快照信息中保存所述交易的未发生变化的状态变量的索引,所述索引为所述交易的状态变量在键值数据库中的存储地址。4.根据权利要求1至3中任一项所述的方法,其特征在于,还包括:获取交易的空间标识;将所述交易加入所述空间标识对应的交易处理队列。5.根据权利要求4所述的方法,其特征在于,还包括:在执行所述交易时,如果需要对不同交易处理队列的状态变量进行一致性修改,则向需要一致性修改的各交易处理队列发起数据存储的准备请求;如果收到需要一致性修改的所有交易处理队列回复的准备就绪的响应,则允许对所述所有交易处理队列的状态变量进行一致性修改;如果收到任意一个交易处理队列回复的未就绪的响应,则终止对需要一致性修改的所有交易处理队列的状态变量进行修改。6.根据权利要求4所述的方法,其特征在于,还包括:在执行所述交易之后,如果所述交易的状态变量发生变化,则将所述交易的变化后的状态变量保存到所述空间标识对应的交易处理队列中。7.一种区块链网络的分叉回归装置,其特征在于,包括:分叉起点获取模块,用于在检测到当前区块处于区块链网络的分叉链上的情况下,获取所述分叉链从所述区块链网络的主干链上开始分叉的起点区块的标识;快照信息查找模块,用于根据所述起点区块的标识查找所述起点区块的快照信...

【专利技术属性】
技术研发人员:段兵肖伟
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京,11

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

1