数据处理方法、装置、计算机设备以及存储介质与流程

文档序号:21720077发布日期:2020-08-05 01:09阅读:126来源:国知局
数据处理方法、装置、计算机设备以及存储介质与流程

本申请涉及计算机技术领域,尤其涉及一种数据处理方法、装置、计算机设备以及存储介质。



背景技术:

区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。简单的讲,区块链就是去中心化的分布式账本。

存储以及维护分布式账本的计算机设备称为区块链节点,维护同一个分布式账本的多个区块链节点可以组合为区块链网络。为了实现去中心化,目前在区块链网络组建过程中,采用随机策略来确定所有的节点之间的连接关系。

节点连接的无约束性会造成连接关系的不合理,进而降低共识效率,影响区块链网络的性能。



技术实现要素:

本申请实施例提供一种数据处理方法、装置、计算机设备以及存储介质,可以合理组建区块链网络,提高区块链网络的性能。

本申请实施例一方面提供了一种数据处理方法,应用于目标节点,包括:

获取目标节点的节点组网信息;所述目标节点的节点组网信息是根据参与组网的参与节点的节点参数确定的,所述目标节点的节点组网信息包括直连节点的地址;

根据所述直连节点的地址与所述直连节点建立连接,以构建包含所述目标节点和所述直连节点的目标区块链网络。

本申请实施例一方面提供了一种数据处理装置,应用于目标节点,包括:

获取模块,用于获取目标节点的节点组网信息;所述目标节点的节点组网信息是根据参与组网的参与节点的节点参数确定的,所述目标节点的节点组网信息包括直连节点的地址;

建立连接模块,用于根据所述直连节点的地址与所述直连节点建立连接,以构建包含所述目标节点和所述直连节点的目标区块链网络。

其中,所述目标节点的节点组网信息存储于区块链;所述目标节点是所述区块链对应的原始区块链网络中的节点;

所述获取模块,包括:

第一响应单元,用于响应于组网智能合约中的组网事务的执行请求,获取所述区块链;

第一获取单元,用于从所述区块链中获取所述目标节点的节点组网信息。

其中,所述参与节点的节点参数存储于区块链;所述目标节点是所述区块链对应的原始区块链网络中的节点;

所述装置还包括:

第一响应模块,用于响应于组网智能合约中的组网信息上传事务的执行请求,获取所述区块链,从所述区块链中获取所述参与节点的节点参数;

确定模块,用于根据所述参与节点的节点参数确定所述目标节点的节点组网信息;

所述第一响应模块,还用于将所述目标节点的节点组网信息添加至所述区块链。

其中,所述装置还包括:

第二响应模块,用于响应于所述组网智能合约中的节点参数上传事务的执行请求,获取所述参与节点的节点参数,将所述参与节点的节点参数添加至所述区块链。

其中,所述参与节点包括多个原始非共识节点,所述多个原始非共识节点均是所述原始区块链网络中的非共识节点;所述原始区块链网络还包括多个原始共识节点;

所述确定模块,包括:

第二获取单元,用于根据每个原始非共识节点的节点参数确定每个原始非共识节点的质量评分,以及确定所述多个原始共识节点的共识节点数量;

确定单元,用于根据所述共识节点数量和每个原始非共识节点的质量评分,确定所述目标节点的节点组网信息。

其中,所述目标节点是所述多个原始共识节点中的任一原始共识节点;

所述确定单元,包括:

选择子单元,用于根据每个原始非共识节点的质量评分以及所述共识节点数量,从所述多个原始非共识节点中选择多个一级非共识节点簇;一级非共识节点簇的数量等于所述共识节点数量,各一级非共识节点簇之间的节点数量差异量小于所述差异量阈值;

设置子单元,用于为每个一级非共识节点簇和每个原始共识节点建立关联关系,获取与所述目标节点具有关联关系的一级非共识节点簇的第一地址,获取在所述原始区块链网络中与所述目标节点直连的原始共识节点的第二地址,将所述第一地址和所述第二地址组合为所述目标节点的节点组网信息。

其中,还包括:

确定子单元,用于将所述目标节点作为所述目标区块链网络的共识节点,若所述直连节点是所述原始区块链网络中的共识节点,则将所述直连节点作为所述目标区块链网络中的共识节点,若所述直连节点是所述原始区块链网络中的非共识节点,则将所述直连节点作为所述目标区块链网络中的非共识节点。

其中,所述目标节点是所述多个原始非共识节点中的任一原始非共识节点;

所述确定单元,包括:

划分子单元,用于根据所述共识节点数量确定一级节点数量阈值,根据每个原始非共识节点的质量评分以及所述一级节点数量阈值,将所述多个原始非共识节点划分为多个一级非共识节点簇和多个二级非共识节点簇;一级非共识节点簇的数量等于所述共识节点数量;所有一级非共识节点簇中所包含的一级非共识节点的一级非共识节点数量等于或小于所述一级节点数量阈值;二级非共识节点簇的数量等于所述一级非共识节点数量;所述目标节点属于所述多个一级非共识节点簇;

组合子单元,用于为每个一级非共识节点簇和每个原始共识节点建立关联关系,为每个二级非共识节点簇和每个一级非共识节点建立关联关系,将与所述目标节点具有关联关系的二级非共识节点簇的地址作为所述目标节点的下组网信息,将与所述目标节点具有关联关系的原始共识节点的地址作为所述目标节点的上组网信息,将所述上组网信息和所述下组网信息组合为所述目标节点的节点组网信息。

其中,所述参与节点包括多个原始节点,所述多个原始节点均是所述原始区块链网络中的节点,所述目标节点属于所述多个原始节点;

所述确定模块,包括:

划分单元,用于根据每个原始节点的节点参数确定每个原始节点的质量评分,根据每个原始节点的质量评分将所述多个原始节点划分为多个第一共识节点和多个第一非共识节点簇;第一非共识节点簇的数量和第一共识节点的数量相同;所述目标节点是所述多个第一共识节点中的任一第一共识节点;

第三获取单元,用于为每个第一非共识节点簇和每个第一共识节点建立关联关系,获取与所述目标节点具有关联关系的第一非共识节点簇的第三地址,获取在所述多个第一共识节点中除所述目标节点以外的其余第一共识节点的第四地址,将所述第三地址和所述第四地址组合为所述目标节点的节点组网信息。

其中,所述组网智能合约于所述区块链;

所述装置还包括:

生成模块,用于从所述区块链中获取所述组网智能合约,获取目标时间戳;

所述生成模块,还用于当所述目标时间戳满足所述节点参数上传事务的触发条件时,生成所述节点参数上传事务的执行请求,或当接收到节点加入请求时,生成所述节点参数上传事务的执行请求。

其中,所述参与节点包括多个原始节点,所述目标节点属于所述多个原始节点;

所述获取模块,包括:

第四获取单元,用于从节点管理数据库中获取每个原始节点的节点参数,根据每个原始节点的节点参数确定每个原始节点的质量评分,根据每个原始节点的质量评分将所述多个原始节点划分为多个第二共识节点和多个第二非共识节点簇;第二非共识节点簇的数量和第二共识节点的数量相同;所述目标节点是所述多个第二共识节点中的任一第二共识节点;

关系建立单元,用于为每个第二非共识节点簇和每个第二共识节点建立关联关系,获取与所述目标节点具有关联关系的第二非共识节点簇的第五地址,获取在所述多个第二共识节点中除所述目标节点以外的其余第二共识节点的第六地址,将所述第五地址和所述第六地址组合为所述目标节点的节点组网信息。

本申请实施例一方面提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述实施例中的方法。

本申请实施例一方面提供了一种计算机存储介质,计算机存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,执行上述实施例中的方法。

本申请通过参与组网的节点的节点参数来确定目标节点的直连节点,进而目标节点和直连节点建立连接以构建区块链网络,可见根据节点参数作为组网约束条件既避免了采用随机连接策略所导致的不稳定,也避免了采用全连接策略所导致的连接冗余,可以提高组建区块链网络的灵活性和合理性,保证共识效率,提高区块链网络的性能。

附图说明

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

图1是本申请实施例提供的一种区块链网络的示意图;

图2a-图2d是本申请实施例提供的一种数据处理的场景示意图;

图3是本申请实施例提供的一种数据处理方法的示意图;

图4是本申请实施例提供的一种数据处理方法的流程示意图;

图5是本申请实施例提供的一种确定节点组网信息的示意图;

图6是本申请实施例提供的一种数据处理方法的流程示意图;

图7是本申请实施例提供的一种数据处理方法的流程示意图;

图8是本申请实施例提供的一种数据处理装置的结构示意图;

图9是本申请实施例提供的一种计算机设备的结构示意图。

具体实施方式

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

区块链(blockchain)是分布式数据存储、点对点传输(p2p,peertopeer)、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一个或多个交易信息,用于验证其信息的有效性(防伪)和生成下一个区块。

请参见图1,是本申请实施例提供的一种区块链网络的示意图,节点1、节点2、节点3以及节点4可以组合为区块链网络,每个节点都可以存储一条相同的区块链,上述4个节点也可以称为区块链节点,每个节点都可以包括硬件层、中间层、操作系统层和应用层。可以理解的是,节点可以包括计算机设备。

区块链网络不仅包括多个节点,还包括多个节点之间的连接关系,本申请的主要目的是灵活组建区块链网络,以提高区块链网络的性能。本申请可以应用在如下两个场景中,场景一:现有一个原始区块链网络,采用本方案可以优化原始区块链网络中各区块链节点之间的连接关系,以提高区块链网络的性能;场景二:现有多个节点,采用本方案确定多个节点之间的连接关系,以新创建一个具有高性能的区块链网络。

图1所示的节点等可以是手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mid,mobileinternetdevice)、可穿戴设备(例如智能手表、智能手环等)或者服务器等计算机设备。

下述图2a-图2d对应的实施例以场景一为例进行具体说明:

请参见图2a-图2d,是本申请实施例提供的一种数据处理的场景示意图。图2a所示的区块链网络包括4个节点,节点1和节点2、节点3以及节点4直连,节点2和节点1直连,节点3和节点1直连,节点4和节点1直连,且节点1和节点2是共识节点,节点3和节点4是非共识节点。

共识节点内部包括共识模块,共识模块遵循共识机制对区块链网络中的交易数据进行共识,生成新区块以及上链;非共识节点不用参与共识,只需要从共识节点同步最新生成的区块即可。这4个节点都会存储一条区块链,从图2a可以看出此时区块链包括3个区块。

4个节点定时检测当前时间戳是否满足节点参数上传事务的触发条件,若满足,4个节点获取各自的节点参数,节点参数可以包括:内存容量,网络带宽,cpu核数等。获取了节点参数后,4个节点向区块链网络中广播自己的节点参数,按照预设的共识机制从节点1和节点2中选择出一个节点用于生成区块并上链,假设选择出节点1来生成区块以及上链。节点1可以将4个节点的节点参数组合为节点参数集合20a。

节点1可以将上述节点参数集合20a存储至区块体,计算节点参数集合20a的默克尔根,获取当前区块链的最后一个区块(即是第3个区块)的哈希散列值以及当前时间戳,将上述默克尔根、最后一个区块的哈希散列值以及当前时间戳存储至区块头,节点1将上述区块头以及存储了节点参数集合20a的区块体组合为区块20b。

节点1可以将新生成的区块20b添加至节点1中所存储的区块链,以及向区块链网络中的其他节点(即是节点2、节点3以及节点4)广播上述区块20b,以使其他3个节点将新生成的区块20b添加至各自存储的区块链中。

如图2b所示,此时区块链的就包括了4个区块,最后一个区块是新生成的区块20b。每个节点可以生成节点参数上传事务的完成通知,表明节点参数上传事务完成。

每个节点获取到节点参数上传事务的完成通知后,触发执行组网信息上传事务。以节点1执行组网信息上传事务为例,节点1从区块链中获取区块20b,以及从区块20b中获取节点参数集合20a。节点1从4个节点中选择性能最优的节点1和节点2作为共识节点,剩余的2个节点就是非共识节点(此时网络调整前后共识节点和非共识节点没有发生变化)。基于负载均衡原则为每个共识节点分配待直连的节点,负载均衡原则是指每个共识节点所直连的非共识节点的数量相同或相近,每个共识节点所直连的非公司节点的数量不宜过多,且直连共识节点的非共识节点的性能要优越。假设基于负载均衡原则可以确定以下组网信息:节1的直连节点为节点2和节点3,节点2直连节点为节点1和节点4,节点3的直连节点为节点1,节点4的直连节点为节点2。

和上述节点参数集合20a打包上链相同,按照预设的共识机制从节点1和节点2中选择出一个节点用于打包上链,假设选择出节点1。如图2b所示,节点1可以将上述组网信息存储至区块体,计算组网信息的默克尔根,获取当前区块链的最后一个区块(假设是区块20b)的哈希散列值以及当前时间戳,将上述默克尔根、最后一个区块的哈希散列值以及当前时间戳存储至区块头,节点1将上述区块头以及存储了组网信息的区块体组合为区块20c。

节点1可以将新生成的区块20c添加至节点1中所存储的区块链,以及向区块链网络中的其他节点(即是节点2、节点3以及节点4)广播上述区块20c,以使其他3个节点将新生成的区块20c添加至各自存储的区块链中。

如图2c所示,此时区块链的就包括了5个区块,最后一个区块是新生成的区块20c。每个节点可以生成组网信息上传事务的完成通知,表明组网信息上传事务完成。

每个节点获取到组网信息上传事务的完成通知后,从区块链中获取区块20c,以及从区块20c中获取4个节点的组网信息。

如图2d所示,对节点1来说,获取到组网信息后,可以与节点2和节点3建立连接;对节点2来说,获取到组网信息后,可以与节点1和节点4建立连接;对节点3来说,获取到组网信息后,可以与节点1建立连接;对节点4来说,获取到组网信息后,可以与节点2建立连接。

至此,就完成了节点1、节点2、节点3和节点4的组网过程,调整了4个节点之间的连接关系。比较图2a所对应的区块链网络,和采用本方案后确定的图2d所对应的区块链网络,可以看出图2d中每个共识节点所直连的非共识节点数量都是1,共识节点和非共识节点之间的连接耦合度较低,节点连接关系更加合理,可以保证共识效率,以及方便后续的节点管理以及节点扩充。

其中,目标节点(如上述实施例中的节点1、节点2、节点3以及节点4中的任一节点)根据参与节点(如上述实施例中的节点1、节点2、节点3以及节点4)的节点参数(如上述实施例中的节点参数集合20a)确定自己的节点组网信息的具体过程可以参见下述图3-图7对应的实施例。

请参见图3,是本申请实施例提供的一种数据处理方法的示意图,数据处理方法可以应用于目标节点,数据处理方法包括如下步骤:

步骤s101,获取目标节点的节点组网信息,所述目标节点的节点组网信息是根据参与组网的参与节点的节点参数确定的,所述目标节点的节点组网信息包括直连节点的地址。

具体的,本申请涉及区块链网络的组建,组建区块链网络可以应用于以下两个场景,场景一:已有一个原始区块链网络,调整原始区块链网络中各节点之间的连接关系,得到一个新的目标区块链网络;场景二:基于多个节点组建一个全新的目标区块链网络。

当应用于场景一时,组网过程中所需要的数据可以存储在区块链上,以保证数据的完整性、安全性以及可追溯性;当应用于场景二时,由于在实施本申请之前还未有一个区块链网络,因此组网过程中所需要的数据可以存储在节点管理数据库中(或者云端)。

目标节点可以从区块链上获取自己的节点组网信息或者从节点管理数据库中获取自己的节点组网信息,目标节点的节点组网信息是根据参与组网的参与节点的节点参数(如上述图2a-图2d对应实施例中的节点参数集合20a)以及负载均衡原则确定的。参与节点可以包含多个节点(任意一个节点就是一台计算机设备),参与节点的节点参数即是参与节点所包含的所有节点的节点参数。负载均衡原则是指在构建得到的目标区块链网络中,处于同一等级的多个节点的连接负载相同或相近。节点的连接负载是由直连该节点的节点数量决定的。

节点参数可以包括:节点内存容量,节点网络带宽,节点cpu核数等节点信息中的至少一项。

当目标节点的节点组网信息是从区块链上获取到时,此时的参与节点和目标节点可以是原始区块链网络中的节点,原始区块链网络中的节点可以分为共识节点(称为原始共识节点)和非共识节点(称为原始非共识节点)。共识节点内部包括共识模块,共识模块主要用于对区块链网络中的交易数据进行共识,生成新区块以及上链;非共识节点不用参与共识,只需要从共识节点同步最新生成的区块,以及维护区块链。

与目标节点类似,对参与节点中的多个节点来说,也可以从区块链或者节点管理数据库中获取到自己的节点组网信息。

步骤102,根据所述直连节点的地址与所述直连节点建立连接,以构建包含所述目标节点和所述直连节点的目标区块链网络。

具体的,目标节点根据自己的直连节点的地址,与对应的直连节点建立连接。

对参与节点中的多个节点来说,同样可以根据自己的直连节点的地址,与对应的直连节点建立连接。这样就构建了一个包括参与节点,目标节点以及目标节点的直连节点的区块链网络(称为目标区块链网络,如上述图2d对应的区块链网络)。

将参与组网的节点的节点参数作为组网约束条件既避免了采用随机连接策略所导致的不稳定,也避免了采用全连接策略所导致的连接冗余,可以提高组建区块链网络的灵活性和合理性,保证共识效率,提高区块链网络的性能。

请参见图4,是本申请实施例提供的一种数据处理方法的流程示意图,本实施例应用场景为在原始区块链网络的基础上调整节点之间的连接关系(即对应图3实施例所描述的场景一),原始区块链网络包括多个原始节点,多个原始节点又可以细分为多个原始共识节点和多个原始非共识节点,目标节点是多个原始节点中的一个原始节点,换句话说,目标节点既可以是原始区块链网络中的共识节点,也可以是原始区块链网络中的非共识节点,多个原始非共识节点可以组合为参与节点。

数据处理方法包括如下步骤:

步骤s201,响应于组网智能合约中的组网信息上传事务的执行请求,获取所述区块链,从所述区块链中获取所述参与节点的节点参数。

具体的,本申请涉及的组网流程可以编写在组网智能合约中,组网智能合约存储在区块链上,所有的原始节点均是组网智能合约的参与方。

智能合约(smartcontract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约和传统纸质合约的区别在于智能合约是由计算机生成的。因此,代码本身解释了参与方的相关义务。

本申请中的组网智能合约包括节点参数上传事务,组网信息上传事务以及组网事务,节点参数上传事务是将参与节点的节点参数上传至区块链,组网信息上传事务是根据参与节点的节点参数确定每个原始节点的节点组网信息,组网事务是每个原始节点根据各自的节点组网信息与对应的直连节点建立连接。整个事务和状态的处理都由区块链底层内置的智能合约系统自动完成,全程透明、不可攥改。

上述三个事务顺序执行,且每个事务都存在对应的触发条件,当满足触发条件时,执行相应的事务,执行完毕后,修改事务的状态。

目标节点每间隔固定时长就获取当前时间戳,若当前时间戳满足组网智能合约中的组网信息上传事务的触发条件,则目标节点生成组网信息上传事务的执行请求。目标节点响应于组网智能合约中的组网信息上传事务的执行请求,从区块链上获取参与节点的节点参数。当然,在目标节点响应组网信息上传事务的执行请求之前,参与节点的节点参数已经存储在区块链上了。

目标节点将参与节点的节点参数上传至区块链的过程如下:

目标节点每间隔固定时长就获取当前时间戳(称为目标时间戳),若目标时间戳满足组网智能合约中的节点参数上传事务的触发条件,则目标节点生成节点参数上传事务的执行请求;或者,当目标节点获取到节点加入请求时,目标节点生成节点参数上传事务的执行请求,节点加入请求是指有新的节点请求加入原始区块链网络。目标节点获取每个原始非共识节点的节点参数。

若目标节点是原始区块链网络中具有最大工作量证明的原始共识节点(假设原始区块链网络的共识机制是工作量证明机制,说明此时目标节点不属于参与节点),那么目标节点可以将所有原始非共识节点的节点参数添加至区块体,获取当前区块链中最后一个区块的哈希散列值,以及获取参与节点的节点参数的默克尔根,将上述哈希散列值、默克尔根以及当前时间戳添加至区块头,将添加了节点参数的区块体以及上述区块体组合的第一区块(如上述图2a-图2d对应实施例中的区块20b),将这个新的第一区块添加至本地存储的区块链以及向其余的原始节点广播该第一区块,以使所有原始节点各自存储的区块链达到同步。

若目标节点是原始区块链网络中的原始非共识节点(说明此时目标节点属于参与节点),那么目标节点可以获取自己的节点参数以及获取其余非共识节点的节点参数,将获取到的节点参数组合为参与节点的节点参数,以及将参与节点的节点参数发送至原始区块链网络中的原始共识节点,待原始共识节点共识完成后,原始共识节点会生成第一区块(共识节点生成第一区块和上述目标节点生成第一区块的过程相同,此处就不再复述)。目标节点从共识节点那同步第一区块即可。

步骤s202,根据所述参与节点的节点参数确定所述目标节点的节点组网信息;所述参与节点包括多个原始非共识节点。

具体的,目标节点基于负载均衡原则以及每个原始非共识节点的节点参数确定每个原始非共识节点的节点组网信息以及每个原始共识节点的节点组网信息,节点组网信息包括一个或多个直连节点的地址。负载均衡原则是指直连共识节点的非共识节点数量不超过预设阈值,直连每个共识节点的非共识节点数量都相同或相近,且每个共识节点下属的非共识节点数量相同或相近。

确定每个原始节点的节点组网信息即是将多个原始节点构建成树形结构,使得每个共识节点只直连有限个非共识节点,降低直连共识节点的非共识节点数量,以提高共识效率。在调整原始区块链网络过程中,共识节点和非共识节点不会发生变化,变化的是它们之间的连接关系。例如,若节点a是原始区块链网络中的共识节点,那么在目标区块链网络中节点a也是共识节点;若节点a是原始区块链网络中的非共识节点,那么在目标区块链网络中节点a也是非共识节点。

下面对如何确定每个原始节点的节点组网信息进行具体说明:

从前述可知参与节点包括多个原始非共识节点,任意原始非共识节点是原始区块链中的非共识节点,且原始区块链网络还包括多个原始共识节点。目标节点获取每个原始非共识节点的节点参数,根据每个原始非共识节点的节点参数确定每个原始非共识节点的质量评分;当然节点性能越好,对应的质量评分就越高。

例如,原始非共识节点1的节点参数为:内存容量为2g,网络带宽为10m,原始非共识节点2的节点参数为:内存容量为4g,网络带宽为50m,那么原始非共识节点2的质量评分大于原始非共识节点1的质量评分。

目标节点获取多个原始共识节点的节点数量(称为共识节点数量,假设共识节点数量为n),根据共识节点数量n确定一级节点数量阈值m,此处的一级节点数量阈值可以表明直连共识节点的非共识节点的最大数量阈值。

例如,共识节点数量表示为n,一级节点数量阈值m可以为4n,表明直连每个共识节点的非共识节点的数量最多为4。

目标节点根据每个原始非共识节点的质量评分以及降序规则,对所有的原始非共识节点排序,质量评分高的在前,质量评分低的在后。

排序后,将前m个原始非共识节点划作第一集合,将剩余的原始非共识节点划作第二集合,第一集合中的原始非共识节点均称为一级非共识节点,第二集合中的原始非共识节点均称为二级非共识节点。

当然,若所有的原始非共识节点的数量小于一级节点数量阈值m,那么此时第二集合为空集。

目标节点根据每个一级非共识节点的质量评分,以及共识节点数量n,将所有的一级非共识节点均匀划分为多个一级非共识节点簇,一级非共识节点簇的数量等于共识节点数量n(也就是说,一个一级非共识节点簇对应一个原始共识节点),多个一级非共识节点簇之间的节点数量差异量小于差异量阈值,这样可以保证多个一级非共识节点簇所包含的一级非共识节点的数量尽可能相同。目标节点为每个一级非共识节点簇和每个原始共识节点建立关联关系。

当目标节点是多个原始共识节点中的一个原始共识节点时,获取与该目标节点具有关联关系的一级非共识节点簇中的所有一级非共识节点的地址(称为第一地址),获取在原始区块链网络中与目标节点直连的原始共识节点的地址(称为第二节点),将第一地址和第二地址组合为目标节点的组网信息。

可见,对多个原始共识节点来说,网络调整前和网络调整后原始共识节点之间的连接关系可以不发生变化。在原始区块链网络中,所有的原始共识节点之间可以是全连接,那么调整完原始区块链网络后,所的原始共识节点也还是全连接,共识节点之间的全连接可以保证共识效率。

目标节点可以采用同样的方式确定其余原始共识节点的节点组网信息,至此,目标节点就确定了每个原始共识节点的组网信息。

举例来说,现有原始共识节点1、原始共识节点2、一级非共识节点簇1和一级非共识节点簇2,目标节点可以为原始共识节点1和一级非共识节点簇1建立关联关系,为原始共识节点2和一级非共识节点簇2建立关联关系。那么,一级非共识节点簇1中所包含的所有一级非共识节点的地址+原始共识节点2的地址=原始共识节点1的组网信息;一级非共识节点簇2中所包含的所有一级非共识节点的地址+原始共识节点1的地址=原始共识节点2的组网信息。

接下来,目标共识节点根据每个二级非共识节点的质量评分,以及一级非共识节点数量m,将所有的第二非共识节点均匀划分为多个二级非共识节点簇,二级非共识节点簇的数量等于一级非共识节点数量m(也就是说,一个二级非共识节点簇对应一个一级非共识节点),多个二级非共识节点簇之间的节点数量差异量小于差异量阈值,可以保证多个二级非共识节点簇所包含的二级非共识节点的数量尽可能相同。当然若二级非共识节点的数量小于一级非共识节点数量m,那么此时存在二级非共识节点簇为空。

目标共识节点再为每个二级非共识节点簇和每个一级非共识节点建立关联关系。

当目标节点是多个一级非共识节点中的一个一级非共识节点时,将与目标节点具有关联关系的二级非共识节点簇中的每个二级非共识节点的地址作为目标节点的下组网信息,将与目标节点具有关联关系原始共识节点的地址作为目标节点的上组网信息。将上述上组网信息和下组网信息组合为目标节点的节点组网信息。

目标节点可以采用同样的方式确定其余所有一级非共识节点的节点组网信息,至此,目标节点就确定了每个一级非共识节点的组网信息。

当目标节点是多个二级非共识节点中的一个二级非共识节点时,将与目标节点具有关联关系的一级非共识节点的地址作为目标节点的节点组网信息。

目标节点可以采用同样的方式确定其余所有二级非共识节点的节点组网信息,至此,目标节点就确定了每个二级非共识节点的组网信息。

上述可知,每个原始节点的节点组网信息是双向的,虽然完整但是存在一定的冗余,例如,若节点1和节点2之间具有关联关系,那么对节点1来说节点2的地址是节点1的节点组网信息;对节点2来说节点1的地址是节点2的节点组网信息。

为了节约系统资源,可以将每个原始节点的节点组网信息调整为单向。具体过程如下:当目标节点是多个原始共识节点中的一个原始共识节点时,目标节点将目标节点的节点组网信息设置为空(或者将在原始区块链网络中与目标节点直连的原始共识节点的地址作为目标节点的节点组网信息);当目标节点是多个一级非共识节点中的一个一级非共识节点时,将与目标节点具有关联关系原始共识节点的地址作为目标节点的节点组网信息;当目标节点是多个二级非共识节点中的一个二级非共识节点时,将与目标节点具有关联关系的一级非共识节点的地址作为目标节点的节点组网信息。

需要说明的是,前述只描述了3个层级时(即原始共识节点,一级非共识节点和二级共识节点),如何确定每个原始节点的节点组网信息。

当层级大于3时,可以根据共识节点数量确定一级非共识节点的数量,根据一级非共识节点的数量确定二级非共识节点的数量,根据二级非共识节点的数量确定三级非共识节点的数量,以此类推。

根据x-1级非共识节点的数量k,可以将所有x级非共识节点划分为k个x级非共识节点簇,一个x级非共识节点簇对应一个x-1级非共识节点,为每个x级非共识节点簇和每个x-1级非共识节点建立关联关系,进而将与x-1级非共识节点具有关联关系的x级非共识节点簇的地址,以及将与该x-1级非共识节点具有关联关系的x-2级非共识节点的地址作为该x-1级非共识节点的节点组网信息。不断循环,直至确定所有原始节点的节点组网信息。

举例来说,请参见图5,是本申请实施例提供的一种确定节点组网信息的示意图,在原始区块链网络中有3个共识节点和17个非共识节点,且3个共识节点之间是全连接。目标节点可以根据共识节点的数量,将所有的非共识节点划分为6个一级节点(一级节点对应前述中的一级非共识节点)和11个二级节点(二级节点对应前述中的二级非共识节点)。6个一级节点,两两为一组,即一级节点1和一级节点2为对应共识节点1的一级非共识节点簇,一级节点3和一级节点4为对应共识节点2的一级非共识节点簇,一级节点5和一级节点6为对应共识节点3的一级非共识节点簇。

目标节点可以将一级节点1的地址、一级节点2的地址、共识节点2的地址和共识节点3的地址作为共识节点1的节点组网信息;将一级节点3的地址、一级节点4的地址、共识节点1的地址和共识节点3的地址作为共识节点2的节点组网信息;将一级节点5的地址、一级节点6的地址、共识节点1的地址和共识节点2的地址作为共识节点3的节点组网信息。

由于一级节点的数量为6,目标共识节点可以将11个二级节点,两两为一组,即二级节点1和二级节点2为对应一级节点1的二级非共识节点簇,二级节点3和二级节点4为对应一级节点2的二级非共识节点簇,二级节点5和二级节点6为对应一级节点3的二级非共识节点簇,二级节点7和二级节点8为对应一级节点4的二级非共识节点簇,二级节点9和二级节点10为对应一级节点5的二级非共识节点簇,二级节点11为对应一级节点6的二级非共识节点簇。

目标节点可以将二级节点1的地址、二级节点2的地址以及共识节点1的地址作为一级节点1的节点组网信息;将二级节点3的地址、二级节点4的地址以及共识节点1的地址作为一级节点2的节点组网信息;将二级节点5的地址、二级节点6的地址以及共识节点2的地址作为一级节点3的节点组网信息;将二级节点7的地址、二级节点8的地址以及共识节点2的地址作为一级节点4的节点组网信息;将二级节点9的地址、二级节点10的地址以及共识节点3的地址作为一级节点5的节点组网信息;将二级节点11的地址以及共识节点3的地址作为一级节点6的节点组网信息。

目标节点可以将一级节点1的地址作为二级节点1的节点组网信息;将一级节点1的地址作为二级节点2的节点组网信息;将一级节点2的地址作为二级节点3的节点组网信息;将一级节点2的地址作为二级节点4的节点组网信息;将一级节点3的地址作为二级节点5的节点组网信息;将一级节点3的地址作为二级节点6的节点组网信息;将一级节点4的地址作为二级节点7的节点组网信息;将一级节点4的地址作为二级节点8的节点组网信息;将一级节点5的地址作为二级节点9的节点组网信息;将一级节点5的地址作为二级节点10的节点组网信息;将一级节点6的地址作为二级节点11的节点组网信息。

为了节约系统资源,降低节点组网信息的冗余性,同样以图5为例,目标节点可以将共识节点1、共识节点2、共识节点3的节点组网信息均设置为空;目标节点可以将共识节点1的地址作为一级节点1的节点组网信息;将共识节点1的地址作为一级节点2的节点组网信息;将共识节点2的地址作为一级节点3的节点组网信息;共识节点2的地址作为一级节点4的节点组网信息;将共识节点3的地址作为一级节点5的节点组网信息;将共识节点3的地址作为一级节点6的节点组网信息。

目标节点可以将一级节点1的地址作为二级节点1的节点组网信息;将一级节点1的地址作为二级节点2的节点组网信息;将一级节点2的地址作为二级节点3的节点组网信息;将一级节点2的地址作为二级节点4的节点组网信息;将一级节点3的地址作为二级节点5的节点组网信息;将一级节点3的地址作为二级节点6的节点组网信息;将一级节点4的地址作为二级节点7的节点组网信息;将一级节点4的地址作为二级节点8的节点组网信息;将一级节点5的地址作为二级节点9的节点组网信息;将一级节点5的地址作为二级节点10的节点组网信息;将一级节点6的地址作为二级节点11的节点组网信息。

步骤s203,将所述目标节点的节点组网信息添加至所述区块链。

具体的,若目标节点是原始区块链网络中具有最大工作量证明的原始共识节点(假设原始区块链网络的共识机制是工作量证明机制),那么目标节点可以将所有原始节点的节点组网信息添加至区块体,获取当前区块链中最后一个区块的哈希散列值,以及获取所有原始节点的节点组网信息的默克尔根,将上述哈希散列值、默克尔根以及当前时间戳添加至区块头,将添加了节点组网信息区块体以及上述区块体组合的第二区块(如上述图2a-图2d对应实施例中的区块20c),将这个新的第二区块添加至区块链,以及向其余的原始节点发送该第二区块,以使所有原始节点各自存储的区块链达到同步。

或者,若目标节点是原始区块链网络中的原始非共识节点,目标节点可将所有原始节点的节点组网信息发送至原始区块链网络中的原始共识节点,待原始共识节点共识后,原始共识节点会生成第二区块(共识节点生成第二区块的方式和前述目标节点生成第二区块的方式相同,此处就不再复述),目标节点从原始共识节点那同步第二区块即可。

后续,目标节点可以生成组网信息上传事务的完成通知。

步骤s204,响应于组网智能合约中的组网事务的执行请求,从所述区块链中获取所述目标节点的节点组网信息。

具体的,目标节点每间隔固定时长就获取当前时间戳,若当前时间戳满足组网智能合约中的组网事务的触发条件,目标节点可以生成组网事务的执行请求;或者当目标节点获取到组网信息上传事务的完成通知时,目标节点可以生成组网事务的执行请求。目标节点从区块链中获取第二区块,从第二区块的区块体中读取目标节点的节点组网信息。

步骤s205,根据所述直连节点的地址与所述直连节点建立连接,以构建包含所述目标节点和所述直连节点的目标区块链网络。

具体的,每个原始节点(包括目标节点)都可以根据自己的节点组网信息,与对应的直连连接建立联系,以构建包括多个原始非共识节点和多个原始共识节点的目标区块链网络。

可选的,为了提高原始共识节点的共识效率,避免原始共识节点执行一些与共识无关的操作,可以由原始非共识节点来建立连接,对应地原始共识节点不需要执行连接操作。

请参见图6,是本申请实施例提供的一种数据处理方法的流程示意图,本实施例应用场景为在原始区块链网络的基础上调整节点之间的连接关系(即对应图3实施例所描述的场景一),原始区块链网络包括多个原始节点,多个原始节点又可以细分为多个原始共识节点和多个原始非共识节点,目标节点是多个原始节点中的一个原始节点,多个原始节点可以组合为参与节点。

步骤s301,响应于组网智能合约中的组网信息上传事务的执行请求,获取所述区块链,从所述区块链中获取所述参与节点的节点参数。

具体的,目标节点响应于节点参数上传事务的执行请求,获取每个原始节点的节点参数,将每个原始节点的节点参数添加至区块链。目标节点响应于组网智能合约中的组网信息上传事务的执行请求,从区块链上获取参与节点的节点参数。

此处,目标节点将参与节点的节点参数上链以及从链上获取参与节点的节点参数的过程和前述图3对应实施例中步骤s201所描述的过程基本相同,只是步骤s201中参与节点的节点参数是指原始非共识节点的节点参数,本步骤的参与节点的节点参数是指原始非共识节点的节点参数+原始共识节点的节点参数。

步骤s302,根据所述参与节点的节点参数确定所述目标节点的节点组网信息;所述参与节点包括多个原始节点。

具体的,确定每个原始节点的节点组网信息即是根据节点参数从多个原始节点中选择出性能更好的n个原始节点,来作为目标区块链网络的共识节点,剩余的原始节点划分为n个非共识节点簇,一个共识节点和一个非共识节点簇之间具有关联关系。这样可以保证目标区块链网络中共识节点的性能较好,提高共识效率。换句话说,在调整原始区块链网络过程中,共识节点和非共识节点都可能发生变化,且它们之间的连接关系也会发生变化。例如,若节点a是原始区块链网络中的共识节点,那么在目标区块链网络中节点a可能是共识节点,也可能是非共识节点。

下面对如何确定每个原始节点的节点组网信息进行具体说明:

参与节点包括多个原始节点,每个原始节点均是原始区块链网络中的节点。目标节点根据每个原始节点的节点参数确定每个原始节点的质量评分,节点性能越好,对应的质量评分就越高。目标节点根据每个原始节点的质量评分以及降序规则,对所有的原始节点排序,质量评分高的在前,质量评分低的在后。

排序后,将前x个原始节点作为共识节点(称为第一共识节点),将剩余的原始节点划分为x个非共识节点簇(称为第一非共识节点簇),每个第一非共识节点簇中包括零个,一个或者多个第一非共识节点,各第一非共识节点簇中所包含的节点数量差异量小于差异量阈值,且第一非共识节点簇的数量和第一共识节点的数量相同。目标节点为每个第一共识节点注入共识模块,以及将每个第一非共识节点中的共识模块删除(当然,只有当第一非共识节点中存在共识模块时,才需要删除共识模块)。共识模块主要用于对区块链网络中的交易数据进行共识,生成新区块以及上链。换句话说,第一共识节点是后续构建出来的目标区块链网络中的共识节点,第一非共识节点簇中的第一非共识节点是后续构建出来的目标区块链网络中的非共识节点。

目标节点为每个第一非共识节点簇和每个第一共识节点建立关联关系。当目标节点是多个第一共识节点中的任一第一共识节点时,获取与目标节点具有关联关系的第一非共识节点簇中的第一非共识节点的地址,作为第三地址;获取多个第一共识节点中除目标节点以外的其余第一共识节点的地址,作为第四地址,目标节点将第三地址和第四地址组合为目标节点的节点组网信息。即,后续构建出来的目标区块链网络中的共识节点都是全连接的,以保证共识效率。

目标节点可以采用同样的方式确定其余第一共识节点的节点组网信息,至此,目标节点就确定了每个第一共识节点的节点组网信息。

当目标节点是多个第一非共识节点簇中的任一第一非共识节点时,将与目标节点具有关联关系的第一共识节点的地址作为目标节点的节点组网信息。

目标节点可以采用同样的方式确定其余第一非共识节点的节点组网信息。

至此,目标节点就确定了每个原始节点的节点组网信息。

上述可知,每个原始节点的节点组网信息是双向的,虽然完整但是存在一定的冗余。为了节约资源,可以将每个原始节点的节点组网信息调整为单向。具体过程如下:当目标节点是多个第一共识节点中的任一第一共识节点时,目标节点将在多个第一共识节点中除目标节点以外的其余第一共识节点的地址作为目标节点的节点组网信息;当目标节点是多个第一非共识节点簇中的任一第一非共识节点时,将与目标节点具有关联关系的第一共识节点的地址作为目标节点的节点组网信息。

需要说明的是,前述只描述了2个层级时(即第一共识节点,第一非共识节点簇),如何确定每个原始节点的节点组网信息。

当层级大于3时,根据x-1级节点的数量k,可以将所有x级节点划分为k个x级节点簇,一个x级节点簇对应一个x-1级节点,为每个x级节点簇和每个x-1级节点建立关联关系,进而将与x-1级节点具有关联关系的x级节点簇的地址,以及将与该x-1级节点具有关联关系的x-2级节点的地址作为该x-1级节点的节点组网信息。

不断循环,直至确定所有原始节点的节点组网信息。

比较图4对应实施例中确定节点组网信息的方式(称为第一种方式)和本实施例确定节点组网信息的方式(称为第二种方式)可以发现,第一种方式中原始区块链网络中的共识节点和非共识节点与目标区块链网络中的共识节点和非共识节点相同,且是根据原始区块链网络中的非共识节点的节点参数来确定的节点组网信息;第二种方式中原始区块链网络中的共识节点和非共识节点与目标区块链网络中的共识节点和非共识节点可能相同也可能不同,且是根据原始区块链网络中的非共识节点的节点参数+原始区块链网络中的共识节点的节点参数来共同确定的节点组网信息。

步骤s303,将所述目标节点的节点组网信息添加至所述区块链。

步骤s304,响应于组网智能合约中的组网事务的执行请求,从所述区块链中获取所述目标节点的节点组网信息。

其中,步骤s303-步骤s304的具体过程可以参见上述图4对应实施例中的步骤s203-步骤s204。

步骤s305,根据所述直连节点的地址与所述直连节点建立连接,以构建包含所述目标节点和所述直连节点的目标区块链网络。

具体的,每个原始节点(包括目标节点)都可以根据自己的节点组网信息,与对应的直连连接建立联系,以构建包括多个原始非共识节点和多个原始共识节点的目标区块链网络。

可选的,为了提高原始共识节点的共识效率,减少原始共识节点执行一些与共识无关的操作,原始共识节点执行建立连接的操作对象仅仅是原始共识节点,对于原始共识节点和原始非共识节点之间建立连接的操作可以由原始非共识节点来执行。

本实施例采用区块链来存储节点组网信息,依赖于区块链的安全、完整特性,目标节点可以从区块链上获取到准确、完整的节点组网信息,进而根据节点组网信息与对应的直连节点建立连接关系,避免由于网络原因而导致节点不能获取到节点组网信息而导致的组网失败,保证区块链网络的稳定性;进一步地,基于负载均衡原则,保证目标区块链网络中多个共识节点的连接负载相同或者相近,层级架构合理可以提高共识节点的共识效率;同时,直连共识节点的非共识节点是所有非共识节点中性能较好的非共识节点,因此可以进一步保证共识节点的共识效率,以及保证区块链的性能。

请参见图7,是本申请实施例提供的一种数据处理方法的流程示意图,本实施例应用场景为新创建一个区块链网络(即对应上述中的场景二),原始区块链网络包括多个原始节点,所有的原始节点可以组合为参与节点,目标节点是多个原始节点中的一个原始节点。

数据处理方法包括如下步骤:

步骤s401,从节点管理数据库中获取所述每个原始节点的节点参数,根据每个原始节点的节点参数确定每个原始节点的质量评分。

具体的,参与节点包括多个原始节点,目标节点从节点管理数据库(或者云端)获取每个原始节点的节点参数,节点管理数据库是用于存储组网过程中所涉及的数据。

目标节点根据每个原始节点的节点参数确定每个原始节点的质量评分,节点性能越好,对应的质量评分就越高。目标节点根据每个原始节点的质量评分以及降序规则,对所有的原始节点排序,质量评分高的在前,质量评分低的在后。

步骤s402,根据每个原始节点的质量评分将所述多个原始节点划分为多个第二共识节点和多个第二非共识节点簇;第二非共识节点簇的数量和第二共识节点的数量相同;所述目标节点是所述多个第二共识节点中的任一第二共识节点。

具体的,排序后,将前x个原始节点作为共识节点(称为第二共识节点),将剩余的原始节点划分为x个非共识节点簇(称为第二非共识节点簇),每个第二非共识节点簇中包括零个,一个或者多个第二非共识节点,各第二非共识节点簇中所包含的节点数量差异量小于差异量阈值,且第二非共识节点簇的数量和第二共识节点的数量相同。为每个第二共识节点注入共识模块,共识模块主要用于对区块链网络中的交易数据进行共识,生成新区块以及上链。换句话说,第二共识节点是后续构建出来的目标区块链网络中的共识节点,第二非共识节点簇中的第二非共识节点是后续构建出来的目标区块链网络中的非共识节点。

目标节点为每个第二非共识节点簇和每个第二共识节点建立关联关系。

步骤s403,为每个第二非共识节点簇和每个第二共识节点建立关联关系,获取与所述目标节点具有关联关系的第二非共识节点簇的第五地址,获取在所述多个第二共识节点中除所述目标节点以外的其余第二共识节点的第六地址。

具体的,当目标节点是多个第二共识节点中的任一第二共识节点时,获取与目标节点具有关联关系的第二非共识节点簇中的第二非共识节点的地址,作为第五地址;获取在多个第二共识节点中除目标节点以外的其余第二共识节点的地址,作为第六地址。

步骤s404,将所述第五地址和所述第六地址组合为所述目标节点的节点组网信息。

具体的,目标节点将第五地址和第六地址组合为目标节点的节点组网信息。即,后续构建出来的目标区块链网络中的共识节点之间就是全连接,可以保证共识效率。目标节点可以采用同样的方式确定其余第二共识节点的节点组网信息,至此,目标节点就确定了每个第二共识节点的节点组网信息。

当目标节点是多个第二非共识节点簇中的任一第二非共识节点时,将与目标节点具有关联关系的第二共识节点的地址作为目标节点的节点组网信息。

目标节点可以采用同样的方式确定其余第二非共识节点的节点组网信息。

此时的节点组网信息就属于双向组网信息。

至此,目标节点就确定了每个原始节点的节点组网信息。

需要说明的是,前述只描述了2个层级时(即第二共识节点,第二非共识节点簇),如何确定每个原始节点的节点组网信息。

当层级大于3时,根据x-1级节点的数量k,可以将所有x级节点划分为k个x级节点簇,一个x级节点簇对应一个x-1级节点,为每个x级节点簇和每个x-1级节点建立关联关系,进而将与x-1级节点具有关联关系的x级节点簇的地址,以及将与该x-1级节点具有关联关系的x-2级节点的地址作为该x-1级节点的节点组网信息。

不断循环,直至确定所有原始节点的节点组网信息。

后续,目标节点可以将每个原始节点的节点组网信息存储于上述节点管理数据库中。

步骤s405,根据所述直连节点的地址与所述直连节点建立连接,以构建包含所述目标节点和所述直连节点的目标区块链网络。

其中,步骤s405的具体过程可以参见上述图4对应实施例中的步骤s205。

基于负载均衡原则确定每个节点的节点组网信息,可以保证多个共识节点的连接负载相同或者相近,提高共识节点的共识效率;同时,直连共识节点的非共识节点是所有非共识节点中性能较好的非共识节点,因此可以进一步保证共识节点的共识效率,以及保证区块链的性能。

进一步的,请参见图8,是本申请实施例提供的一种数据处理装置的结构示意图。如图8所示,数据处理装置1可以应用于上述图3-图7对应实施例中目标节点,具体的,数据处理装置1可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该数据处理装置1为一个应用软件;该数据处理装置1可以用于执行本申请实施例提供的方法中的相应步骤。

数据处理装置1可以包括:获取模块11以及建立连接模块12。

获取模块11,用于获取目标节点的节点组网信息;所述目标节点的节点组网信息是根据参与组网的参与节点的节点参数确定的,所述目标节点的节点组网信息包括直连节点的地址;

建立连接模块12,用于根据所述直连节点的地址与所述直连节点建立连接,以构建包含所述目标节点和所述直连节点的目标区块链网络。

其中,获取模块11以及建立连接模块12的具体功能实现方式可以参见上述图3对应实施例中的步骤s101-步骤s102,这里不再进行赘述。

请参见图8,获取模块11可以包括:第一响应单元111、第一获取单元112、第四获取单元113以及关系建立单元114。

所述目标节点的节点组网信息存储于区块链;所述目标节点是所述区块链对应的原始区块链网络中的节点;

第一响应单元111,用于响应于组网智能合约中的组网事务的执行请求,获取所述区块链;

第一获取单元112,用于从所述区块链中获取所述目标节点的节点组网信息。

所述参与节点包括多个原始节点,所述目标节点属于所述多个原始节点;

第四获取单元113,用于从节点管理数据库中获取所述每个原始节点的节点参数,根据每个原始节点的节点参数确定每个原始节点的质量评分,根据每个原始节点的质量评分将所述多个原始节点划分为多个第二共识节点和多个第二非共识节点簇;第二非共识节点簇的数量和第二共识节点的数量相同;所述目标节点是所述多个第二共识节点中的任一第二共识节点;

关系建立单元114,用于为每个第二非共识节点簇和每个第二共识节点建立关联关系,获取与所述目标节点具有关联关系的第二非共识节点簇的第五地址,获取在所述多个第二共识节点中除所述目标节点以外的其余第二共识节点的第六地址,将所述第五地址和所述第六地址组合为所述目标节点的节点组网信息。

其中,第一响应单元111和第一获取单元112的具体功能实现方式可以参见上述图4对应实施例中的步骤s204;第四获取单元113以及关系建立单元114的具体功能实现方式可以参见上述图7对应实施例中的步骤s401-步骤s404。

当由第一响应单元111和第一获取单元112获取目标节点的节点组网信息时,第四获取单元113以及关系建立单元114不再执行相应步骤;当由第四获取单元113以及关系建立单元114获取目标节点的节点组网信息时,第一响应单元111和第一获取单元112不再执行相应步骤。

请再参见图8,所述参与节点的节点参数存储于区块链;所述目标节点是所述区块链对应的原始区块链网络中的节点;

数据处理装置1可以包括:获取模块11以及建立连接模块12,还可以包括:第一响应模块13、确定模块14、第二响应模块15以及生成模块16。

第一响应模块13,用于响应于组网智能合约中的组网信息上传事务的执行请求,获取所述区块链,从所述区块链中获取所述参与节点的节点参数;

确定模块14,用于根据所述参与节点的节点参数确定所述目标节点的节点组网信息;

所述第一响应模块13,还用于将所述目标节点的节点组网信息添加至所述区块链。

第二响应模块15,用于响应于所述组网智能合约中的节点参数上传事务的执行请求,获取所述参与节点的节点参数,将所述参与节点的节点参数添加至所述区块链。

所述组网智能合约于所述区块链;

生成模块16,用于从所述区块链中获取所述组网智能合约,获取目标时间戳;

所述生成模块16,还用于当所述目标时间戳满足所述节点参数上传事务的触发条件时,生成所述节点参数上传事务的执行请求,或当接收到节点加入请求时,生成所述节点参数上传事务的执行请求。

其中,第一响应模块13、确定模块14、第二响应模块15以及生成模块16的具体功能实现方式可以参见上述图4对应实施例中的步骤s201-步骤s205。

请参见图8,所述参与节点包括多个原始非共识节点,所述多个原始非共识节点均是所述原始区块链网络中的非共识节点;所述原始区块链网络还包括多个原始共识节点;

确定模块14可以包括:第二获取单元141和确定单元142。

第二获取单元141,用于根据每个原始非共识节点的节点参数确定每个原始非共识节点的质量评分,以及确定所述多个原始共识节点的共识节点数量;

确定单元142,用于根据所述共识节点数量和每个原始非共识节点的质量评分,确定所述目标节点的节点组网信息。

其中,第二获取单元141和确定单元142的具体功能实现方式可以参见上述图4对应实施例中的步骤s203。

请参见图8,确定单元142,可以包括:选择子单元1421、设置子单元1422、确定子单元1423、划分子单元1424以及组合子单元1425。

所述目标节点是所述多个原始共识节点中的任一原始共识节点;

选择子单元1421,用于根据每个原始非共识节点的质量评分以及所述共识节点数量,从所述多个原始非共识节点中选择多个一级非共识节点簇;一级非共识节点簇的数量等于所述共识节点数量,各一级非共识节点簇之间的节点数量差异量小于所述差异量阈值;

设置子单元1422,用于为每个一级非共识节点簇和每个原始共识节点建立关联关系,获取与所述目标节点具有关联关系的一级非共识节点簇的第一地址,获取在所述原始区块链网络中与所述目标节点直连的原始共识节点的第二地址,将所述第一地址和所述第二地址组合为所述目标节点的节点组网信息。

确定子单元1423,用于将所述目标节点作为所述目标区块链网络的共识节点,若所述直连节点是所述原始区块链网络中的共识节点,则将所述直连节点作为所述目标区块链网络中的共识节点,若所述直连节点是所述原始区块链网络中的非共识节点,则将所述直连节点作为所述目标区块链网络中的非共识节点。

所述目标节点是所述多个原始非共识节点中的任一原始非共识节点;

划分子单元1424,用于根据所述共识节点数量确定一级节点数量阈值,根据每个原始非共识节点的质量评分以及所述一级节点数量阈值,将所述多个原始非共识节点划分为多个一级非共识节点簇和多个二级非共识节点簇;一级非共识节点簇的数量等于所述共识节点数量;所有一级非共识节点簇中所包含的一级非共识节点的一级非共识节点数量等于或小于所述一级节点数量阈值;二级非共识节点簇的数量等于所述一级非共识节点数量;所述目标节点属于所述多个一级非共识节点簇;

组合子单元1425,用于为每个一级非共识节点簇和每个原始共识节点建立关联关系,为每个二级非共识节点簇和每个一级非共识节点建立关联关系,将与所述目标节点具有关联关系的二级非共识节点簇的地址作为所述目标节点的下组网信息,将与所述目标节点具有关联关系的原始共识节点的地址作为所述目标节点的上组网信息,将所述上组网信息和所述下组网信息组合为所述目标节点的节点组网信息。

其中,选择子单元1421、设置子单元1422、确定子单元1423划分子单元1424以及组合子单元1425的具体功能实现方式可以参见上述图4对应实施例中的步骤s202。

请参见图8,所述参与节点包括多个原始节点,所述多个原始节点均是所述原始区块链网络中的节点,所述目标节点属于所述多个原始节点;

所述确定模块14,可以包括:划分单元143以及第三获取单元144。

划分单元143,用于根据每个原始节点的节点参数确定每个原始节点的质量评分,根据每个原始节点的质量评分将所述多个原始节点划分为多个第一共识节点和多个第一非共识节点簇;第一非共识节点簇的数量和第一共识节点的数量相同;所述目标节点是所述多个第一共识节点中的任一第一共识节点;

第三获取单元144,用于为每个第一非共识节点簇和每个第一共识节点建立关联关系,获取与所述目标节点具有关联关系的第一非共识节点簇的第三地址,获取在所述多个第一共识节点中除所述目标节点以外的其余第一共识节点的第四地址,将所述第三地址和所述第四地址组合为所述目标节点的节点组网信息。

其中,划分单元143以及第三获取单元144的具体功能实现方式可以参见上述图7对应实施例中的步骤s202。

进一步地,请参见图9,是本申请实施例提供的一种计算机设备的结构示意图。上述图3-图7对应实施例中的目标节点可以为计算机设备1000。如图9所示,计算机设备1000可以包括:用户接口1002、处理器1004、编码器1006以及存储器1008。信号接收器1016用于经由蜂窝接口1010、wifi接口1012、...、或nfc接口1014接收或者发送数据。编码器1006将接收到的数据编码为计算机处理的数据格式。存储器1008中存储有计算机程序,处理器1004被设置为通过计算机程序执行上述任一项方法实施例中的步骤。存储器1008可包括易失性存储器(例如,动态随机存取存储器dram),还可以包括非易失性存储器(例如,一次性可编程只读存储器otprom)。在一些实例中,存储器1008可进一步包括相对于处理器1004远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备1000。用户接口1002可以包括:键盘1018和显示器1020。

在图9所示的计算机设备1000中,处理器1004可以用于调用存储器1008中存储计算机程序,以实现:

获取目标节点的节点组网信息;所述目标节点的节点组网信息是根据参与组网的参与节点的节点参数确定的,所述目标节点的节点组网信息包括直连节点的地址;

根据所述直连节点的地址与所述直连节点建立连接,以构建包含所述目标节点和所述直连节点的目标区块链网络。

应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3-图7所对应实施例中对数据处理方法的描述,也可执行前文图7所对应实施例中对数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。

此外,这里需要指出的是:本申请实施例还提供了一种计算机存储介质,且计算机存储介质中存储有前文提及的数据处理装置1所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3-图7所对应实施例中对数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可以被部署在一个计算机设备上执行,或者在位于一个地点的多个计算机设备上执行,又或者,分布在多个地点且通过通信网络互联的多个计算机设备上执行,分布在多个地点且通过通信网络互联的多个计算机设备可以组合为区块链网络。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

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