区块链轻量化处理方法、区块链节点及存储介质与流程

文档序号:16978413发布日期:2019-02-26 19:14阅读:2700来源:国知局
区块链轻量化处理方法、区块链节点及存储介质与流程

本发明涉及信息技术领域,尤其涉及一种区块链轻量化处理方法、区块链节点及计算机存储介质。



背景技术:

近年来兴起的区块链技术是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证其不可篡改和不可伪造的分布式账本。区块链的核心技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全。

区块链的一个很大问题在于其中会包含所有的历史交易,随着交易量的增加,区块链中的区块也将不断增多,整个区块链的数据会越来越大,对节点存储和计算资源的需求会越来越高。



技术实现要素:

有鉴于此,本发明实施例期望提供一种区块链轻量化处理方法、区块链节点及计算机存储介质,至少部分解决区块链技术中存储资源等资源消耗大的问题。

为达到上述目的,本发明的技术方案是这样实现的:

本发明实施例第一方面提供种区块链轻量化处理方法,应用于第一区块链节点中,包括:

基于交易链中连续分布的待删除的n个区块,生成参数区块,其中,所述n为正整数;

删除所述交易链中的所述n个区块;

存储所述参数区块,其中,所述参数区块与所述交易链中未删除的区块共同形成优化链,其中,所述参数区块的父区块为:所述交易链中删除的n个区块的前一个区块,所述参数区块的子区域为:所述交易链中删除的n个区块的后一个区域。

基于上述方案,所述方法还包括:

判断交易链中连续分布的n个区块是否满足预设删除条件;

所述基于交易链中连续分布的待删除的n个区块,生成参数区块,包括:

若满足所述预设删除条件,基于所述n个区块生成参数区块。

基于上述方案,所述参数区块中至少包括:头指针和尾指针;

所述头指针,指向所述交易链中删除的n个区块中前一个区块;

所述尾指针,指向所述交易链中删除的n个区块中后一个区块。

基于上述方案,所述头指针包括:所述交易链中删除的n个区块中前一个区块的散列值;

所述尾指针包括:所述交易链中删除的n个区域的后一个区块的散列值。

基于上述方案,所述基于交易链中连续分布的待删除的n个区块,生成参数区块,包括:

利用待删除的n个区块的散列值,计算校验值,其中,所述参数区块还包括所述校验值,所述校验值,用于将所述优化链发送给第二区块链节点时,用于所述第二区块链节点对所述优化链的验证。

基于上述方案,所述方法还包括:

当所述优化链中有新增待删除的区块时,根据新增待删除的区块的区块参数,更新所述参数区块;其中,更新后的参数区块,将链接到所述交易链中满足所述预设删除条件的区块的后一个区块;

删除新增的待删除的区块。

本发明实施例第二方面提供一种区块链轻量化处理方法,应用于第二区块链节点中,包括:

向第一区块链节点发送区块链的复制请求;

当所述第一区块链节点基于所述复制请求返回的为优化链时,基于所述优化链中的参数区块,向第三区块链节点发送获取请求,其中,所述第三区块链节点为完成存储有所述优化链对应的交易链的区块链节点;所述获取请求,用于获取所述优化链中已删除且连续分布的n个区块,所述n为正整数;

接收所述第三区块链节点返回的区块参数;

基于所述区块参数对所述优化链中的参数区块进行验证;

当所述参数区块通过验证时,存储所述优化区块以形成所述优化链。

基于上述方案,所述当所述第一区块链节点基于所述复制请求返回的为优化链时,基于所述优化链中的参数区块,向第三区块链节点发送获取所述优化链中删除的n个区块的区块参数的获取请求,包括:

基于所述参数区块,确定出第一散列值和第二散列值,其中,所述第一散列值为:所述已删除连续分别的n个区块中首个区块的散列值,所述第二散列值为:所述已删除连续分别的n个区块中尾个区块的散列值;其中,所述区块参数,至少包括:已删除连续分布的n个区块中第2个区块至第n-1个区块的散列值;所述参数区块中还包括:校验值;

向所述第三区块链节点发送携带有所述第一散列值和所述第二散列值的获取请求;

所述基于所述区块参数对所述优化链中的参数区块进行验证,包括:

基于已删除的连续分布的n个区块的散列值,利用预设函数生成函数值;

将生成的所述函数值与所述校验值进行匹配;

若匹配一致,则确定所述参数区块通过验证。

本发明实施例第三方提供一种区块链节点,所述区块链节点为第一区块链节点,包括:

生成单元,用于基于交易链中连续分布的待删除的n个区块,生成参数区块,其中,所述n为正整数;

删除单元,用于删除所述交易链中的所述n个区块;

第一存储单元,用于存储所述参数区块,其中,所述参数区块与所述交易链中未删除的区块共同形成优化链,其中,所述参数区块的父区块为:所述交易链中删除的n个区块的前一个区块,所述参数区块的子区域为:所述交易链中删除的n个区块的后一个区域。

本发明实施例第四方面提供一种区块链节点,所述区块链节点为第二区块链节点,包括:

发送单元,用于向第一区块链节点发送区块链的复制请求;当所述第一区块链节点基于所述复制请求返回的为优化链时,基于所述优化链中的参数区块,向第三区块链节点发送获取请求,其中,所述第三区块链节点为完成存储有所述优化链对应的交易链的区块链节点;所述获取请求,用于获取所述优化链中已删除且连续分布的n个区块,所述n为正整数;

接收单元,用于接收所述第三区块链节点返回的区块参数;

验证单元,用于基于所述区块参数对所述优化链中的参数区块进行验证;

第二存储单元,用于当所述参数区块通过验证时,存储所述优化区块以形成所述优化链。

本发明实施例第五方面提供一种区块链节点,包括:收发器、存储器、处理器及存储在所述存储器上并由所述处理器处理的计算机程序;

所述处理器,分别与所述收发器及所述存储器连接,用于通过执行所述计算机程序控制所述收发器的信息交互、所述存储器的信息存储,并执行前述任意一个或多个技术方案提供的区块链轻量化处理方法。

本发明实施例第五方面提供一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序被执行后,能够实现执行前述任意一个或多个技术方案提供的区块链轻量化处理方法。

本发明实施例提供的区块链轻量化处理方法、区块链节点及计算机存储介质,为了减少区块链的数据量,会基于待删除的区块的区块参数,生成参数区块,该参数区块可以链接删除的区块的前一个区块和后一个区块,形成一个优化的优化链。通常优化链的区块数少于保留了完整区块的交易链的区块数,且参数区块的数据量通常小于一个交易链中包括交易信息的区块的数据量,从而整体上优化链的数据量远远少于交易量。若区块链节点仅存储优化链,显然可以减少区块链存储所消耗的存储资源,同时方便后续查询操作等所消耗的计算资源,从而可以节省查询都区块链的查询操作等后续操作所消耗的计算资源。从而解决了现有区块链技术中存储资源等资源消耗大的问题。

附图说明

图1为一种区块链的结构示意图;

图2为另一种区块链的结构示意图;

图3为本发明实施例提供的第一种区块链轻量化处理的流程示意图;

图4为本发明实施例提供的第二种区块链轻量化处理的流程示意图;

图5为本发明实施例提供的一种交易链的结构示意图;

图6为图5所示的交易链优化后形成的优化链的结构示意图;

图7为本发明实施例提供的第三种区块链轻量化处理的流程示意图;

图8为在图6所示的优化链基础上再次优化后的优化链的结构示意图;

图9为本发明实施例提供的第四种区块链轻量化处理的流程示意图;

图10为本发明实施例提供的一种第一区块链节点的结构示意图;

图11为本发明实施例提供的一种第二区块链节点的结构示意图;

图12为本发明实施例提供的一种区块链节点的结构示意图。

具体实施方式

以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。

以下介绍以下交易链的区块的相关信息。

如图1所示,在区块链技术中,区块按时间顺序逐个先后生成并连接成链,每一个区块记录了创建期间产生的交易信息,得到区块链网络中各区块链节点基于共识机制的公认的交易将在区块链中永久存储。如图1所示,区块的数据结构一般分为区块头和区块体。如图2所示,每个区块的区块头包含了前一个区块(即父区块)的散列值,从而形成从创世区块到当前区块的链条,并确定了每个区块在整个区块链中所处的位置。通常后一个区块的区块头包括前一个区块的区块头内存储的散列值。为防止区块中的交易被篡改,区块链使用了默克尔(merkle)树来归纳一个区块中的所有交易,merkle根则是所有交易的摘要,区块中任意一笔交易信息的改变都会改变merkle根。区块体则包含了经过验证的、区块创建过程中产生的交易信息。如图2所示,区块k的区块头包括区块k-1的区块头中的散列值;且每一个区块的区块头中还包含随机数、产生时间的时间戳等信息。一个区块可能记录多笔交易信息,这里的时间戳还可能是每一个交易的交易时间戳。

本发明实施例提供一种区块链轻量化处理方法,应用于第一区块链节点中,如图3所示,包括:

步骤s110:基于交易链中连续分布的待删除的n个区块,生成参数区块,其中,所述n为正整数;

步骤s120:删除所述交易链中的所述n个区块;

步骤s130:存储所述参数区块,其中,所述参数区块与所述交易链中未删除的区块共同形成优化链,其中,所述参数区块的父区块为:所述交易链中删除的n个区块的前一个区块,所述参数区块的子区域为:所述交易链中删除的n个区块的后一个区域。

本实施例提供的区块链轻量化处理方法,实质上是减少区块链的数据量的方法,从而使得区块链在数据量上呈现轻量的特点。

本实施例中所述第一区块链节点可为区块链网络中任意一个记账节点。在本实施例中,所述记账节点为了节省本地存储区块链的数据存储量和维护数据存储的计算资源等,会删除由区块构成的原始的区块链(即所述交易链)中部分满足删除条件的区块。在本实施例中连续分布的n个区块,优选为连续分布的多个区块,这样可以最大限度的减少参数区块的生成,减少优化链的数据量。

但是删除这些区块之后,需要确保区块链的链式结构,会参数区块,该参数区块是可以替代已删除的多个区块,链接交易链中未删除的区块的,形成数据量远远小于原始的交易链的优化链的。这样的话,依然完整的保存了区块链的链式结构。

这样第一区块链节点可以通过对应区块的删除,仅存储优化链,从而可以达到减少区块链的存储资源的占用,减少维护这些区块链所需的系统资源的消耗。

在一些实施例中,如图4所示,所述方法还包括:

步骤s100:判断交易链中连续分布的n个区块是否满足预设删除条件;

所述步骤s110具体可包括步骤s111;所述步骤s111可包括:

若满足所述预设删除条件,基于所述n个区块生成参数区块。

判断连续分布的n个区块是否满足预设删除条件的方式有多种,以下提供几种可选方式。

可选方式一:

所述步骤s100可包括:

判断连续分布的n个区块记载的交易内容是否超过有效期;

当连续分布的n个区块记载的交易内容超过有效期,则认为这n个连续分布的区块满足所述预设删除条件。

例如,交易链中每一个区块的区块体中存储有分配给对应用户的证书信息,而证书信息是有一定时效性的,当该证书信息已经超过有效期,即时效性已经丧失,则可认为该区块的区块体内存储的证书信息已经无效,为了节省存储空间,可以删除该区块。则可认为该区块的信息状态满足所述预设存储条件。这里的证书信息可为前述交易信息的一种。这里的证书信息可包括:授权证书及授权证书的用户信息等。

可选方式二:

所述步骤s100可包括:

提取所述交易链中或优化链中各区块的时间戳;所述时间戳包括对应区块的生成时间;

判断当前时间距离所述生成时间的时间差是否超于预设时间阈值;

若所述时间差超过预设时间阈值,可认为对应区块为满足所述预设删除条件的区块。

例如,在一些情况下,有些区块虽然不会硬性的设计信息的有效性,但是该区块内对应的交易信息后续可被查询的概率几乎为零,或者,小于预设概率。例如,生成时间超过一个时间阈值的区块。所述时间阈值可为1年、2年或5年等。

可选方式三:

所述步骤s100可包括:

提取所述交易链或优化链中历史区块距离最后一个生成的区块之间间隔的区块个数;

当所述区块个数超过个数阈值时,则认为对应区块为满足预设删除条件的待删除的区块。

例如,交易链中距离当前最新的区块之间隔离有预定个数区块的历史区块,例如,交易链a中目前包括5.3万个区块,若所述预定个数为1万,则第4.3万个区块之前的区块(创世区块除外)都是可以删除的区块。

值得注意的是,在本实施例中可删除的区块不包括交易链中的创世区块,这里的创世区块为交易链的第一区块。

总之,在本实施例中避免删除区块导致的有效信息的缺失,仅会对交易链中或优化链中满足预设删除条件的区块进行删除,以确保删除对应区块后的优化区块能够满足后续信息查询和/或验证的需求,在减少数据量占用的存储资源和计算资源的同时,尽可能满足信息查询的需求。

在本实施例中通过步骤s100的引入,相当于仅会在第一区块链节点中删除满足预设删除条件的区块,在一些情况下,所述第一区块链节点可以根据自身的存储资源的使用状况等,有选择性使用上述技术方案的丢弃部分区块的存储,而不用判断哪些区块是满足预设删除条件的。例如,在一种应用场景中,区块链节点a目前的存储资源的使用率高于最大使用率阈值,为了确保区块链节点的正常运行,必须释放部分存储资源。则可以根据随机算法等选择方式,将一条或多条交易链中的区块设定为待删除的区块,通过区块的删除及优化链的存储,释放部分存储资源。

可选地,所述参数区块中至少包括:头指针和尾指针;

所述头指针,指向所述交易链中删除的n个区块中前一个区块;

所述尾指针,指向所述交易链中删除的n个区块中后一个区块。

例如,在交易链中,删除的n个区块为第i个区块至第j个区块,则头指针指向交易链中的第i-1个区块,尾指针指向的第j+1个区块。这里的头指针和尾指针可为执行对应区块的区块标识,和/或,存储地址等可以唯一标识该区块或该区块在区链中位置的信息。在本实施例中,所述区块链可以包括:完整包含所有区块的交易链,也可以包括引入了参数区块的优化链。

图5所示的一个完整的交易链的结构示意图。优选地为,所述头指针包括:所述交易链中删除的n个区块中前一个区块的散列值;所述尾指针包括:所述交易链中删除的n个区域的后一个区块的散列值。

图6所示为一种删除了图5所示的交易链中,多个连续分布的区块之后并引入了参数区块的优化链的一种结构示意图。基于上述举例,则所述头指针可为所述第i-1个区块的散列值,所述尾指针为第j+1个区块的散列值。在图6中,参数区块的头指针为hi-1;其中hi-1为区块i-1的区块头的散列值;所述参数区块的尾指针为hj+1;所述hj+1可为区块j+1的区块头的散列值。

散列值是区块链中链接相邻两个区块的链条。通常子区块的散列值是基于父区块的散列值生成的,是可以唯一标识一条交易链中该区块的位置的信息之一。

可选地,所述步骤s110可包括:

利用待删除的n个区块的散列值,计算校验值,其中,所述参数区块还包括所述校验值,所述校验值,用于将所述优化链发送给第二区块链节点时,用于所述第二区块链节点对所述优化链的验证。

在本实施例中可以利用哈希函数等预设函数,基于每一个区块的散列值,计算出所述校验值。在本实施例中,可以根据n个区块在交易链中的分布顺序,从待删除的第1个区块的散列值,与待删除的第2个区块的散列值进行逻辑运算,总之,待删除第i个区块的散列值与待删除的第i+1个散列值进行逻辑运算,完成n-1次逻辑运算之后,将逻辑运算的结果作为所述预设函数的因变量,可以得到预设函数的函数值,该函数值可以作为所述校验值,作为参数区块的一部分存储在参数区块中。这里的逻辑运算,可以:将对应的散列值转换成二进制代码后,进行二进制之间的与运算、或运算,或者,多次不同类型的与、或、非等各种逻辑运算的运算结果。当然,以上仅是一种计算校验值的方式,在具体的实现过程中,还可以包括其他运算方式。

例如,按照区块的生成时间,依次将对应的散列值作为因变量输入到预设函数计算得到函数值,并将前一次计算的函数值与后一次计算的函数值进行再次的函数运算得到对应的校验值,循环执行直到所有的待删除的区块的散列值都参与了计算为止,这样也会得到对应的校验值。

通过校验值的引入,当对应的优化链被拷贝到其他区块链节点时,方便其他区块链节点对参数区块的校验,减少参数区块的被篡改导致的优化链存储的信息有误的问题。例如,通过篡改参数区块的头指针或尾指针,可以使得参数区块链接到伪造的区块链中,而通过校验值的引入,可以避免或减少这种现象的发生。

在一些实施例中,如图7所示的方法,还包括:

步骤s140:当所述优化链中有满足所述预设删除条件的区块时,根据新增待删除的区块的区块参数,更新所述参数区块;其中,更新后的参数区块,将链接到所述交易链中满足所述预设删除条件的区块的后一个区块;

步骤s150:删除新增的待删除的区块。

由于交易链中的区块都是按照时间生成,待删除的区块可能也是基于生成时间产生的,故一条优化链在完成一次优化之后,在下一个优化时刻来临时,可以在原始删除的多个区块后面产生了多个满足前述预设删除条件的多个新增的待删除区块,则此时,仅需要通过更新该参数区块即可,不用生成一个全新的参数区块。图8为基于图6所示的优化链,再次删除了新增待删除区块后形成的再次优化链的结构示意图。显然图8中,参数区块的尾指针从hj+1变化成了hj+2;从而参数区块尾部指向的区块为区块j+2。

具体如,所述步骤s140可包括:

确定出新增的待删除区块的下一个区块;

提取新增的待删除区块的下一个区块的区块标识,例如,该区块的散列值,修订所述参数区块中尾指针的内容,则实现了参数区块的更新。

在还有一些实施例中,所述步骤s140还可包括:

根据新增的待删除区块自身的散列值,更新参数区块中的校验值等,

总之,一旦一条优化链生成之后,可以通过参数区块中部分信息的更新,实现优化链的再次优化,生成优化效果更近一步的再次优化链。

在一些情况下,一条优化链对应的参数区块可能仅包括一个,在还有一些实施例中,参数区块可能包括多个,但是多个参数区块在优化链中是不相邻分布的,若两个参数区块相邻分布,则可以基于两个参数区块中的首尾指针的合并,生成一个参数区块,尽可能的简化参数区块。

在一些实施例中,所述方法还包括:为了区分优化链中的参数区块和其他存储有实际交易信息的区块,在参数区块中还设置有参数区块的类型标记,则后续信息查询或复制过程中,可以通过区块的类型标记的快速比对,区分出区块链中的不同区块的。在一些实施例中,所述优化链还可以通过不同类型区块的分别存储,方便后续的区块的类型区分,及对不同类型的区块的不同处理。

如图9所示,本实施例还提供一种区块链轻量化处理方法,应用于第二区块链节点中,包括:

步骤s210:向第一区块链节点发送区块链的复制请求;

步骤s220:当所述第一区块链节点基于所述复制请求返回的为优化链时,基于所述优化链中的参数区块,向第三区块链节点发送获取请求,其中,所述第三区块链节点为完成存储有所述优化链对应的交易链的区块链节点;所述获取请求,用于获取所述优化链中已删除且连续分布的n个区块,所述n为正整数;

步骤s230:接收所述第三区块链节点返回的区块参数;

步骤s240:基于所述区块参数对所述优化链中的参数区块进行验证;

步骤s250:当所述参数区块通过验证时,存储所述优化区块以形成所述优化链。

在一些实施例中区块链网络中,存在着多个分布式的区块链节点,这些节点之间可能会相互复制存储的区块链。

在本实施例中优化链的生成,都是在一个区块链节点中的本地生成的,若其他区块链节点拷贝其存储的优化链,为了确保优化链的真实性和可靠性,则其他区块链节点可能需要校验拷贝的优化链。

在本实施例中其他区块链节点统称为区分形成优化链的第一区块链节点的第二区块链节点。

第二区块链节点向第一区块链节点发送了一个复制请求。第一区块链节点接收到该复制请求之后,由于之前删除了部分区块,这样导致第一区块链节点本地存储仅是优化链,而非完整的交易链,故第一区块链节点会将优化链发送给第二区块链节点。

第二区块链节点接收到优化链之后,通过类型识别及区块个数的统计等,可发现当前接收到的优化链,而非完整的交易链。

第二区块链节点同样向以尽可能少的存储资源进行区块链的存储,即仅想存储优化链,则会向存储有完整的交易链的第三区块链节点请求优化链中缺失区块的区块信息。

在本实施例中,通常第一区块链节点和第二区块链节点都可为客户端节点,而第三区块链节点可为服务器节点。通常情况下服务器节点必须存储至少一段时间类的完整交易链。故在步骤s220中可以向服务器节点发送所述获取请求。在一个区块链节点系统中至少包括预定个数的存储完整交易链的服务器节点。这里的预定个数可仅为一个。当然这也仅是举例。在一些情况下,若基于交易链中的交易信息的有效性,针对某些交易信息已经失效,服务器节点也可以删除对应的区块,仅存储对应区块的散列值等用于后续优化链验证的信息,或者,甚至连用于校验的信息都不存储,仅通过向整个系统发送对应区块删除的免校验指示即可,后续区块链节点之间的优化链复制,则对对应部分进行免校验。

在发送所述获取请求之后,第三区块链节点会返回对应的区块信息,用于第二区块链节点对参数区块的校验。在本实施例中,对参数区块的校验,至少包括:对参数区块中尾指针的校验,当然也包括:对头指针的校验。

通过校验可以确保当前从第一区块链节点拷贝的优化链是可信的,确保区块链的信息的真实性和可信度。

进一步地,所述步骤s220可包括:

基于所述参数区块,确定出第一散列值和第二散列值,其中,所述第一散列值为:所述已删除连续分别的n个区块中首个区块的散列值,所述第二散列值为:所述已删除连续分别的n个区块中尾个区块的散列值;

其中,所述区块参数,至少包括:已删除连续分布的n个区块中第2个区块至第n-1个区块的散列值。

在一些实施例中,主要以散列值作为参数区块中的头指针和尾指针,故在本实施例中,在向第三区块链节点发送获取请求时,可以将参数区块中作为头指针的第一散列值和作为尾指针的第二散列值携带在获取请求中。

第三区块链节点接收到第一散列值和第二散列值之后,查询交易链或查询依然包括对应区块的优化链,获得第一散列值对应的第i个区块和第二散列值对应的第j个区块之间的第i+1至第j-1个区块的散列值,将这些散列值作为所述获取请求的请求响应返回给第二区块链节点。

第二区块链节点接收到这些散列值之后,会基于预先协商的预设函数或基于共识机制定义的函数,以这些散列值作为因变量的至少其中之一,进行函数计算,得到函数值。将该函数值与对应参数区块中携带的校验值进行比对,进行参数区块的校验。具体如,所述步骤s240可包括:

基于已删除的连续分布的n个区块的散列值,利用预设函数生成函数值;

将生成的所述函数值与所述校验值进行匹配;

若匹配一致,则确定所述参数区块通过验证。

通过函数值的计算及与校验值的匹配,可以确保参数区块中信息的真实性和可靠性,从而确保当前接收的优化链的可靠性及真实性。

这样第二区块链节点从一开始存储的就是优化链,大大的减少了区块链所消耗的存储资源等各种资源,方便一些存储资源少的区块链节点的记账处理。

本发明实施例中还提供一种应用于第三区块链节点的区块链轻量化处理方法,包括:

接收第二区块链发送的获取请求;

基于所述获取请求查询交易链,或包括获取请求对应的区块的区块参数的优化链;

将查询的区块参数发送给第二区块链节点,其中,所述区块参数,用于所述第二区块链节点验证优化链中的参数区块。

这里的优化链和交易链的相关描述和差异,都可以见前述实施例,再次就不重复了。

所述区块参数可以包括:优化链中被删除的区块的散列值或其他区块标识。

所述获取请求中可以携带优化链中删除的n个区块的第1个删除的区块的第一散列值,及删除的n个区块中最后一个区块的第二散列值。

如图10所示,本实施例提供一种区块链节点,所述区块链节点为第一区块链节点,包括:

生成单元110,用于基于交易链中连续分布的待删除的n个区块,生成参数区块,其中,所述n为正整数;

删除单元120,用于删除所述交易链中的所述n个区块;

第一存储单元130,用于存储所述参数区块,其中,所述参数区块与所述交易链中未删除的区块共同形成优化链,其中,所述参数区块的父区块为:所述交易链中删除的n个区块的前一个区块,所述参数区块的子区域为:所述交易链中删除的n个区块的后一个区域。

本实施例提供的一种区块链节点的结构示意图。

所述生成单元110及删除单元120都可以对应于区块链节点所在物理节点的处理器及存储器的连接结构。所述存储器可以用于进行各种信息的储存;所述处理器基于集成电路总线等总线接口与所述存储器连接,通过计算机程序等可执行代码的执行,可以优化交易链,生成数据量更少的优化链。

所述处理器可为中央处理器(cpu)、微处理器(mcu)、数字信号处理器(dsp)、应用处理器(ap)、可编程阵列(plc)或专用集成电路(asic)等可进行信息处理的结构。

所述第一存储单元130可对应于存储介质,可以用于所述参数区块的存储。

本实施例中所述第一区块链节点会删除区块链中部分可以删除的区块,为了确保区块链的链式结构,会生成对应的参数区块,形成优化的区块链。通常优化后的优化链包括的区块数少于完整的交易链包括的区块树,参数区块的数据量一般少于一个交易量中包括交易信息的区块的数据量,故整体上优化链的数据量是远远小于交易链的数据链的。这样,若仅存储优化链,相对于存储交易链,显然大大的节省了存储资源,节省了后续查询的计算资源。例如,通常删除的区块存储的信息都是无效的或被访问的频次很低的信息,若接收到一个查询请求,若基于散列值查询交易链,若交易链包括m个区块,则可能需要比对m个区块的散列值,而优化链仅包括m-n个区块,则查询过程中最多的匹配次数为m-n次,显然节省了查询匹配次数。

可选地,所述第一区块链节点还包括:

判断单元,用于判断交易链中连续分布的n个区块是否满足预设删除条件;

所述生成单元110,具体可用于若满足所述预设删除条件,基于所述n个区块生成参数区块。

这里的判断单元,同样可对应于处理器或处理电路。

可选地,所述第一存储单元130,具体可用于利用所述参数区块包括的头指针,指向所述交易链中删除的n个区块中前一个区块;利用所述参数区块包括的尾指针,指向所述交易链中删除的n个区块中后一个区块。

进一步地,所述头指针包括:所述交易链中删除的n个区块中前一个区块的散列值;所述尾指针包括:所述交易链中删除的n个区域的后一个区块的散列值。

在一些实施例中,所述生成单元110,具体可用于利用待删除的n个区块的散列值,计算校验值,其中,所述参数区块还包括所述校验值,所述校验值,用于将所述优化链发送给第二区块链节点时,用于所述第二区块链节点对所述优化链的验证。

在还有一些实施中,所述第一区块连节点还包括:

更新单元,用于当所述优化链中有新增待删除的区块时,根据新增待删除的区块的区块参数,更新所述参数区块;其中,更新后的参数区块,将链接到所述交易链中满足所述预设删除条件的区块的后一个区块;

所述删除单元,还用于删除新增的待删除的区块。

这里的删除单元,同样可对应于处理器或处理电路。

如图11所示,本实施例还提供一种区块链节点,所述区块链节点为第二区块链节点,包括:

发送单元210,用于向第一区块链节点发送区块链的复制请求;当所述第一区块链节点基于所述复制请求返回的为优化链时,基于所述优化链中的参数区块,向第三区块链节点发送获取请求,其中,所述第三区块链节点为完成存储有所述优化链对应的交易链的区块链节点;所述获取请求,用于获取所述优化链中已删除且连续分布的n个区块,所述n为正整数;

接收单元220,用于接收所述第三区块链节点返回的区块参数;

验证单元230,用于基于所述区块参数对所述优化链中的参数区块进行验证;

第二存储单元240,用于当所述参数区块通过验证时,存储所述优化区块以形成所述优化链。

本实施例中提供一种第二区块链节点。该区块链节点包括:发送单元210及接收单元220,可对应于区块链节点所在物理节点的网络接口等。所述网络接口可为电缆接口、光缆接口和/或收发天线等。所述物理节点可为各种通信设备,例如,网络服务器、手机或台式电脑等个人通信设备等。

所述验证单元230可对应于处理器;所述处理器的相关描述可以参见前述实施例,在此就不重复了。

所述第二存储单元240可对应于第二区块链节点的本地存储介质,该存储介质优选为非瞬间存储介质,可用于非瞬间存储优化链,通过交易链的优化,减少了存储的资源的消耗,后续其他操作的计算资源的消耗。

可选地,所述第二区块链节点,可包括同样可对应于处理器的确定单元;所述确定单元,可用于基于所述参数区块,确定出第一散列值和第二散列值,其中,所述第一散列值为:所述已删除连续分别的n个区块中首个区块的散列值,所述第二散列值为:所述已删除连续分别的n个区块中尾个区块的散列值;其中,所述区块参数,至少包括:已删除连续分布的n个区块中第2个区块至第n-1个区块的散列值;所述参数区块中还包括:校验值。

所述发送单元210,可用于向所述第三区块链节点发送携带有所述第一散列值和所述第二散列值的获取请求;

所述验证单元230,具体可用于基于已删除的连续分布的n个区块的散列值,利用预设函数生成函数值;将生成的所述函数值与所述校验值进行匹配;及若匹配一致,则确定所述参数区块通过验证。

本实施例中第二区块链节点直接可以从其他区块链节点,拷贝或复制优化链,以减少区块链存储所消耗的存储资源,或,后续操作所消耗的计算资源等。

如图12所示,本实施例还提供一种区块链节点,包括:收发器310、存储器320、处理器330及存储在所述存储器320上并由所述处理器330处理的计算机程序;

所述处理器330,分别与所述收发器310及所述存储器320连接,用于通过执行所述计算机程序控制所述收发器310的信息交互、所述存储器320的信息存储,并前述一个或多个技术方案提供的区块链轻量化处理方法。

例如,所述处理器330可通过计算机程序的执行,可以实现图3、图4、图7和/或图9所示的区块链轻量化处理方法。

本实施例提供的区块链节点可为第一区块链节点、第二区块链节点及第三区块链节点等各种区块链节点。

所述处理器330可以通过集成电路(iic)总线与所述收发器310及存储器320连接。

所述收发器310可包括物理节点连接到网络的各种通信接口,例如,电缆接口、光缆接口及收发天线等。

本发明实施例还提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被执行后,能够实现前述一个或多个技术方案提供的区块链轻量化处理方法,例如,可实现图3、图4、图7和/或图9所示的区块链轻量化处理方法。

本发明实施例提供的计算机存储介质包括:移动存储设备、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。可选为,所述计算机存储介质可为非瞬间存储介质。

以下结合上述实施例提供一个具体示例:

示例1:

本方法适用于有大量区块可以删除的场景,需要本地节点记录若干组参数,每组参数对应一组连续的可删除区块。每组参数由如下内容构成:

头指针:记录一组连续的可删除区块中第一个区块的父区块头散列值。

尾指针:记录一组连续的可删除区块中最后一个区块的子区块头散列值。

校验值:对一组连续的可删除区块中所有区块头的散列值进行运算,将运算结果作为校验值保存。计算方法见如下示例。

以图5所示区块链为例,区块k的区块头的散列值记为hk,如果需要删除区块i至区块j,那么节点需要计算如下参数:

头指针:hi-1

尾指针:hj+1

校验值:h(h(…h(h(hi)||hi+1)||…||hj-1)||hj),其中h是单向函数。

计算上述参数之后,节点可以删除区块i、区块j、以及两者之间的所有区块,利用上述参数将区块i-1与区块j+1连接起来,如图6所示。

在图6所示的优化链基础上进一步优化,如果尾指针所标识的区块(区块j+1)也可以删除,那么可以在上述基础上进一步优化,优化之后的区块链如图7所示。其中,头指针不变,将参数区块的尾指针指向区块j+2,此外,重新计算校验值,仅需在图6校验值h基础上计算h(h||hj+10),从而得到图8所示的优化链。

由于参数区块中含有校验值,因此,节点可以通过查询完整的区块头验证参数区块,从而可以确保参数区块的正确性。

扩展性:本提案具备扩展性,图5和图6中的示例说明,如果尾指针所标识的区块如果也可以删除,那么仅需利用现有参数区块以及尾指针所示的区块信息计算新的参数区块即可,无需使用其他区块数据。

存储效率:一组参数可标识若干连续的区块,多组参数可以标识多组连续的区块,从而可以实现区块的自由删减。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1