一种区块链中新区快的生成方法及区块链与流程

文档序号:11143934阅读:464来源:国知局
一种区块链中新区快的生成方法及区块链与制造工艺

本发明涉及互联网金融领域,更具体地,涉及一种区块链中新区块的生成方法及区块链。



背景技术:

在当今互联网金融领域中,利用比特币的区块链技术可以通过比特币点对点网络将所有的交易历史都储存在区块链中,从而实现通过网络记录每一笔比特币的交易记录,并去中心化,同时降低交易记录被擅自篡改的机率,提高比特币持有者的安全保障性。

随着比特币交易记录数量的逐渐增多,区块链也在持续延长,目前通常采用的区块链中新区块生成的方法主要为区块链中的任一节点生成一个新区块,之后通知该区块链中的其他节点分别对该新区块进行投票,在依据投票结果判断该新区块合法时,其他节点会在各自的存储空间内生成该新区块,之后才能由该区域链中的任一节点继续生成下一个新区块,最终将生成的多个合法的新区块链接到区块链中,以存储更多的比特币交易记录。然而,采用现有的新区块生成的方法时,必须在当前新区块被全部节点进行投票并确认合法后,才能继续由任一节点生成下一个新区块,从而大大降低了区块链中生成新区块的速度,也进一步影响了区块链整体的处理效率与吞吐量。



技术实现要素:

有鉴于此,本发明提供了一种区块链中新区块的生成方法及区块链,先生成新区块,再通知其他节点进行投票,提高了区块链中新区块的生成速度。

具体技术方案如下:

一种区块链中新区块的生成方法,应用于区块链,所述区块链包含多个节点,所述方法包括:

当目标节点的运行状态满足预设条件时,控制所述目标节点在公共存储空间生成新区块,所述目标节点为所述区块链中的任一节点;

通知所述区块链中的所有节点分别对所述新区块的合法性进行验证,并根据验证结果生成相应的投票信息;

对当前各个所述节点对所述新区块的投票信息进行解析,依据预设规则,对所述新区块的合法性进行选举,确定所述新区块是否为合法区块,并对所述新区块进行业务处理。

优选的,所述当目标节点的运行状态满足预设条件时,控制所述目标节点在公共存储空间生成新区块,包括:

当所述目标节点接收到的业务数据的数量超过预设值,和/或所述目标节点未生成新区块的时间超过预设时间时,通过所述目标节点的节点信息对所述业务数据进行签名,得到数据签名;

基于所述节点信息、所述业务数据和所述数据签名生成区块数据,并将所述区块数据存储在公共存储空间,生成相应的新区块。

优选的,所述对当前各个所述节点的投票信息进行解析,依据预设规则,对所述新区块的合法性进行选举,确定所述新区块是否为合法区块,包括:

对当前各个所述节点对所述新区块的投票信息进行解析,得到当前合法票数和非合法票数;所述投票信息包含所述新区块合法信息或所述新区块非合法信息;

当所述当前合法票数或非合法票数大于所述节点数量的一半时,对所述新区块的合法性进行选举,具体为:当所述当前合法票数大于所述节点数量的一半时,确定所述新区块为合法区块;当所述当前非合法票数大于所述节点数量的一半时,确定所述新区块为非合法区块。

优选的,所述方法还包括:

将各个所述节点对所述新区块的投票信息写入所述公共存储空间,生成对所述新区块的投票数据;

将各个所述节点对所述新区块的投票数据链接到对所述新区块的上一个区块的投票数据上,形成所述目标节点的投票链。

优选的,所述方法还包括:

查询所述目标节点的最新投票数据,得到最新生成的所述新区块;

从对所述新区块的投票数据开始遍历所述目标节点的投票链,根据所述目标节点的投票链上对每一个区块的投票数据,确定各个所述区块是否为合法区块,并将合法区块加入队列,直到创世区块,得到所述目标节点上所有的合法区块。

一种区块链,所述区块链包括:

生成单元,用于当目标节点的运行状态满足预设条件时,控制所述目标节点在公共存储空间生成新区块,所述目标节点为所述区块链中的任一节点;

验证单元,用于通知所述区块链中的所有节点分别对所述新区块的合法性进行验证,并根据验证结果生成相应的投票信息;

选举单元,用于对当前各个所述节点对所述新区块的投票信息进行解析,依据预设规则,对所述新区块的合法性进行选举,确定所述新区块是否为合法区块,并对所述新区块进行业务处理。

优选的,所述生成单元包括:

签名子单元,用于当所述目标节点接收到的业务数据的数量超过预设值,和/或所述目标节点未生成新区块的时间超过预设时间时,通过所述目标节点的节点信息对所述业务数据进行签名,得到数据签名;

生成子单元,用于基于所述节点信息、所述业务数据和所述数据签名生成区块数据,并将所述区块数据存储在公共存储空间,生成相应的新区块。

优选的,所述选举单元包括:

解析子单元,用于对当前各个所述节点对所述新区块的投票信息进行解析,得到当前合法票数和非合法票数;所述投票信息包含所述新区块合法信息或所述新区块非合法信息;

选举子单元,用于当所述当前合法票数或非合法票数大于所述节点数量的一半时,对所述新区块的合法性进行选举,具体为:当所述当前合法票数大于所述节点数量的一半时,确定所述新区块为合法区块;当所述当前非合法票数大于所述节点数量的一半时,确定所述新区块为非合法区块。

优选的,所述区块链还包括:

写入单元,用于将各个所述节点对所述新区块的投票信息写入所述公共存储空间,生成对所述新区块的投票数据;将各个所述节点对所述新区块的投票数据链接到对所述新区块的上一个区块的投票数据上,形成所述目标节点的投票链。

优选的,所述区块链还包括:

查询单元,用于查询所述目标节点的最新投票数据,得到最新生成的所述新区块;从对所述新区块的投票数据开始遍历所述目标节点的投票链,根据所述目标节点的投票链上对每一个区块的投票数据,确定各个所述区块是否为合法区块,并将合法区块加入队列,直到创世区块,得到所述目标节点上所有的合法区块。

相对于现有技术,本发明的有益效果如下:

本发明公开的一种区块链中新区块的生成方法及区块链,当目标节点的运行状态满足预设条件时,控制所述目标节点在公共存储空间生成新区块,再通知区块链中的所有节点分别对所述新区块的合法性进行验证,并根据验证结果生成相应的投票信息;对当前各个所述节点对所述新区块的投票信息进行解析,依据预设规则,对所述新区块的合法性进行选举,确定所述新区块是否为合法区块,并对所述新区块进行业务处理。本发明解决了区块链生成新区块需要其他节点的确认才能生成的问题,提高了区块链中新区块的生成速度,进而提高了区块链的整体处理效率与吞吐量。

附图说明

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

图1为本发明实施例公开的一种区块链中新区块的生成方法流程图;

图2为本发明实施例公开的一种区块链中新区块的生成方法又一方法流程图;

图3为本发明实施例公开的一种区块链中新区块的生成方法又一方法流程图;

图4为本发明实施例公开的一种区块链的结构示意图;

图5为本发明实施例公开的一种区块链的结构示意图。

具体实施方式

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

请参阅图1,本实施例公开了一种区块链中新区块的生成方法,应用于区块链,所述区块链包含多个节点,所述方法具体包括以下步骤:

步骤S101:当目标节点的运行状态满足预设条件时,控制所述目标节点在公共存储空间生成新区块,所述目标节点为所述区块链中的任一节点;

具体的,所述步骤S101的具体执行过程如下:

当所述目标节点接收到的业务数据的数量超过预设值,和/或所述目标节点未生成新区块的时间超过预设时间时,通过所述目标节点的节点信息对所述业务数据进行签名,得到数据签名;

基于所述节点信息、所述业务数据和所述数据签名生成区块数据,并将所述区块数据存储在公共存储空间,生成相应的新区块。

需要说明的是,所述预设条件为:所述目标节点接收到的业务数据的数量超过预设值,和/或所述目标节点未生成新区块的时间超过预设时间。所述预设值和预设时间可以根据实际需要进行预先设定,例如:所述预设值可以为1000,预设时间可以为1分钟。

还需要说明的是,签名的目的是保证数据不被篡改,签名后的业务数据没有任何变化,只会多一个数据签名。若对数据进行修改后,对应的数据签名会发生改变,通过对数据进行签名校验就可以知道数据是否被篡改。所述区块数据包括:节点信息、业务数据和数据签名,所述节点信息为节点在区块链中的位置信息。

步骤S102:通知所述区块链中的所有节点分别对所述新区块的合法性进行验证,并根据验证结果生成相应的投票信息;

可以理解的是,目标节点通知区块链中的所有节点分别对所述新区块的合法性进行验证,区块链中的所有节点都会分别对所述新区块的合法性进行验证,并分别生成一个与各自验证结果相对应的投票信息。

具体的,对所述新区块的合法性验证的手段可以有多种,其中对数据签名的验证为其中可选的一种手段。

所述投票信息包含所述新区块合法信息或所述新区块非合法信息。

步骤S103:对当前各个所述节点对所述新区块的投票信息进行解析,依据预设规则,对所述新区块的合法性进行选举,确定所述新区块是否为合法区块,并对所述新区块进行业务处理。

具体的,请参阅图2,步骤S103的具体执行过程如下:

步骤S201:对当前各个所述节点对所述新区块的投票信息进行解析,得到当前合法票数和非合法票数;所述投票信息包含所述新区块合法信息或所述新区块非合法信息;

可以理解的是,若投票信息为所述新区块合法,则所述投票信息对应的是合法票;若投票信息为所述新区块非合法,则所述投票信息对应的是非合法票。区块链中每一个节点都生成一个对所述新区块的投票信息,并对应一个和发票或非合法票。对当前各个所述节点对所述新区块的投票信息进行解析,就能得到当前合法票数和非合法票数。

步骤S202:当所述当前合法票数或非合法票数大于所述节点数量的一半时,对所述新区块的合法性进行选举,具体为:当所述当前合法票数大于所述节点数量的一半时,确定所述新区块为合法区块;当所述当前非合法票数大于所述节点数量的一半时,确定所述新区块为非合法区块。

需要说明的是,若当前合法票数与非合法票数均未大于节点数量的一半,则等待其他节点的投票,直到所述当前合法票数或非合法票数大于所述节点数量的一半。

还需要说明的是,所述新区块不论是合法区块还是非合法区块都可能需要对其进行相应的业务处理。

本实施例公开的一种区块链中新区块的生成方法,当目标节点的运行状态满足预设条件时,控制所述目标节点在公共存储空间生成新区块,再通知区块链中的所有节点分别对所述新区块的合法性进行验证,并根据验证结果生成相应的投票信息;对当前各个所述节点对所述新区块的投票信息进行解析,依据预设规则,对所述新区块的合法性进行选举,确定所述新区块是否为合法区块,并对所述新区块进行业务处理。

本实施例解决了现有技术中区块链生成新区块需要其他节点的确认才能生成,且由于节点间的网络通信因素,以及各个节点处理效率的差异,每个节点生成投票信息的速度不同,造成的新区块生成速度慢的问题,提高了区块链中新区块的生成速度,进而提高了区块链的整体处理效率与吞吐量。

请参阅图3,所述方法还包括:

步骤S104:将各个所述节点对所述新区块的投票信息写入所述公共存储空间,生成对所述新区块的投票数据;将各个所述节点对所述新区块的投票数据链接到对所述新区块的上一个区块的投票数据上,形成所述目标节点的投票链。

具体的,所述投票数据包括:投票的当前区块和区块的合法性。

需要说明的是,在公共存储空间内,区块数据和投票数据分开独立存储,进而新区块的生成和对该新区块的投票能够通过不同的进程进行独立处理,不需要等待其他节点的投票结果,就能直接先生成新区块,提高了区块链中区块的生成速度。

一份区块数据对应多份投票数据,每个节点独立维护自己的投票链,投票链的起点为创世区块。

可以理解的是,每一个区块的投票数据都与上一个区块的投票数据进行链接,从而形成了一个投票链。

步骤S105:查询所述目标节点的最新投票数据,得到最新生成的所述新区块;从对所述新区块的投票数据开始遍历所述目标节点的投票链,根据所述目标节点的投票链上对每一个区块的投票数据,确定各个所述区块是否为合法区块,并将合法区块加入队列,直到创世区块,得到所述目标节点上所有的合法区块。

需要说明的是,在服务器初始化时生成创世区块,创世区块是区块链的源头,从创世区块开始生成一个又一个相互链接的区块。

区块链的查询功能是一项很重要的功能,查询目标节点的最新投票数据,得到最新生成的所述新区块,从对所述新区块的投票数据开始遍历所述目标节点的投票链,根据所述目标节点的投票链上对每一个区块的投票数据,确定各个所述区块是否为合法区块,将合法区块加入队列,直到创世区块,得到所述目标节点上所有的合法区块。由于区块链中不仅存在合法区块还存在非合法区块,从投票链进行遍历,可以避免非合法区块的干扰,得到全部合法区块,实现了区块数据的可追溯性。

还需要说明的是,查询也可以从创世区块开始往后查询,一直到最新生成的所述新区块。

还需要说明的是,区块链由公共存储空间和区块链节点程序构成,区块链节点程序的功能采用独立的进程实现,能够分别独立完成生成新区块、对新区块进行投票、对新区块进行选举,以及查询功能,进程间使用满足单一消费者模型的队列实现通信。

请参阅图4,基于上述实施例公开的一种区块链中新区块的生成方法,本实施例对应公开了一种区块链,具体包括:

生成单元101,用于当目标节点的运行状态满足预设条件时,控制所述目标节点在公共存储空间生成新区块,所述目标节点为所述区块链中的任一节点;

验证单元102,用于通知所述区块链中的所有节点分别对所述新区块的合法性进行验证,并根据验证结果生成相应的投票信息;

选举单元103,用于对当前各个所述节点对所述新区块的投票信息进行解析,依据预设规则,对所述新区块的合法性进行选举,确定所述新区块是否为合法区块,并对所述新区块进行业务处理。

本实施例公开的区块链,在生成单元101中,当目标节点的运行状态满足预设条件时,不需要其他节点的投票,就能先生成新区块,解决了区块链生成新区块需要其他节点的确认才能生成的问题,提高了区块链中新区块的生成速度,进而提高了区块链的整体处理效率与吞吐量。

请参阅图5,所述生成单元101包括:

签名子单元106,用于当所述目标节点接收到的业务数据的数量超过预设值,和/或所述目标节点未生成新区块的时间超过预设时间时,通过所述目标节点的节点信息对所述业务数据进行签名,得到数据签名;

生成子单元107,用于基于所述节点信息、所述业务数据和所述数据签名生成区块数据,并将所述区块数据存储在公共存储空间,生成相应的新区块。

所述选举单元103包括:

解析子单元108,用于对当前各个所述节点对所述新区块的投票信息进行解析,得到当前合法票数和非合法票数;所述投票信息包含所述新区块合法信息或所述新区块非合法信息;

选举子单元109,用于当所述当前合法票数或非合法票数大于所述节点数量的一半时,对所述新区块的合法性进行选举,具体为:当所述当前合法票数大于所述节点数量的一半时,确定所述新区块为合法区块;当所述当前非合法票数大于所述节点数量的一半时,确定所述新区块为非合法区块。

所述区块链还包括:

写入单元104,用于将各个所述节点对所述新区块的投票信息写入所述公共存储空间,生成对所述新区块的投票数据;将各个所述节点对所述新区块的投票数据链接到对所述新区块的上一个区块的投票数据上,形成所述目标节点的投票链。

查询单元105,用于查询所述目标节点的最新投票数据,得到最新生成的所述新区块;从对所述新区块的投票数据开始遍历所述目标节点的投票链,根据所述目标节点的投票链上对每一个区块的投票数据,确定各个所述区块是否为合法区块,并将合法区块加入队列,直到创世区块,得到所述目标节点上所有的合法区块。

需要说明的是,查询单元105,也可以从创世区块开始往后查询,一直到最新生成的所述新区块。

查询单元105中遍历投票链,使区块链实现了区块数据的完整性,即无需删除非合法区块,只需使用区块链的查询单元105就能得到所述区块链上所有的合法区块;同时,本实施例公开的区块链实现了区块数据的不可篡改性和可追溯性。

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

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