一种基于区块链的信息处理方法及装置、设备、存储介质与流程

文档序号:20348499发布日期:2020-04-10 22:48阅读:115来源:国知局
一种基于区块链的信息处理方法及装置、设备、存储介质与流程

本申请涉及区块链技术领域,尤其涉及一种基于区块链的信息处理方法及装置、设备、存储介质。



背景技术:

区块链是由若干个区块依次连接而成,且每一个区块中都存储区块链网络的交易数据的数据存储链,区块链技术作为一种数据存储技术,因为其去中心化、数据不可篡改等特点,在互联网的多个领域都得到了广泛的应用。

在区块链网络中,一个时间段中只允许一个节点出块,由于出块的节点可以得到赏金,所以区块链网络中的节点想成为出块者。现有技术中,通常采用工作量共识方法来计算决定出块的节点,但采用工作量共识方法需要计算至少半数的节点的工作量,导致运算量大,占用太多的网络资源。

所以,目前亟需一种计算工作量较小且可以确定出块节点的方法。



技术实现要素:

为了实现上述目的,本申请提供了以下技术方案:

一种基于区块链的信息处理方法,包括:

目标节点计算最新区块的哈希值,所述最新区块为生成时间最晚的区块,任意一个区块的所述哈希值依据预设参数生成,所述预设参数包括上一区块的哈希值和当前时刻的时间戳;所述目标节点为区块链中的任意一个节点;

所述目标节点依据所述最新区块的哈希值、以及所述节点的哈希值,确定出块节点。

上述的方法,可选的,所述依据所述最新区块的哈希值、以及所述节点的哈希值,确定出块节点,包括:

确定所述最新区块的哈希值在虚拟哈希环上的位置;

将在所述虚拟哈希环上位于所述位置之后的节点,作为所述出块节点,所述节点在所述虚拟哈希环上的位置,由所述节点的哈希值确定。

上述的方法,可选的,还包括:

所述目标节点基于所述虚拟哈希环上新加入和/或删除的节点,更新所述目标节点在所述虚拟哈希环上的关联节点,所述关联节点包括前序节点、后续节点以及备份节点中的至少一项。

上述的方法,可选的,在所述确定出块节点之后,还包括:

如果所述出块节点故障,将所述出块节点在所述虚拟哈希环上的后续节点,作为新的出块节点。

上述的方法,可选的,在所述确定出块节点之后,还包括:

所述目标节点将与所述出块节点的排序满足预设条件的节点,作为所述出块节点的备份节点。

上述的方法,可选的,所述与所述出块节点的排序满足预设条件的节点,包括:

在虚拟哈希环上,所述出块节点之后的预设数量的节点,所述节点在所述虚拟哈希环上的位置,由所述节点的哈希值确定。

上述的方法,可选的,所述预设参数还包括:

随机数和/或当前区块的目标交易信息,所述目标交易信息为预设的交易信息树中,预设位置的交易信息。

上述的方法,可选的,还包括:

所述目标节点以预设周期,通过所述目标节点上的区块校验其它节点;

其中,通过所述目标节点上的任意一个区块校验其它节点的过程包括:

计算目标区块的哈希值,所述目标区块为所述目标节点上的任意一个区块;

依据所述目标区块的哈希值,确定所述目标区块的出块节点以及所述出块节点的备份节点;

比较所述出块节点以及所述备份节点上的所述目标区块的所述目标交易信息;

将所述出块节点以及所述备份节点中,所述目标交易信息与其它节点不同的节点,作为不合法节点。

一种基于区块链的信息处理装置,包括:

计算单元,用于计算最新区块的哈希值,所述最新区块为生成时间最晚的区块,任意一个区块的所述哈希值依据预设参数生成,所述预设参数包括上一区块的哈希值和当前时刻的时间戳;

确定单元,用于依据所述最新区块的哈希值、以及所述节点的哈希值,确定出块节点。

一种电子设备,包括:处理器和存储器,所述存储器用于存储应用程序,所述处理器用于执行所述应用程序,以实现上述的基于区块链的信息处理方法。

一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的基于区块链的信息处理方法。

本申请所述的方法及装置,目标节点计算最新区块的哈希值,目标节点依据最新区块的哈希值、以及节点的哈希值,确定出块节点。其中,最新区块为生成时间最晚的区块,任意一个区块的哈希值依据预设参数生成,预设参数包括上一区块的哈希值和当前时刻的时间戳;目标节点为区块链中的任意一个节点。可见,与现有的工作量共识方法证明相比,本技术方案只需获知最新区块的哈希值以及各个节点的哈希值,即可确定出块节点。由于计算区块的哈希值以及节点的哈希值,不仅计算简单且计算量小,所以避免了工作量共识方法中由于计算量大而需占用大量的资源的问题。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例公开的一种基于区块链的信息处理方法的流程图;

图2为本申请实施例公开的又一基于区块链的信息处理方法的流程图;

图3为本申请实施例公开的又一基于区块链的信息处理方法的流程图;

图4为本申请实施例公开的又一基于区块链的信息处理方法的流程图;

图5为本申请实施例公开的一种区块链目标节点的结构示意图;

图6为本申请实施例公开的一种电子设备结构示意图。

具体实施方式

建设区块链网络的过程中,首先需要进行网络的初始化,初始化的过程为区块链发起设备募集一定数量的节点,并为每个节点创建初始账户,初始账户用于发起交易以及作为承担交易的载体,最后创建创区块链的创世区块,从而完成建设区块链网络的初始化流程。在完成初始化的基础上,结合以下实施例提供的方法,即可确定出区块量网络中出块的节点。

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

图1为本申请实施例提供的一种基于区块链的信息处理方法,可以包括以下步骤:

s101、目标节点计算最新区块的哈希值。

目标节点可以是区块链中的任意一个节点,即募集得到的节点中的任意一个节点,最新区块为生成时间最晚的区块,也即当前区块链中的最后一个区块。区块的哈希值依据预设参数生成,预设参数包括上一区块的哈希值和当前时刻的时间戳。依据预设参数计算得到区块的哈希值的具体实现方法可以参考现有技术。

s102、目标节点依据最新区块的哈希值、以及节点的哈希值,确定出块节点。

节点的哈希值为能够唯一标识节点的信息,例如可以采用节点的mac地址为参数,经过现有的哈希算法,即可得到节点的哈希值。

在区块链网络中,需从多个同时竞争出块的节点中选取出一个最终的出块的节点,本实施例中,可以依据最新区块的哈希值以及节点的哈希值,确定出块节点。其中,依据最新区块的哈希值以及节点的哈希值,确定出块节点一种方式可以是:目标节点确定最新区块的哈希值在虚拟哈希环上的位置,并将在虚拟哈希环上位于该位置之后的节点,作为出块节点。

虚拟哈希环是一个由哈希值组成的一个虚拟圆环,每个节点在虚拟哈希环中都有一个对应的位置,节点在虚拟哈希环上的位置由节点的哈希值确定。

目标节点计算得到最新区块的哈希值后,在虚拟环中查找到该哈希值,从而确定该哈希值在虚拟环中的位置,并将在虚拟哈希环上位于该位置之后的节点作为区块节点,例如在虚拟哈希环中,按顺时针方向将位于最新区块的哈希值之后的第一个节点作为区块的节点。

需要说明的是,由于区块链上最新区块的哈希值是根据上一区块的哈希值和当前时刻的时间戳计算的得到的,所以每次的最新区块的哈希值都是不同的,所以任意一次的最新区块在虚拟哈希环上的位置不可能是同一个位置,从而保证每次出块的节点不可能都是同一个节点,确保了节点出块的公平性。

本实施例提供的方法,目标节点计算最新区块的哈希值,并依据最新区块的哈希值、以及节点的哈希值,确定出块节点。与现有的工作量共识方法证明相比,本技术方案只需知道最新区块的哈希值以及各个节点的哈希值,即可确定出块节点。由于计算区块的哈希值以及节点的哈希值,不仅计算简单且计算量小,所以可以解决现有的工作量共识方法由于计算量大而需占用大量的资源的问题。

上述的实施例中,确定出块节点后,还可以判断该出块节点是否为故障节点,如果出块节点故障,则将出块节点在虚拟哈希环上的后续节点,作为新的出块节点。例如,在虚拟哈希环中,按顺时针方向,将在故障出块节点之后的第一个且不存在故障节点作为新的出块节点。从而避免了将故障的节点作为出块节点导致出块停滞的现象。

由于在区块链网络中,通常会有新节点接入或退出区块链,考虑到这样的情况,结合图1,参考图2,其示出了本申请实施例提供了另一种基于区块链的信息处理方法,可以包括以下步骤:

s201、目标节点计算最新区块的哈希值。

s202、目标节点依据最新区块的哈希值、以及节点的哈希值,确定出块节点。

本实施例中,s201-s202的具体实现方式可以参考上述实施例的s101-102,此处不再赘述。

s203、目标节点基于虚拟哈希环上新加入或删除的节点,更新目标节点在虚拟哈希环上的关联节点。

当新节点加入区块链时,新节点会广播的加入区块链的自身的哈希值,新节点依据自身的哈希值即可映射到虚拟哈希环中。同理,当节点退出区块链时,该节点会广播退出区块链的自身的哈希值,节点退出区块链后,从虚拟环中删除该节点。

目标节点为区块链中的任意一个节点,目标节点基于虚拟哈希环上新加入或删除的节点,更新目标节点在虚拟哈希环上的关联节点的一种方式为:目标节点接收到节点广播的加入区块链的哈希值、或退出区块链的哈希值后,依据节点广播的哈希值、自身哈希值、以及自身关联节点的哈希值,更新关联节。目标节点的关联节点为前序节点、后续节点以及备份节点。目标节点的备份节点为:在虚拟哈希环上,按顺时针方向目标节点之后的预设数量的节点,例如目标节点之后的最近3个节点。其中,目标节点更新关联节的具体现实方式可以参考现有的哈希算法,此处不再赘述。

需要说明的是,图2只是本申请的一个示例,本实施提供的方法还可以在执行s201之前执行步骤s203,或在执行s201之后和执行s202之前,执行s203。s203具体的执行顺序依据目标节点接收到其他节点广播的加入或退出区块链的哈希值决定。例如,目标节点在执行s201之前就接收到其他节点广播的加入或退出区块链的哈希值,则执行s203后,再执行s201。

本申请实施例提供的方法,目标节点依据虚拟哈希环上新加入或删除的节点,更新目标节点在虚拟哈希环上的关联节点,从而动态的适应了节点加入或退出网络带来的网络波动,确保了新加入的节点可以公平的竞争出块的机会,以及及时删除不再参与出块的节点。

在区块链网络中,出块的节点出块后,需要对该区块进行存储,以便后续查找该区块或验证该区块是否被篡改,结合图1,参考图3,其示出了本申请实施例提供了另一种基于区块链的信息处理方法,可以包括以下步骤:

s301、目标节点计算最新区块的哈希值。

s302、目标节点依据最新区块的哈希值、以及节点的哈希值,确定出块节点。

本实施例中,s301-s302的具体实现方式可以参考上述实施例的s101-102,此处不再赘述。

s303、目标节点将与出块节点的排序满足预设条件的节点,作为出块节点的备份节点。

如前述实施例所述,出块节点的排序满足预设条件的节点为:在虚拟哈希环上,出块节点之后的预设数量的节点。例如在虚拟哈希环上,按顺时针方向,在出块节点之后的最近的i个节点(i≧2)。其中,节点在虚拟哈希环上的位置,由节点的哈希值确定。

s304、目标节点将出块的节点的产生的区块存储至出块节点以及出块节点的备份节点中。

确定出块节点的备份节点后,将出块节点产生的区块存储至出块节点以及出块节点的备份节点中,实现分布式存储。

本实施例提供的方法,将出块的节点的产生的区块存储至出块节点以及出块节点的备份节点中,从而实现了分布式的存储。相比于现有的将出块节点产生的区块存储至区块链网络中所有节点的全节点存储机制,本申请实施例提供的方法,只需将出块节点产生的区块存储至出块节点以及出块节点的备份节点中,不仅具有全节点存储机制的分布式存储的优点,而且可以避免了全节点存储导致的同一个区块占用大量的存储空间,导致存储资源浪费的问题。

在区块链中,由于可能会存在篡改区块的交易信息的不合法节点,为了及时的发现区块链中不合法节点,本实施例中,目标节点以预设周期,通过目标节点上的区块校验其它节点是否为不合法节点。参考图4,其示出了本申请实施例提供的通过目标节点上的任意一个区块校验其它节点的一种方法,可以包括以下步骤:

s401、目标节点计算目标区块的哈希值。

目标节点为区块链中的任意一个节点,目标区块为目标节点中存储的任意一个区块,目标区块的哈希值依据预设参数生成,预设参数包括该目标区块的上一区块的哈希值、生成目标区块对应的时间戳、随机数、以及目标区块的目标交易信息。目标交易信息为预设的交易信息树中,预设位置的交易信息。其中,交易信息树为交易信息的哈希值构成的二叉书树,目标交易信息为二叉树的根节点上的哈希值。

s402、目标节点依据目标区块的哈希值,确定目标区块的出块节点以及出块节点的备份节点。

目标节点依据目标区块的哈希值确定目标区块的出块节点的过程如前述实施所述:目标节点确定目标区块的出块节点目标节点确定目标区块的哈希值在虚拟哈希环上的位置,并将在虚拟哈希环上位于该位置之后第一个的节点,作为目标区块的出块节点。同时,目标节点将与目标区块的出块节点的排序满足预设条件的节点,作为该出块节点的备份节点。

s403、目标节点比较出块节点以及备份节点上的目标区块的目标交易信息。

因为出块节点产生的区块不仅存储在自身中,还存储在其备份节点中,也就是说目标区块存储在目标区块的出块节点,以及该出块节点的备用节点中。因为每个目标区块都有身份编号,所以通过目标区块的身份编号即可查找出备份节点中的目标区块。

目标节点确定备份节点上的目标区块后,目标节点比较出块节点以及备份节点上的目标区块的目标交易信息是否相同,以验证目标区块的目标交易信息是否被篡改。

s404、目标节点将出块节点以及备份节点中,目标交易信息与其它节点不同的节点,作为不合法节点。

以少数服从多数的原则,目标节点将出块节点以及备份节点中,少数节点的目标交易信息与多数其他节点不同的节点,作为不合法节点。例如出块节点以及备份节点总数为11个,其中,有9个节点的目标交易信息都相同,而其余2个节点的目标交易信息与这9个节点都不同,则将该2个节点作为不合法的节点。不合法节点的将被永久的清除出该区块链。

本实施例提供的方法,目标节点通过比较出块节点以及备份节点上的目标区块的目标交易信息,验证在出块节点以及备份节点中,是否存在不合法的节点,从而可以实现清除不合法的节点,维护区块链数据安全的目的。

与上述本申请实施例提供的一种基于区块链的信息处理方法相对应,参考图5,示出了本申请实施例提供的一种基于区块链的信息处理装置500的结构框图,包括:

计算单元501,用于计算最新区块的哈希值,最新区块为生成时间最晚的区块,任意一个区块的哈希值依据预设参数生成,预设参数包括上一区块的哈希值和当前时刻的时间戳;

确定单元502,用于依据最新区块的哈希值、以及节点的哈希值,确定出块节点。

更新单元503,用于基于虚拟哈希环上新加入和/或删除的节点,更新目标节点在虚拟哈希环上的关联节点,关联节点包括前序节点、后续节点以及备份节点中的至少一项。

排序单元504,用于将与出块节点的排序满足预设条件的节点,作为出块节点的备份节点。与所述出块节点的排序满足预设条件的节点为:在虚拟哈希环上,出块节点之后的预设数量的节点,节点在所述虚拟哈希环上的位置,由节点的哈希值确定。

验证单元505,用于以预设周期,通过目标节点上的区块校验其它节点,其中,通过目标节点上的任意一个区块校验其它节点的具体实现方式为:计算目标区块的哈希值,目标区块为目标节点上的任意一个区块;依据目标区块的哈希值,确定目标区块的出块节点以及出块节点的备份节点;比较出块节点以及备份节点上的目标区块的所述目标交易信息;将出块节点以及所述备份节点中,目标交易信息与其它节点不同的节点,作为不合法节点。其中,目标区块的哈希值依据预设参数计算得到,预设参数,包括目标区块的上一区块的哈希值、产生目标区块对应的时间戳、随机数、目标区块的目标交易信息。

其中,确定单元502依据最新区块的哈希值、以及节点的哈希值,确定出块节点的具体实现方式为:确定最新区块的哈希值在虚拟哈希环上的位置;将在虚拟哈希环上位于所述位置之后的节点,作为出块节点,节点在所述虚拟哈希环上的位置,由节点的哈希值确定。

其中,更新单元503,还用于如果出块节点故障,将出块节点在虚拟哈希环上的后续节点,作为新的出块节点。

本申请实施例提供的装置,目标节点计算最新区块的哈希值,目标节点依据最新区块的哈希值、以及节点的哈希值,确定出块节点。其中,最新区块为生成时间最晚的区块,任意一个区块的哈希值依据预设参数生成,预设参数包括上一区块的哈希值和当前时刻的时间戳;目标节点为区块链中的任意一个节点。可见,与现有的工作量共识方法证明相比,本技术方案只需知道最新区块的哈希值以及各个节点的哈希值,即可确定出块节点。由于计算区块的哈希值以及节点的哈希值,不仅计算简单且计算量小,所以避免了工作量共识方法中由于计算量而需占用大量的资源的问题。

本发明实施例还提供了一种电子设备600,其结构示意图如图6所示,具体包括:处理器601和存储器602,存储器602用于存储程序;处理器601用于运行程序,以实现本发明实施例中基于区块链的信息处理方法。

本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行本发明实施例中基于区块链的信息处理方法。

本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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