区块链分片的调度方法、装置、设备及存储介质与流程

专利2024-08-08  19


本申请涉及区块链技术领域,尤其涉及一种区块链分片的调度方法、装置、设备及存储介质。



背景技术:

随着科技水平的不断提高,区块链以其不可篡改、可追溯等特性被广泛的应用于各种场景中。随着区块链中数据以及节点的不断增多,为了提升整体性能,区块链分片技术应运而生。在当前的区块链分片技术中,需要依赖中心化设备下发分片配置,各节点根据该分片配置进行静态配置已完成分片。该分片方式使得分片结果受人为干涉,违背了区块链去中心化的初衷。并且一次分片处理之后,通常得到固定不变的分片;然而,随着时间的推移,一些节点的状态可能已不再适于当前所在的分片,因此无法形成高效的协同工作环境。



技术实现要素:

本申请实施例的目的是提供一种区块链分片的调度方法、装置、设备及存储介质,以解决现有的依赖中心化设备进行分片以及随着时间的推移分片无法形成高效的协同工作环境的问题。

为解决上述技术问题,本申请一个或多个实施例是这样实现的:

第一方面,本申请实施例提供了一种区块链分片的调度方法,应用于第一区块链节点,包括:

按照预设频率获取所在第一分片中的每个成员节点的运行信息;其中,所述第一分片是区块链网络中的区块链节点预先通过分片协商处理所自行组建的多个分片中的任意一个分片;

根据所述运行信息确定所述成员节点中是否存在与所述第一分片的运行状态不匹配的目标节点;

若是,则在所述第一分片中发起将所述目标节点从所述第一分片中移除的第一调度共识,并在所述第一调度共识通过时,执行所述目标节点的移除处理,以使所述目标节点按照预设方式确定运行状态与所述运行信息相匹配的目标分片,并加入所述目标分片。

第二方面,本申请实施例提供了一种区块链分片的调度装置,应用于第一区块链节点,包括:

获取模块,按照预设频率获取所在第一分片中的每个成员节点的运行信息;其中,所述第一分片是区块链网络中的区块链节点预先通过分片协商处理所自行组建的多个分片中的任意一个分片;

确定模块,根据所述运行信息确定所述成员节点中是否存在与所述第一分片的运行状态不匹配的目标节点;

共识模块,若所述确定模块的确定结果为是,则在所述第一分片中发起将所述目标节点从所述第一分片中移除的第一调度共识;

移除模块,在所述第一调度共识通过时,执行所述目标节点的移除处理,以使所述目标节点按照预设方式确定运行状态与所述运行信息相匹配的目标分片,并加入所述目标分片。

第三方面,本申请实施例提供了一种区块链分片的调度设备,包括:处理器,以及被安排成存储计算机可执行指令的存储器;所述计算机可执行指令在被执行时使所述处理器实现上述第一方面所提供的方法的步骤。

第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所提供的方法的步骤。

本申请实施例中,区块链网络中的各区块链节点通过分片协商处理的方式自行组建分片,而不是基于中心化设备下发的配置文件进行分片,不仅减少了节点的配置操作,而且无需人为或其他中心化设备进行干预,满足了区块链的去中心化需求,极大的提升了安全性。并且,基于预设频率和调度共识机制进行不同分片之间的节点的自动调度,一方面能够及时的解决分片中节点的运行信息与相应分片的运行状态不匹配的问题,有利于形成高效的协同工作环境,提升资源利用率,达到最大的系统吞吐量;另一方面,实现了自主的节点的动态调度,提升了调度的安全性和去中心化程度。

附图说明

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

图1为本申请实施例提供的一种区块链分片的调度方法的场景示意图;

图2为本申请实施例提供的一种区块链分片的调度方法的第一种流程示意图;

图3为本申请实施例提供的一种区块链分片的调度方法的第二种流程示意图;

图4为本申请实施例提供的一种区块链分片的调度方法的第三种流程示意图;

图5为本申请实施例提供的一种区块链分片的调度方法的第四种流程示意图;

图6为本申请实施例提供的一种区块链分片的调度方法的第五种流程示意图;

图7为本申请实施例提供的一种区块链分片的调度方法的第六种流程示意图;

图8为本申请实施例提供的加入目标分片的流程示意图;

图9为本申请实施例提供的一种区块链分片的调度装置的模块组成示意图;

图10为本申请实施例提供的一种区块链分片的调度设备的结构示意图。

具体实施方式

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

图1为本申请实施例提供的一种区块链分片的调度方法的应用场景示意图,如图1所示,该场景包括:接入区块链(图1中未示出)的多个区块链节点,如共识节点、广播节点等,该多个区块链节点预先通过分片协商处理的方式自行组建成多个分片(图1中仅示出3个),以实现全网的分片划分。为了便于区分,将各分片记为分片1、分片2、分片3等;其中,每个分片中包括多个区块链节点,对于每个分片而言,其包括的各区块链节点还可以称为相应分片的成员节点;该成员节点可以是终端设备,如手机、平板电脑、台式计算机、便携笔记本式计算机等;该成员节点还可以是服务端,如独立的服务器、由多个服务器组成的服务器集群等。

具体的,各分片中的各成员节点均按照指定方式执行节点的调度处理。以位于第一分片中的第一区块链节点为例进行说明,其中,第一分片是区块链网络中已组建的分片中的任意一个分片(如分片1),第一区块链节点为第一分片中的任意一个节点。第一区块链节点按照预设频率获取所在第一分片中的每个成员节点的运行信息;根据获取的各运行信息确定该成员节点中是否存在与第一分片的运行状态不匹配的目标节点;若是,则在第一分片中发起将目标节点从第一分片中移除的第一调度共识,并在第一调度共识通过时,执行目标节点的移除处理,以使目标节点按照预设方式确定运行状态与目标节点的运行信息相匹配的目标分片,并加入目标分片。如目标节点确定分片3是目标分片,则进行目标分片的加入处理以加入目标分片。由此,区块链网络中的各区块链节点通过分片协商处理的方式自行组建分片,而不是基于中心化设备下发的配置文件进行分片,不仅减少了节点的配置操作,而且无需人为或其他中心化设备进行干预,满足了区块链的去中心化需求,极大的提升了安全性。并且,基于预设频率和调度共识机制进行不同分片之间的节点的自动调度,一方面能够及时的解决分片中节点的运行信息与相应分片的运行状态不匹配的问题,有利于形成高效的协同工作环境,提升资源利用率,达到最大的系统吞吐量;另一方面,实现了自主的节点的动态调度,提升了调度的安全性和去中心化程度。

基于上述应用场景架构,本申请实施例提供了一种区块链分片的调度方法,图2为本申请实施例提供的一种区块链分片的调度方法的流程示意图,图2中的方法能够由第一区块链节点执行,如图2所示,该方法包括以下步骤:

步骤s102,按照预设频率获取所在第一分片中的每个成员节点的运行信息;其中,第一分片是区块链网络中的区块链节点预先通过分片协商处理所自行组建的多个分片中的任意一个分片;

其中,第一分片可以是区块链网络中的各区块链节点(以下简称节点,并通过序号来区分不同的节点)首次进行分片协商处理时所组建的多个分片中的任意一个分片,如首次进行分片协商处理后,第一分片包括节点1、节点3、节点4和节点6。第一分片还可以是在首次分片协商处理后经过节点调度之后的分片,如在某次节点的调度处理过程中,将节点3从第一分片中移除,则第一分片是包括节点1、节点4和节点6的分片。第一分片还可以从其他分片中移除的节点和/或新接入区块链网络的节点之间进行分片协商处理所组建的分片;如首次进行分片协商处理时所组建的多个分片包括分片1、分片2和分片3,从分片1中移除的节点2、从分片3中移除的节点5和新接入区块链网络的节点9等进行分片协商处理所组建的分片。

步骤s104,根据运行信息确定相应的成员节点中是否存在与第一分片的运行状态不匹配的目标节点;

步骤s106,若是,则在第一分片中发起将目标节点从第一分片中移除的第一调度共识,并在第一调度共识通过时,执行目标节点的移除处理,以使目标节点按照预设方式确定运行状态与其运行信息相匹配的目标分片,并加入目标分片。

其中,目标分片是区块链网络中当前已有分片中除第一分片之外的任意分片。

本申请一个或多个实施例中,第一区块链节点按照预设频率获取所在第一分片中的每个成员节点的运行信息,并在根据获取的运行信息确定存在与第一分片的运行状态不匹配的目标节点时,基于第一调度共识将目标节点从第一分片中移除,以使目标节点加入运行状态相匹配的目标分片;其中,第一分片是区块链网络中的区块链节点预先通过分片协商处理所自行组建的多个分片中的任意一个分片。由此,区块链网络中的各区块链节点通过分片协商处理的方式自行组建分片,而不是基于中心化设备下发的配置文件进行分片,不仅减少了节点的配置操作,而且无需人为或其他中心化设备进行干预,满足了区块链的去中心化需求,极大的提升了安全性。并且,基于预设频率和调度共识机制进行不同分片之间的节点的自动调度,一方面能够及时的解决分片中节点的运行信息与相应分片的运行状态不匹配的问题,有利于形成高效的协同工作环境,提升资源利用率,达到最大的系统吞吐量;另一方面,实现了自主的节点的动态调度,提升了调度的安全性和去中心化程度。

为了能够及时的发现与所在分片的运行状态不匹配的目标节点,本申请一个或多个实施例中,各节点按照预设频率基于探测的方式获取所在分片中的每个成员节点的运行信息。具体的,如图3所示,步骤s102可以包括以下步骤s102-2至步骤s102-4:

步骤s102-2,按照预设频率向所在第一分片中的每个成员节点发送第一探测消息,并接收每个成员节点发送的第一探测响应数据;

具体的,第一区块链节点按照预设频率,根据第一区块链节点的节点标识信息向所在第一分片中的每个成员节点发送第一探测消息;当第一分片的成员节点接收到第一探测消息后,若确定自身保存的节点信息表中包括第一探测消息中的节点标识信息,则根据成员节点自身的节点标识信息和算力信息等向第一区块链节点发送第一探测响应数据。其中,节点信息表中包括第一分片中各成员节点的节点信息,如节点标识信息、节点的配置信息(如ip地址)等。预设频率和算力信息均可在实际应用中根据需要自行设定,例如,预设频率为每24小时1次等,算力信息为cpu的参数信息(如频率信息)、内存信息等。

步骤s102-4,根据接收到的第一探测响应数据确定相应成员节点的运行信息。

具体的,根据第一探测消息的发送时间和第一探测响应数据的接收时间,确定相应成员节点的网络延迟时间;以及,从第一探测响应数据中获取算力信息,将确定的网络延迟时间和获取的算力信息确定为相应成员节点的运行信息。更加具体的,第一区块链节点在向所在第一分片中的每个成员节点发送第一探测消息之后,记录第一探测消息的发送时间,并在接收到第一探测响应数据时,记录相应的接收时间;确定记录的发送时间与接收时间之间的时差,将该时差确定为相应成员节点的网络延迟时间;以及将确定的网络延迟时间和第一探测响应数据中的算力信息确定为相应成员节点的运行信息。其中,运行信息中还可以包括从相应的第一探测响应数据中获取的节点标识信息。

由于网络延迟时间和算力信息差异不大的节点之间,更有利于形成高效的协同工作环境,达到最大的系统吞吐量。因此,将网络延迟时间和算力信息确定为成员节点的运行信息,并基于该运行信息确定不匹配的目标节点,以将目标节点从第一分片中移除,有利于第一分片中的各成员节点之间形成高效的协同工作环境,达到最大的系统吞吐量。

在确定了各成员节点的运行信息之后,即可基于运行信息确定与第一分片的运行状态不匹配的目标节点。具体的,如图4所示,步骤s104可以包括以下步骤s104-2:

步骤s104-2,若确定运行信息中的算力信息符合第一预设条件、且运行信息中的网络延迟时间符合第二预设条件,则确定成员节点中存在与第一分片的运行状态不匹配的目标节点。

其中,确定运行信息中的算力信息符合第一预设条件可以包括:若确定运行信息中的算力信息与第一区块链节点的算力信息不匹配,则确定运行信息中的算力信息符合第一预设条件;或者,根据获取的各运行信息中的算力信息和第一区块链节点的算力信息,确定第一分片当前的平均算力信息;若确定运行信息中的计算能力与平均算力信息不匹配,则确定该运行信息中的算力信息符合第一预设条件。

具体的,第一区块链节点将获取的每个运行信息中的算力信息与第一区块链节点的算力信息进行匹配处理,并确定运行信息中的算力信息与第一区块链节点的算力信息的差异是否在预设的差异范围内,若是,则确定运行信息中的算力信息与第一区块链节点的算力信息匹配,若否,则确定运行信息中的算力信息与第一区块链节点的算力信息不匹配。作为示例,若确定运行信息中的内存大小与第一区块链节点的内存大小之间的差异在预设的内存范围内、且确定运行信息中的cpu的主频率与第一区块链节点的主频率之间的差异在预设的频率范围内,则确定运行信息中的算力信息与第一区块链节点的算力信息匹配。或者,为了能够更好的体现出目标节点与第一分片中的各成员节点之间的算力的差异,第一区块链节点确定第一分片包括的成员节点的总数量,根据确定的总数量、接收到的各运行信息中的算力信息和第一区块链节点的算力信息,确定第一分片当前的平均算力信息,并将获取到的每个运行信息中的算力信息与确定平均算力信息进行匹配,确定各运行信息中的算力信息与平均算力信息的差异是否在预设的差异范围内,若是,则确定运行信息中的算力信息与平均算力信息匹配,若否,则确定运行信息中的算力信息与平均算力信息不匹配。其中,差异范围可以在实际应用中根据需要自行设定。也就是说,第一分片的运行状态包括算力的状态,该算力的状态可以通过第一区块链节点的算力体现,还可以通过各成员节点之间的平均算力体现。

进一步的,确定运行信息中的网络延迟时间符合第二预设条件可以包括:若确定运行信息中的网络延迟时间大于预设的时间阈值,则确定运行信息中的网络延迟时间符合第二预设条件;或者,根据获取的各运行信息中的网络延迟时间确定第一分片当前的平均网络延迟时间,若确定运行信息中的网络延迟时间大于平均网络延迟时间,则确定运行信息中的网络延迟时间符合第二预设条件。其中,时间阈值可以在实际应用中根据需要自行设定。也就是说,第一分片的运行状态包括网络延迟的状态,该网络延迟的状态,可以通过预设的时间阈值体现,还可以通过第一分片中成员节点的平均网络延迟时间体现。

进一步的,当确定获取的某个运行信息中的算力信息符合第一预设条件、且该运行信息中的网络延迟时间符合第二预设条件时,则将该运行信息对应的成员节点确定为与第一分片的运行状态不匹配的目标节点。

与步骤s104-2对应的,如图4所示,步骤s106可以包括以下步骤s106-2:

步骤s106-2,在第一分片中发起将目标节点从第一分片中移除的第一调度共识,并在第一调度共识通过时,执行目标节点的移除处理,以使目标节点按照预设方式确定运行状态与其运行信息相匹配的目标分片,并加入目标分片。

可选地,第一区块链节点可以在第一分片中发起将目标节点从第一分片中移除的第一调度共识;或者,第一区块链节点向预先确定的具有发起共识权限的成员节点发送共识请求,以使该具有发起共识权限的成员节点在第一分片中发起将目标节点从第一分片中移除的第一调度共识。其中,具有发起共识权限的成员节点可以是第一分片中的各成员节点进行投票所确定的成员节点,还可以是在第一分片中按照预设时间间隔的轮流机制所确定的成员节点。其中,第一调度共识可以是现有的工作量证明机制(pow)、权益证明机制(pos)、实用拜占庭(pbft)等,可以在实际应用中根据需要自行设定。

进一步的,执行目标节点的移除处理可以包括:根据目标节点的运行信息确定目标节点的节点标识信息,从保存的第一分片的节点信息表中查询确定的节点标识信息,将查询到的节点标识信息从节点信息表中删除;或者,将预设的非成员标识与查询到的节点标识信息关联保存,以表征对应的目标节点为第一分片的非成员节点。其中,节点信息表中包括第一分片中各成员节点的节点信息,如节点标识信息、节点的配置信息等。

可选地,当运行信息中包括节点标识信息时,上述根据目标节点的运行信息确定目标节点的节点标识信息可以包括:从目标节点的运行信息中获取目标节点的节点标识信息。当运行信息中不包括节点标识信息时,第一区块链节点在确定运行信息后,可以将运行信息与相应的第一探测响应数据中的节点标识信息关联保存;相应的,上述根据目标节点的运行信息确定目标节点的节点标识信息可以包括:根据目标节点的运行信息获取关联保存的节点标识信息,将获取的节点标识信息确定为目标节点的节点标识信息。

由此,在第一调度共识机制通过后,将目标节点从第一分片中移除,以使目标节点加入运行状态相匹配的目标分片,一方面能够及时的解决分片中节点的运行信息与相应分片的运行状态不匹配的问题,有利于形成高效的协同工作环境,提升资源利用率,达到最大的系统吞吐量;另一方面,实现了自主的节点的动态调度,而无需人为或中心化设备参与,因此提升了调度的安全性和去中心化程度。

进一步的,在进行上述节点的调度处理之前,区块链网络中的各区块链节点首先进行全网分片,以组建出多个分片。可以理解的是,全网分片是指基于本申请实施例中的自动探测和分片协商处理自行组建分片。相应的,当第一区块链节点是参与全网分片的节点时,如图5所示,步骤s102之前还包括以下步骤s100-2至步骤s100-8:

步骤s100-2,与区块链网络中的seed节点建立连接,并向seed节点发送第一区块链节点的第一配置信息;

本申请实施例中的区块链网络中部署有一个或多个seed节点,该seed节点维护区块链网络中的各区块链节点的配置信息,以帮助区块链网络中的各区块链节点建立初始连接;当seed节点接收到第一配置信息后,保存第一配置信息,并将当前保存的各区块链节点的第二配置信息发送给第一区块链节点。其中,配置信息如交换路由信息、ip地址信息等。需要指出的是,该seed节点可以不参与分片。

步骤s100-4,接收seed节点发送的区块链网络中当前包括的各区块链节点的第二配置信息;

步骤s100-6,根据第二配置信息确定待组建第一分片的候选节点;

具体的,根据第二配置信息向相应的区块链节点发送第三探测消息,接收各区块链节点发送的第三探测响应数据;根据第三探测响应数据确定相应区块链节点的运行信息;根据运行信息,确定区块链网络中符合预设条件的区块链节点,将符合预设条件的区块链节点确定为待组建第一分片的候选节点。

其中,第三探测响应数据包括相应区块链节点的算力信息、节点标识信息等;根据第三探测响应数据确定相应区块链节点的运行信息的过程,与前述根据第一探测响应数据确定相应成员节点的运行信息的过程相同,可参见前述相关描述,这里不再赘述。

进一步的,根据运行信息,确定区块链网络中符合预设条件的区块链节点,可以包括:若确定运行信息中的算力信息与第一区块链节点的算力信息相同或差异在预设的差异范围内,且运行信息中的网络延迟时间未超过预设的时间阈值,则将该运行信息所对应的区块链节点确定为符合预设条件的区块链节点。

进一步的,考虑到区块链网络中的区块链节点数量庞大,符合预设条件的区块链节点可能比较多,为了便于分片的维护和调度,本申请一个或多个实施例中还可以预先设定每个分片所包括的成员节点的数量范围,如15-20个等。相应的,第一区块链节点可以按照运行信息所对应的第三探测响应数据的接收顺序,按照由先到后的顺序,依次将运行信息中的算力信息与第一区块链节点的算力信息进行匹配,以及将运行信息中的网络延迟时间与预设的时间阈值进行比对;并在确定算力信息匹配通过且网络延迟时间比对通过时,记录运行信息所对应的区块链节点的节点标识信息,并将记录的符合预设条件的区块链节点的数量加一;确定当前的数量是否到达预设的数量范围的上限,若到达预设的数量范围的上限,则将记录的节点标识信息所对应的区块链节点确定为符合预设条件的区块链节点;若未到达预设的数量范围的上限,则按照第三探测响应数据的接收顺序,进行下一个运行信息的匹配处理,直至得到数量在预设的数量范围内的区块链节点。

步骤s100-8,与确定的各候选节点进行分片协商处理,以组建第一分片。

具体的,第一区块链节点向各候选节点发起分片共识请求,若基于该分片共识请求的分片共识通过,则将候选节点确定为第一分片的成员节点,以及将各成员节点的节点信息保存至节点信息表中:其中,分片共识可采用现有的工作量证明机制(pow)、权益证明机制(pos)、实用拜占庭(pbft)等共识机制。需要指出的是,由于在全网分片中,各区块链节点均在确定符合预设条件的候选节点并发起分片共识,因此对于某个区块链节点来说,可能接收到多个分片共识请求,此时该区块链节点可以仅参与最先接收到的分片共识请求所对应的共识处理。若参与的该共识处理失败,则可以按照前述方式重新确定候选节点,或者若接收到新的分片共识请求,可以继续参与新的共识处理。

由此,通过区块链节点之间的自动探测和分片协商处理的方式,自行进行全网划分,组建分片,而无需基于中心化设备下发的分片配置进行配置操作,不仅减少了节点的配置操作,而且无需人为或其他中心化设备进行干预,满足了区块链的去中心化需求,极大的提升了安全性。

由于区块链网络中包括多个分片,每个分片中的成员节点均按照前述步骤s102至步骤s106描述的方式确定目标节点,并执行目标节点的移除处理;而被移除的目标节点则会向区块链网络中的各区块链节点发送第二探测消息,以确定待加入的目标分片,相应的,如图6所示,方法还可以包括以下步骤s108和步骤s110:

步骤s108,接收第二区块链节点发送的第二探测消息;其中,第二区块链节点为从第二分片中移除的区块链节点,第二分片是与第一分片不同的分片;

其中,第二探测消息与前述第一探测消息可以相同也可以不同,其可在实际应用中根据需要自行设定。

步骤s110,根据第一区块链节点的算力信息向第二区块链节点发送第二探测响应数据;以使第二区块链节点根据第二探测响应数据确定第二区块链节点的运行信息与第一分片的运行状态是否匹配。

具体的,根据第一区块链节点的算力信息、所在第一分片的分片标识信息等向第二区块链节点发送第二探测响应数据。第二区块链节点根据第二探测响应数据确定第二区块链节点的运行信息与第一分片的运行状态是否匹配的过程可参见后文中的相关描述。

进一步的,当第二区块链节点确定第一分片为目标分片时,向第一分片中的至少一个成员节点发送分片加入请求,相应的,如图7所示,步骤s110之后还可以包括以下步骤s112和步骤s114:

步骤s112,接收第二区块链节点发送的分片加入请求;其中,分片加入请求为第二区块链节点在确定第二区块链节点的运行信息与第一分片的运行状态匹配时所发送;

其中,分片加入请求可以包括第二区块链节点的节点标识信息、算力信息、第二区块链节点基于第二探测响应数据所确定的与第一分片中的成员节点之间的网络延迟时间等。

步骤s114,在第一分片中对分片加入请求进行第二调度共识,若第二调度共识通过,则执行第二区块链节点加入第一分片的加入处理。

可选地,第一区块链节点在接收到分片加入请求时,在第一分片中发起对分片加入请求的第二调度共识;或者,第一区块链节点将接收到的分片加入请求发送给第一分片中具有发起共识权限的成员节点,以使该成员节点在第一分片中发起对分片加入请求进行第二调度共识。

进一步的,执行第二区块链节点加入第一分片的加入处理,可以包括:从分片加入请求中获取第二区块链节点的节点标识信息,将获取的节点标识信息添加至保存的第一分片的节点信息表中。

需要指出的是,步骤s108至步骤s114可以在步骤s106之后执行,还可以在步骤s106之前执行。

由此,在接收到第二区块链节点发送的第二探测消息时,向第二区块链节点发送第二探测响应数据,并基于第二区块链节点发送的分片加入请求在第二调度共识通过后,将第二区块链节点加入第一分片,实现了自主的、自动的分片之间的节点调度,而无需人为和中心化的设备参与,提升了安全性和去中心化程度。

进一步的,当第一区块链节点被确定为目标节点时,如图8所示,方法还可以包括以下步骤s202至步骤s208:

步骤s202,获取区块链网络当前包括的各区块链节点的配置信息;

具体的,向seed节点发送配置信息的获取请求;seed节点接收到获取请求后,将当前保存的区块链网络包括的各区块链节点的配置信息发送给第一区块链节点。其中,配置信息包括交换路由信息、ip地址信息等。

步骤s204,根据配置信息,向相应的区块链节点发送第二探测消息;

步骤s206,接收区块链节点发送的第二探测响应数据,根据第二探测响应数据确定运行状态与第一区块链节点的运行信息相匹配的目标分片;

可选地,第二区块链节点根据接收到的第二探测响应数据,确定运行信息与第一区块链节点匹配的目标区块链节点,并将目标区块链节点所在的分片确定为目标分片。具体的,步骤s206可以包括:

第一区块链节点根据第二探测消息的发送时间和第二探测响应数据的接收时间,确定相应区块链节点的网络延迟时间;根据第一预设规则,基于网络延迟时间和第二探测响应数据中的算力信息,确定与第一区块链节点的运行信息相匹配的目标区块链节点;将目标区块链节点所在的分片确定为目标分片。其中,第一预设规则可以在实际应用中根据需要自行设定,如将算力信息与第一区块链节点的算力信息相同或差异在预设的差异范围内、且网络延迟时间小于预设时长的区块链节点确定为目标区块链节点。进一步的,当存在多个目标区块链节点的,可以根据第二探测响应数据的接收顺序,将接收顺序在前的目标区块链节点确定为最终的目标区块链节点。

由此,通过与单一区块链节点的运行信息匹配以确定目标区块链节点,从而确定目标分片,能够提升目标分片的确定速率。

进一步的,为了使第一区块链节点与确定的目标分片中的各区块链节点的运行信息均相似,本申请一个或多个实施例中,第一区块链节点还可以根据接收到的第二探测响应数据,确定各分片的运行状态,该运行状态包括分片的平均算力、平均网络延迟时间等。具体的,步骤s206可以包括:

根据第二探测响应数据包括的分片标识信息,将第二探测响应数据划分为多个数据集合,以使每个数据集合与分片标识信息所对应的分片相对应;根据数据集合中的每个第二探测响应数据的接收时间和第二探测消息的发送时间,确定相应分片的平均网络延迟时间;根据数据集合中的每个第二探测响应数据所包括的算力信息,确定相应分片的平均算力信息;根据第二预设规则基于平均网络延迟时间和平均算力信息,确定与第一区块链节点的运行信息相匹配的目标分片。

更加具体的,第一区块链节点根据每个数据集合中的每个第二探测响应数据的接收时间和第二探测消息的发送时间确定相应区块链节点的网络延迟时间,统计每个数据集合包括的第二探测响应数据的数量作为相应分片中成员节点的数量,根据每个数据集合对应的各网络延迟时间和成员节点的数量,计算平均网络延迟时间并确定为相应分片的平均网络延迟时间。以及,根据第二探测响应数据中的算力信息和确定的相应分片中成员节点的数量,确定相应分片的平均算力信息,如平均内存大小等。第二预设规则可以在实际应用中根据需要自行设定,将平均算力信息与第一区块链节点的算力信息相同或差异在预设的差异范围内、且平均网络延迟时间小于预设时长的分片确定为目标分片等。

由此,通过确定各分片的平均算力和平均网络延迟时间,能够更好的反应出相应分片的运行状态,从而更准确的确定相匹配的目标分片。

步骤s208,向目标分片中的至少一个成员节点发送分片加入请求,以在目标分片中的各成员节点对分片加入请求的第二调度共识通过后,加入目标分片。

由此,当第一区块链节点被确定为目标节点时,通过主动探测的方式确定目标分片,并基于共识机制加入到目标分片,实现了自主的、自动的分片之间的节点调度,而无需人为和中心化的设备参与,提升了安全性和去中心化程度。

进一步的,考虑到在实际应用中,从分片中移除的区块链节点和/或新接入区块链网络的处于待加入分片状态的区块链节点之间的运行信息可能相匹配,此时该多个节点之间若满足分片的组建条件,还可以组建新的分片;具体的,步骤s206中接收区块链节点发送的第二探测响应数据之后还可以包括:

若根据接收到的第二探测响应数据确定存在与第一区块链节点的运行信息相匹配、且状态为待加入分片的第三区块链节点,则与第三区块链节点进行分片协商处理,以组建新的分片。

其中,确定运行信息匹配的过程和分片协商处理的过程可参见前述相关描述,这里不再赘述。

本申请一个或多个实施例中,第一区块链节点按照预设频率获取所在第一分片中的每个成员节点的运行信息,并在根据获取的运行信息确定存在与第一分片的运行状态不匹配的目标节点时,基于第一调度共识将目标节点从第一分片中移除,以使目标节点加入运行状态相匹配的目标分片;其中,第一分片是区块链网络中的区块链节点预先通过分片协商处理所自行组建的多个分片中的任意一个分片。由此,区块链网络中的各区块链节点通过分片协商处理的方式自行组建分片,而不是基于中心化设备下发的配置文件进行分片,不仅减少了节点的配置操作,而且无需人为或其他中心化设备进行干预,满足了区块链的去中心化需求,极大的提升了安全性。并且,基于预设频率和调度共识机制进行不同分片之间的节点的自动调度,一方面能够及时的解决分片中节点的运行信息与相应分片的运行状态不匹配的问题,有利于形成高效的协同工作环境,提升资源利用率,达到最大的系统吞吐量;另一方面,实现了自主的节点的动态调度,提升了调度的安全性和去中心化程度。

进一步的,对应上述描述的区块链分片的调度方法,基于相同的技术构思,本申请实施例还提供了一种区块链分片的调度装置,应用于第一区块链节点。图9为本申请实施例提供的一种区块链分片的调度装置的模块组成示意图,如图9所示,该装置包括:

获取模块301,按照预设频率获取所在第一分片中的每个成员节点的运行信息;其中,所述第一分片是区块链网络中的区块链节点预先通过分片协商处理所自行组建的多个分片中的任意一个分片;

确定模块302,根据所述运行信息确定所述成员节点中是否存在与所述第一分片的运行状态不匹配的目标节点;

共识模块303,若所述确定模块302的确定结果为是,则在所述第一分片中发起将所述目标节点从所述第一分片中移除的第一调度共识;

移除模块304,在所述第一调度共识通过时,执行所述目标节点的移除处理,以使所述目标节点按照预设方式确定运行状态与所述运行信息相匹配的目标分片,并加入所述目标分片。

本申请一个或多个实施例提供的区块链分片的调度装置,按照预设频率获取所在第一分片中的每个成员节点的运行信息,并在根据获取的运行信息确定存在与第一分片的运行状态不匹配的目标节点时,基于第一调度共识将目标节点从第一分片中移除,以使目标节点加入运行状态相匹配的目标分片;其中,第一分片是区块链网络中的区块链节点预先通过分片协商处理所自行组建的多个分片中的任意一个分片。由此,区块链网络中的各区块链节点通过分片协商处理的方式自行组建分片,而不是基于中心化设备下发的配置文件进行分片,不仅减少了节点的配置操作,而且无需人为或其他中心化设备进行干预,满足了区块链的去中心化需求,极大的提升了安全性。并且,基于预设频率和调度共识机制进行不同分片之间的节点的自动调度,一方面能够及时的解决分片中节点的运行信息与相应分片的运行状态不匹配的问题,有利于形成高效的协同工作环境,提升资源利用率,达到最大的系统吞吐量;另一方面,实现了自主的节点的动态调度,提升了调度的安全性和去中心化程度。

可选地,所述获取模块301,按照预设频率向所在第一分片中的每个成员节点发送第一探测消息;以及,

接收所述成员节点发送的第一探测响应数据;

根据所述第一探测响应数据确定相应成员节点的运行信息。

可选地,所述获取模块301,根据所述第一探测消息的发送时间和所述第一探测响应数据的接收时间,确定相应成员节点的网络延迟时间;

从所述第一探测响应数据中获取算力信息;

将所述网络延迟时间和所述算力信息确定为相应成员节点的运行信息。

可选地,所述确定模块302,若确定所述运行信息中的所述算力信息符合第一预设条件、且所述运行信息中的所述网络延迟时间符合第二预设条件,则确定所述成员节点中存在与所述第一分片的运行状态不匹配的目标节点。

可选地,所述确定模块302,若确定所述运行信息中的所述算力信息与所述第一区块链节点的算力信息不匹配,则确定所述运行信息中的所述算力信息符合第一预设条件;或者,

根据获取的各所述运行信息中的所述算力信息和所述第一区块链节点的算力信息,确定所述第一分片当前的平均算力信息;若确定所述运行信息中的所述计算能力与所述平均算力信息不匹配,则确定所述运行信息中的所述算力信息符合第一预设条件。

可选地,所述确定模块302,若确定所述运行信息中的所述网络延迟时间大于预设的时间阈值,则确定所述运行信息中的所述网络延迟时间符合第二预设条件;或者,

根据获取的各所述运行信息中的所述网络延迟时间确定所述第一分片当前的平均网络延迟时间,若确定所述运行信息中的所述网络延迟时间大于所述平均网络延迟时间,则确定所述运行信息中的所述网络延迟时间符合第二预设条件。

可选地,所述移除模块304,根据所述目标节点的运行信息确定所述目标节点的节点标识信息;以及,

从保存的所述第一分片的节点信息表中查询所述节点标识信息,将查询到的所述节点标识信息从所述节点信息表中删除;或者,将预设的非成员标识与查询到的所述节点标识信息关联保存,以表征所述目标节点为所述第一分片的非成员节点。

可选地,所述装置还包括:接收模块和发送模块;

所述接收模块,接收第二区块链节点发送的第二探测消息;其中,所述第二区块链节点为从第二分片中移除的区块链节点,所述第二分片是与所述第一分片不同的分片;

所述发送模块,根据所述第一区块链节点的算力信息向所述第二区块链节点发送第二探测响应数据;以使所述第二区块链节点根据所述第二探测响应数据确定所述第二区块链节点的运行信息与所述第一分片的运行状态是否匹配。

可选地,所述接收模块,在所述发送模块述向所述第二区块链节点发送第二探测响应数据之后,还接收所述第二区块链节点发送的分片加入请求;其中,所述分片加入请求为所述第二区块链节点在确定所述第二区块链节点的运行信息与所述第一分片的运行状态匹配时所发送;

所述共识模块303,还在所述第一分片中对所述分片加入请求进行第二调度共识,若所述第二调度共识通过,则执行所述第二区块链节点加入所述第一分片的加入处理。

可选地,第一区块链节点被确定为所述目标节点,所述装置还包括:调度处理模块;

所述调度处理模块,获取区块链网络当前包括的各区块链节点的配置信息;以及,

根据所述配置信息,向相应的区块链节点发送第二探测消息;

接收所述区块链节点发送的第二探测响应数据,根据所述第二探测响应数据确定运行状态与所述第一区块链节点的运行信息相匹配的目标分片;

向所述目标分片中的至少一个成员节点发送分片加入请求,以在所述目标分片中的各成员节点对所述分片加入请求的第二调度共识通过后,加入所述目标分片。

可选地,所述调度处理模块,根据所述第二探测消息的发送时间和所述第二探测响应数据的接收时间,确定所述第二探测消息所对应的区块链节点的网络延迟时间;

根据第一预设规则,基于所述网络延迟时间和所述第二探测消息中的算力信息,确定与所述第一区块链节点的运行信息相匹配的目标区块链节点;

将所述目标区块链节点所在的分片确定为所述目标分片。

可选地,所述调度处理模块,根据所述第二探测响应数据包括的分片标识信息,将所述第二探测响应数据划分为多个数据集合,以使每个所述数据集合与所述分片标识信息所对应的分片相对应;

根据所述数据集合中的每个第二探测响应数据的接收时间和所述第二探测消息的发送时间,确定相应分片的平均网络延迟时间;

根据所述数据集合中的每个第二探测响应数据所包括的算力信息,确定相应分片的平均算力信息;

根据第二预设规则基于所述平均网络延迟时间和所述平均算力信息,确定与所述第一区块链节点的运行信息相匹配的所述目标分片。

可选地,所述装置还包括:第一分片处理模块;

所述第一分片模块,若根据接收到的所述第二探测响应数据确定存在与所述第一区块链节点的运行信息相匹配、且状态为待加入分片的第三区块链节点,则与所述第三区块链节点进行分片协商处理,以组建新的分片。

可选地,所述第一区块链节点是参与区块链网络的全网分片的节点,所述装置还包括:连接模块和第二分片处理模块;

所述连接模块,在所述获取模块301按照预设频率获取所在第一分片中的每个成员节点的运行信息之前,与所述区块链网络中的seed节点建立连接,并向所述seed节点发送所述第一区块链节点的第一配置信息;

所述第二分片处理模块,接收所述seed节点发送的所述区块链网络中当前包括的各区块链节点的第二配置信息;以及,

根据所述第二配置信息确定待组建所述第一分片的候选节点;

与确定的各所述候选节点进行分片协商处理,以组建所述第一分片。

可选地,所述第二分片处理模块,根据所述第二配置信息向相应的区块链节点发送第三探测消息;

接收所述区块链节点发送的第三探测响应数据;

根据所述第三探测响应数据确定相应区块链节点的运行信息;

根据所述运行信息,确定所述区块链网络中符合预设条件的区块链节点,将所述符合预设条件的区块链节点确定为待组建所述第一分片的候选节点。

可选地,所述第二分片处理模块,向所述各候选节点发起分片共识请求;

若基于所述分片共识请求的分片共识通过,则将所述候选节点确定为所述第一分片的成员节点。

本申请一个或多个实施例提供的区块链分片的调度装置,按照预设频率获取所在第一分片中的每个成员节点的运行信息,并在根据获取的运行信息确定存在与第一分片的运行状态不匹配的目标节点时,基于第一调度共识将目标节点从第一分片中移除,以使目标节点加入运行状态相匹配的目标分片;其中,第一分片是区块链网络中的区块链节点预先通过分片协商处理所自行组建的多个分片中的任意一个分片。由此,区块链网络中的各区块链节点通过分片协商处理的方式自行组建分片,而不是基于中心化设备下发的配置文件进行分片,不仅减少了节点的配置操作,而且无需人为或其他中心化设备进行干预,满足了区块链的去中心化需求,极大的提升了安全性。并且,基于预设频率和调度共识机制进行不同分片之间的节点的自动调度,一方面能够及时的解决分片中节点的运行信息与相应分片的运行状态不匹配的问题,有利于形成高效的协同工作环境,提升资源利用率,达到最大的系统吞吐量;另一方面,实现了自主的节点的动态调度,提升了调度的安全性和去中心化程度。

需要说明的是,本申请中关于区块链分片的调度装置的实施例与本申请中关于区块链分片的调度方法的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述对应的区块链分片的调度方法的实施,重复之处不再赘述。

进一步的,对应上述区块链分片的调度方法,基于相同的技术构思,本申请实施例还提供一种区块链分片的调度设备,该设备用于执行上述的区块链分片的调度方法,图10为本申请实施例提供的区块链分片的调度设备的结构示意图。

如图10所示,区块链分片的调度设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器401和存储器402,存储器402中可以存储有一个或一个以上存储应用程序或数据。其中,存储器402可以是短暂存储或持久存储。存储在存储器402的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括区块链分片的调度设备中的一系列计算机可执行指令。更进一步地,处理器401可以设置为与存储器402通信,在区块链分片的调度设备上执行存储器402中的一系列计算机可执行指令。区块链分片的调度设备还可以包括一个或一个以上电源403,一个或一个以上有线或无线网络接口404,一个或一个以上输入输出接口405,一个或一个以上键盘406等。

在一个具体的实施例中,区块链分片的调度设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对区块链分片的调度设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:

按照预设频率获取所在第一分片中的每个成员节点的运行信息;其中,所述第一分片是区块链网络中的区块链节点预先通过分片协商处理所自行组建的多个分片中的任意一个分片;

根据所述运行信息确定所述成员节点中是否存在与所述第一分片的运行状态不匹配的目标节点;

若是,则在所述第一分片中发起将所述目标节点从所述第一分片中移除的第一调度共识,并在所述第一调度共识通过时,执行所述目标节点的移除处理,以使所述目标节点按照预设方式确定运行状态与所述运行信息相匹配的目标分片,并加入所述目标分片。

可选地,计算机可执行指令在被执行时,所述按照预设频率获取所在第一分片中的每个成员节点的运行信息,包括:

按照预设频率向所在第一分片中的每个成员节点发送第一探测消息;

接收所述成员节点发送的第一探测响应数据;

根据所述第一探测响应数据确定相应成员节点的运行信息。

可选地,计算机可执行指令在被执行时,所述根据所述第一探测响应数据确定相应成员节点的运行信息,包括:

根据所述第一探测消息的发送时间和所述第一探测响应数据的接收时间,确定相应成员节点的网络延迟时间;

从所述第一探测响应数据中获取算力信息;

将所述网络延迟时间和所述算力信息确定为相应成员节点的运行信息。

可选地,计算机可执行指令在被执行时,所述根据所述运行信息确定所述成员节点中是否存在与所述第一分片的运行状态不匹配的目标节点,包括:

若确定所述运行信息中的所述算力信息符合第一预设条件、且所述运行信息中的所述网络延迟时间符合第二预设条件,则确定所述成员节点中存在与所述第一分片的运行状态不匹配的目标节点。

可选地,计算机可执行指令在被执行时,所述确定所述运行信息中的所述算力信息符合第一预设条件,包括:

若确定所述运行信息中的所述算力信息与所述第一区块链节点的算力信息不匹配,则确定所述运行信息中的所述算力信息符合第一预设条件;或者,

根据获取的各所述运行信息中的所述算力信息和所述第一区块链节点的算力信息,确定所述第一分片当前的平均算力信息;若确定所述运行信息中的所述计算能力与所述平均算力信息不匹配,则确定所述运行信息中的所述算力信息符合第一预设条件。

可选地,计算机可执行指令在被执行时,确定所述运行信息中的所述网络延迟时间符合第二预设条件,包括:

若确定所述运行信息中的所述网络延迟时间大于预设的时间阈值,则确定所述运行信息中的所述网络延迟时间符合第二预设条件;或者,

根据获取的各所述运行信息中的所述网络延迟时间确定所述第一分片当前的平均网络延迟时间,若确定所述运行信息中的所述网络延迟时间大于所述平均网络延迟时间,则确定所述运行信息中的所述网络延迟时间符合第二预设条件。

可选地,计算机可执行指令在被执行时,所述执行所述目标节点的移除处理,包括:

根据所述目标节点的运行信息确定所述目标节点的节点标识信息;

从保存的所述第一分片的节点信息表中查询所述节点标识信息,将查询到的所述节点标识信息从所述节点信息表中删除;或者,将预设的非成员标识与查询到的所述节点标识信息关联保存,以表征所述目标节点为所述第一分片的非成员节点。

可选地,计算机可执行指令在被执行时,所述方法还包括:

接收第二区块链节点发送的第二探测消息;其中,所述第二区块链节点为从第二分片中移除的区块链节点,所述第二分片是与所述第一分片不同的分片;

根据所述第一区块链节点的算力信息向所述第二区块链节点发送第二探测响应数据;以使所述第二区块链节点根据所述第二探测响应数据确定所述第二区块链节点的运行信息与所述第一分片的运行状态是否匹配。

可选地,计算机可执行指令在被执行时,所述向所述第二区块链节点发送第二探测响应数据之后,还包括:

接收所述第二区块链节点发送的分片加入请求;其中,所述分片加入请求为所述第二区块链节点在确定所述第二区块链节点的运行信息与所述第一分片的运行状态匹配时所发送;

在所述第一分片中对所述分片加入请求进行第二调度共识,若所述第二调度共识通过,则执行所述第二区块链节点加入所述第一分片的加入处理。

可选地,计算机可执行指令在被执行时,所述第一区块链节点被确定为所述目标节点,所述方法还包括:

获取区块链网络当前包括的各区块链节点的配置信息;

根据所述配置信息,向相应的区块链节点发送第二探测消息;

接收所述区块链节点发送的第二探测响应数据,根据所述第二探测响应数据确定运行状态与所述第一区块链节点的运行信息相匹配的目标分片;

向所述目标分片中的至少一个成员节点发送分片加入请求,以在所述目标分片中的各成员节点对所述分片加入请求的第二调度共识通过后,加入所述目标分片。

可选地,计算机可执行指令在被执行时,所述根据所述第二探测响应数据确定运行状态与所述第一区块链节点的运行信息相匹配的目标分片,包括:

根据所述第二探测消息的发送时间和所述第二探测响应数据的接收时间,确定所述第二探测消息所对应的区块链节点的网络延迟时间;

根据第一预设规则,基于所述网络延迟时间和所述第二探测消息中的算力信息,确定与所述第一区块链节点的运行信息相匹配的目标区块链节点;

将所述目标区块链节点所在的分片确定为所述目标分片。

可选地,计算机可执行指令在被执行时,所述根据所述第二探测响应数据确定运行状态与所述第一区块链节点的运行信息相匹配的目标分片,包括:

根据所述第二探测响应数据包括的分片标识信息,将所述第二探测响应数据划分为多个数据集合,以使每个所述数据集合与所述分片标识信息所对应的分片相对应;

根据所述数据集合中的每个第二探测响应数据的接收时间和所述第二探测消息的发送时间,确定相应分片的平均网络延迟时间;

根据所述数据集合中的每个第二探测响应数据所包括的算力信息,确定相应分片的平均算力信息;

根据第二预设规则基于所述平均网络延迟时间和所述平均算力信息,确定与所述第一区块链节点的运行信息相匹配的所述目标分片。

可选地,计算机可执行指令在被执行时,所述方法还包括:

若根据接收到的所述第二探测响应数据确定存在与所述第一区块链节点的运行信息相匹配、且状态为待加入分片的第三区块链节点,则与所述第三区块链节点进行分片协商处理,以组建新的分片。

可选地,计算机可执行指令在被执行时,所述第一区块链节点是参与区块链网络的全网分片的节点,所述按照预设频率获取所在第一分片中的每个成员节点的运行信息之前,还包括:

与所述区块链网络中的seed节点建立连接,并向所述seed节点发送所述第一区块链节点的第一配置信息;

接收所述seed节点发送的所述区块链网络中当前包括的各区块链节点的第二配置信息;

根据所述第二配置信息确定待组建所述第一分片的候选节点;

与确定的各所述候选节点进行分片协商处理,以组建所述第一分片。

可选地,计算机可执行指令在被执行时,所述根据所述第二配置信息确定待组建所述第一分片的候选节点,包括:

根据所述第二配置信息向相应的区块链节点发送第三探测消息;

接收所述区块链节点发送的第三探测响应数据;

根据所述第三探测响应数据确定相应区块链节点的运行信息;

根据所述运行信息,确定所述区块链网络中符合预设条件的区块链节点,将所述符合预设条件的区块链节点确定为待组建所述第一分片的候选节点。

可选地,计算机可执行指令在被执行时,所述与确定的各所述候选节点进行分片协商处理,包括:

向所述各候选节点发起分片共识请求;

若基于所述分片共识请求的分片共识通过,则将所述候选节点确定为所述第一分片的成员节点

本申请实施例所提供的区块链分片的调度设备,按照预设频率获取所在第一分片中的每个成员节点的运行信息,并在根据获取的运行信息确定存在与第一分片的运行状态不匹配的目标节点时,基于第一调度共识将目标节点从第一分片中移除,以使目标节点加入运行状态相匹配的目标分片;其中,第一分片是区块链网络中的区块链节点预先通过分片协商处理所自行组建的多个分片中的任意一个分片。由此,区块链网络中的各区块链节点通过分片协商处理的方式自行组建分片,而不是基于中心化设备下发的配置文件进行分片,不仅减少了节点的配置操作,而且无需人为或其他中心化设备进行干预,满足了区块链的去中心化需求,极大的提升了安全性。并且,基于预设频率和调度共识机制进行不同分片之间的节点的自动调度,一方面能够及时的解决分片中节点的运行信息与相应分片的运行状态不匹配的问题,有利于形成高效的协同工作环境,提升资源利用率,达到最大的系统吞吐量;另一方面,实现了自主的节点的动态调度,提升了调度的安全性和去中心化程度。

需要说明的是,本申请中关于区块链分片的调度设备的实施例与本申请中关于区块链分片的调度方法的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述对应的区块链分片的调度方法的实施,重复之处不再赘述。

进一步的,对应上述的数据处理方法,基于相同的技术构思,本申请一个或多个实施例还提供了一种存储介质,用于存储计算机可执行指令,在一个具体的实施例中,该存储介质可以为u盘、光盘、硬盘等,该存储介质存储的计算机可执行指令在被处理器执行时,能实现以下流程:

按照预设频率获取所在第一分片中的每个成员节点的运行信息;其中,所述第一分片是区块链网络中的区块链节点预先通过分片协商处理所自行组建的多个分片中的任意一个分片;

根据所述运行信息确定所述成员节点中是否存在与所述第一分片的运行状态不匹配的目标节点;

若是,则在所述第一分片中发起将所述目标节点从所述第一分片中移除的第一调度共识,并在所述第一调度共识通过时,执行所述目标节点的移除处理,以使所述目标节点按照预设方式确定运行状态与所述运行信息相匹配的目标分片,并加入所述目标分片。

可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述按照预设频率获取所在第一分片中的每个成员节点的运行信息,包括:

按照预设频率向所在第一分片中的每个成员节点发送第一探测消息;

接收所述成员节点发送的第一探测响应数据;

根据所述第一探测响应数据确定相应成员节点的运行信息。

可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述根据所述第一探测响应数据确定相应成员节点的运行信息,包括:

根据所述第一探测消息的发送时间和所述第一探测响应数据的接收时间,确定相应成员节点的网络延迟时间;

从所述第一探测响应数据中获取算力信息;

将所述网络延迟时间和所述算力信息确定为相应成员节点的运行信息。

可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述根据所述运行信息确定所述成员节点中是否存在与所述第一分片的运行状态不匹配的目标节点,包括:

若确定所述运行信息中的所述算力信息符合第一预设条件、且所述运行信息中的所述网络延迟时间符合第二预设条件,则确定所述成员节点中存在与所述第一分片的运行状态不匹配的目标节点。

可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述确定所述运行信息中的所述算力信息符合第一预设条件,包括:

若确定所述运行信息中的所述算力信息与所述第一区块链节点的算力信息不匹配,则确定所述运行信息中的所述算力信息符合第一预设条件;或者,

根据获取的各所述运行信息中的所述算力信息和所述第一区块链节点的算力信息,确定所述第一分片当前的平均算力信息;若确定所述运行信息中的所述计算能力与所述平均算力信息不匹配,则确定所述运行信息中的所述算力信息符合第一预设条件。

可选地,该存储介质存储的计算机可执行指令在被处理器执行时,确定所述运行信息中的所述网络延迟时间符合第二预设条件,包括:

若确定所述运行信息中的所述网络延迟时间大于预设的时间阈值,则确定所述运行信息中的所述网络延迟时间符合第二预设条件;或者,

根据获取的各所述运行信息中的所述网络延迟时间确定所述第一分片当前的平均网络延迟时间,若确定所述运行信息中的所述网络延迟时间大于所述平均网络延迟时间,则确定所述运行信息中的所述网络延迟时间符合第二预设条件。

可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述执行所述目标节点的移除处理,包括:

根据所述目标节点的运行信息确定所述目标节点的节点标识信息;

从保存的所述第一分片的节点信息表中查询所述节点标识信息,将查询到的所述节点标识信息从所述节点信息表中删除;或者,将预设的非成员标识与查询到的所述节点标识信息关联保存,以表征所述目标节点为所述第一分片的非成员节点。

可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述方法还包括:

接收第二区块链节点发送的第二探测消息;其中,所述第二区块链节点为从第二分片中移除的区块链节点,所述第二分片是与所述第一分片不同的分片;

根据所述第一区块链节点的算力信息向所述第二区块链节点发送第二探测响应数据;以使所述第二区块链节点根据所述第二探测响应数据确定所述第二区块链节点的运行信息与所述第一分片的运行状态是否匹配。

可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述向所述第二区块链节点发送第二探测响应数据之后,还包括:

接收所述第二区块链节点发送的分片加入请求;其中,所述分片加入请求为所述第二区块链节点在确定所述第二区块链节点的运行信息与所述第一分片的运行状态匹配时所发送;

在所述第一分片中对所述分片加入请求进行第二调度共识,若所述第二调度共识通过,则执行所述第二区块链节点加入所述第一分片的加入处理。

可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述第一区块链节点被确定为所述目标节点,所述方法还包括:

获取区块链网络当前包括的各区块链节点的配置信息;

根据所述配置信息,向相应的区块链节点发送第二探测消息;

接收所述区块链节点发送的第二探测响应数据,根据所述第二探测响应数据确定运行状态与所述第一区块链节点的运行信息相匹配的目标分片;

向所述目标分片中的至少一个成员节点发送分片加入请求,以在所述目标分片中的各成员节点对所述分片加入请求的第二调度共识通过后,加入所述目标分片。

可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述根据所述第二探测响应数据确定运行状态与所述第一区块链节点的运行信息相匹配的目标分片,包括:

根据所述第二探测消息的发送时间和所述第二探测响应数据的接收时间,确定所述第二探测消息所对应的区块链节点的网络延迟时间;

根据第一预设规则,基于所述网络延迟时间和所述第二探测消息中的算力信息,确定与所述第一区块链节点的运行信息相匹配的目标区块链节点;

将所述目标区块链节点所在的分片确定为所述目标分片。

可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述根据所述第二探测响应数据确定运行状态与所述第一区块链节点的运行信息相匹配的目标分片,包括:

根据所述第二探测响应数据包括的分片标识信息,将所述第二探测响应数据划分为多个数据集合,以使每个所述数据集合与所述分片标识信息所对应的分片相对应;

根据所述数据集合中的每个第二探测响应数据的接收时间和所述第二探测消息的发送时间,确定相应分片的平均网络延迟时间;

根据所述数据集合中的每个第二探测响应数据所包括的算力信息,确定相应分片的平均算力信息;

根据第二预设规则基于所述平均网络延迟时间和所述平均算力信息,确定与所述第一区块链节点的运行信息相匹配的所述目标分片。

可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述方法还包括:

若根据接收到的所述第二探测响应数据确定存在与所述第一区块链节点的运行信息相匹配、且状态为待加入分片的第三区块链节点,则与所述第三区块链节点进行分片协商处理,以组建新的分片。

可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述第一区块链节点是参与区块链网络的全网分片的节点,所述按照预设频率获取所在第一分片中的每个成员节点的运行信息之前,还包括:

与所述区块链网络中的seed节点建立连接,并向所述seed节点发送所述第一区块链节点的第一配置信息;

接收所述seed节点发送的所述区块链网络中当前包括的各区块链节点的第二配置信息;

根据所述第二配置信息确定待组建所述第一分片的候选节点;

与确定的各所述候选节点进行分片协商处理,以组建所述第一分片。

可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述根据所述第二配置信息确定待组建所述第一分片的候选节点,包括:

根据所述第二配置信息向相应的区块链节点发送第三探测消息;

接收所述区块链节点发送的第三探测响应数据;

根据所述第三探测响应数据确定相应区块链节点的运行信息;

根据所述运行信息,确定所述区块链网络中符合预设条件的区块链节点,将所述符合预设条件的区块链节点确定为待组建所述第一分片的候选节点。

可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述与确定的各所述候选节点进行分片协商处理,包括:

向所述各候选节点发起分片共识请求;

若基于所述分片共识请求的分片共识通过,则将所述候选节点确定为所述第一分片的成员节点

本申请一个或多个实施例提供的存储介质存储的计算机可执行指令在被处理器执行时,按照预设频率获取所在第一分片中的每个成员节点的运行信息,并在根据获取的运行信息确定存在与第一分片的运行状态不匹配的目标节点时,基于第一调度共识将目标节点从第一分片中移除,以使目标节点加入运行状态相匹配的目标分片;其中,第一分片是区块链网络中的区块链节点预先通过分片协商处理所自行组建的多个分片中的任意一个分片。由此,区块链网络中的各区块链节点通过分片协商处理的方式自行组建分片,而不是基于中心化设备下发的配置文件进行分片,不仅减少了节点的配置操作,而且无需人为或其他中心化设备进行干预,满足了区块链的去中心化需求,极大的提升了安全性。并且,基于预设频率和调度共识机制进行不同分片之间的节点的自动调度,一方面能够及时的解决分片中节点的运行信息与相应分片的运行状态不匹配的问题,有利于形成高效的协同工作环境,提升资源利用率,达到最大的系统吞吐量;另一方面,实现了自主的节点的动态调度,提升了调度的安全性和去中心化程度。

需要说明的是,本说明书中关于存储介质的实施例与本说明书中关于区块链分片的调度方法的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述对应的区块链分片的调度方法的实施,重复之处不再赘述。

本领域内的技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书的一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本文件的实施例而已,并不用于限制本文件。对于本领域技术人员来说,本文件可以有各种更改和变化。凡在本文件的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本文件的权利要求范围之内。


技术特征:

1.一种区块链分片的调度方法,其特征在于,应用于第一区块链节点,包括:

按照预设频率获取所在第一分片中的每个成员节点的运行信息;其中,所述第一分片是区块链网络中的区块链节点预先通过分片协商处理所自行组建的多个分片中的任意一个分片;

根据所述运行信息确定所述成员节点中是否存在与所述第一分片的运行状态不匹配的目标节点;

若是,则在所述第一分片中发起将所述目标节点从所述第一分片中移除的第一调度共识,并在所述第一调度共识通过时,执行所述目标节点的移除处理,以使所述目标节点按照预设方式确定运行状态与所述运行信息相匹配的目标分片,并加入所述目标分片。

2.根据权利要求1所述的方法,其特征在于,所述按照预设频率获取所在第一分片中的每个成员节点的运行信息,包括:

按照预设频率向所在第一分片中的每个成员节点发送第一探测消息;

接收所述成员节点发送的第一探测响应数据;

根据所述第一探测响应数据确定相应成员节点的运行信息。

3.根据权利要求2所述的方法,其特征在于,所述根据所述第一探测响应数据确定相应成员节点的运行信息,包括:

根据所述第一探测消息的发送时间和所述第一探测响应数据的接收时间,确定相应成员节点的网络延迟时间;

从所述第一探测响应数据中获取算力信息;

将所述网络延迟时间和所述算力信息确定为相应成员节点的运行信息。

4.根据权利要求3所述的方法,其特征在于,所述根据所述运行信息确定所述成员节点中是否存在与所述第一分片的运行状态不匹配的目标节点,包括:

若确定所述运行信息中的所述算力信息符合第一预设条件、且所述运行信息中的所述网络延迟时间符合第二预设条件,则确定所述成员节点中存在与所述第一分片的运行状态不匹配的目标节点。

5.根据权利要求4所述的方法,其特征在于,所述确定所述运行信息中的所述算力信息符合第一预设条件,包括:

若确定所述运行信息中的所述算力信息与所述第一区块链节点的算力信息不匹配,则确定所述运行信息中的所述算力信息符合第一预设条件;或者,

根据获取的各所述运行信息中的所述算力信息和所述第一区块链节点的算力信息,确定所述第一分片当前的平均算力信息;若确定所述运行信息中的所述计算能力与所述平均算力信息不匹配,则确定所述运行信息中的所述算力信息符合第一预设条件。

6.根据权利要求4所述的方法,其特征在于,确定所述运行信息中的所述网络延迟时间符合第二预设条件,包括:

若确定所述运行信息中的所述网络延迟时间大于预设的时间阈值,则确定所述运行信息中的所述网络延迟时间符合第二预设条件;或者,

根据获取的各所述运行信息中的所述网络延迟时间确定所述第一分片当前的平均网络延迟时间,若确定所述运行信息中的所述网络延迟时间大于所述平均网络延迟时间,则确定所述运行信息中的所述网络延迟时间符合第二预设条件。

7.根据权利要求1所述的方法,其特征在于,所述执行所述目标节点的移除处理,包括:

根据所述目标节点的运行信息确定所述目标节点的节点标识信息;

从保存的所述第一分片的节点信息表中查询所述节点标识信息,将查询到的所述节点标识信息从所述节点信息表中删除;或者,将预设的非成员标识与查询到的所述节点标识信息关联保存,以表征所述目标节点为所述第一分片的非成员节点。

8.根据权利要求1所述的方法,其特征在于,所述方法还包括:

接收第二区块链节点发送的第二探测消息;其中,所述第二区块链节点为从第二分片中移除的区块链节点,所述第二分片是与所述第一分片不同的分片;

根据所述第一区块链节点的算力信息向所述第二区块链节点发送第二探测响应数据;以使所述第二区块链节点根据所述第二探测响应数据确定所述第二区块链节点的运行信息与所述第一分片的运行状态是否匹配。

9.根据权利要求8所述的方法,其特征在于,所述向所述第二区块链节点发送第二探测响应数据之后,还包括:

接收所述第二区块链节点发送的分片加入请求;其中,所述分片加入请求为所述第二区块链节点在确定所述第二区块链节点的运行信息与所述第一分片的运行状态匹配时所发送;

在所述第一分片中对所述分片加入请求进行第二调度共识,若所述第二调度共识通过,则执行所述第二区块链节点加入所述第一分片的加入处理。

10.根据权利要求1所述的方法,其特征在于,所述第一区块链节点被确定为所述目标节点,所述方法还包括:

获取区块链网络当前包括的各区块链节点的配置信息;

根据所述配置信息,向相应的区块链节点发送第二探测消息;

接收所述区块链节点发送的第二探测响应数据,根据所述第二探测响应数据确定运行状态与所述第一区块链节点的运行信息相匹配的目标分片;

向所述目标分片中的至少一个成员节点发送分片加入请求,以在所述目标分片中的各成员节点对所述分片加入请求的第二调度共识通过后,加入所述目标分片。

11.根据权利要求10所述的方法,其特征在于,所述根据所述第二探测响应数据确定运行状态与所述第一区块链节点的运行信息相匹配的目标分片,包括:

根据所述第二探测消息的发送时间和所述第二探测响应数据的接收时间,确定所述第二探测消息所对应的区块链节点的网络延迟时间;

根据第一预设规则,基于所述网络延迟时间和所述第二探测消息中的算力信息,确定与所述第一区块链节点的运行信息相匹配的目标区块链节点;

将所述目标区块链节点所在的分片确定为所述目标分片。

12.根据权利要求10所述的方法,其特征在于,所述根据所述第二探测响应数据确定运行状态与所述第一区块链节点的运行信息相匹配的目标分片,包括:

根据所述第二探测响应数据包括的分片标识信息,将所述第二探测响应数据划分为多个数据集合,以使每个所述数据集合与所述分片标识信息所对应的分片相对应;

根据所述数据集合中的每个第二探测响应数据的接收时间和所述第二探测消息的发送时间,确定相应分片的平均网络延迟时间;

根据所述数据集合中的每个第二探测响应数据所包括的算力信息,确定相应分片的平均算力信息;

根据第二预设规则基于所述平均网络延迟时间和所述平均算力信息,确定与所述第一区块链节点的运行信息相匹配的所述目标分片。

13.根据权利要求10所述的方法,其特征在于,所述方法还包括:

若根据接收到的所述第二探测响应数据确定存在与所述第一区块链节点的运行信息相匹配、且状态为待加入分片的第三区块链节点,则与所述第三区块链节点进行分片协商处理,以组建新的分片。

14.根据权利要求1所述的方法,其特征在于,所述第一区块链节点是参与区块链网络的全网分片的节点,所述按照预设频率获取所在第一分片中的每个成员节点的运行信息之前,还包括:

与所述区块链网络中的seed节点建立连接,并向所述seed节点发送所述第一区块链节点的第一配置信息;

接收所述seed节点发送的所述区块链网络中当前包括的各区块链节点的第二配置信息;

根据所述第二配置信息确定待组建所述第一分片的候选节点;

与确定的各所述候选节点进行分片协商处理,以组建所述第一分片。

15.根据权利要求14所述的方法,其特征在于,所述根据所述第二配置信息确定待组建所述第一分片的候选节点,包括:

根据所述第二配置信息向相应的区块链节点发送第三探测消息;

接收所述区块链节点发送的第三探测响应数据;

根据所述第三探测响应数据确定相应区块链节点的运行信息;

根据所述运行信息,确定所述区块链网络中符合预设条件的区块链节点,将所述符合预设条件的区块链节点确定为待组建所述第一分片的候选节点。

16.根据权利要求14所述的方法,其特征在于,所述与确定的各所述候选节点进行分片协商处理,包括:

向所述各候选节点发起分片共识请求;

若基于所述分片共识请求的分片共识通过,则将所述候选节点确定为所述第一分片的成员节点。

17.一种区块链分片的调度装置,其特征在于,应用于第一区块链节点,包括:

获取模块,按照预设频率获取所在第一分片中的每个成员节点的运行信息;其中,所述第一分片是区块链网络中的区块链节点预先通过分片协商处理所自行组建的多个分片中的任意一个分片;

确定模块,根据所述运行信息确定所述成员节点中是否存在与所述第一分片的运行状态不匹配的目标节点;

共识模块,若所述确定模块的确定结果为是,则在所述第一分片中发起将所述目标节点从所述第一分片中移除的第一调度共识;

移除模块,在所述第一调度共识通过时,执行所述目标节点的移除处理,以使所述目标节点按照预设方式确定运行状态与所述运行信息相匹配的目标分片,并加入所述目标分片。

18.根据权利要求17所述的装置,其特征在于,所述装置还包括:发送模块、接收模块、第二确定模块和分片模块;

所述发送模块,在所述获取模块按照预设频率获取所在第一分片中的每个成员节点的运行信息之前,与区块链网络中的seed节点建立连接,并向所述seed节点发送所述第一区块链节点的第一配置信息;

所述接收模块,接收所述seed节点发送的所述区块链网络中当前包括的各区块链节点的第二配置信息;

所述第二确定模块,根据所述第二配置信息确定待组建所述第一分片的候选节点;

所述分片模块,与确定的各所述候选节点进行分片协商处理,以组建所述第一分片。

19.一种区块链分片的调度设备,其特征在于,包括:处理器,以及被安排成存储计算机可执行指令的存储器;所述计算机可执行指令在被执行时使所述处理器实现上述权利要求1至16中任一项所述的方法的步骤。

20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1至16中任一项所述的方法的步骤。

技术总结
本申请实施例提供了一种区块链分片的调度方法、装置、设备及存储介质,涉及区块链技术领域。所述方法包括:按照预设频率获取所在第一分片中的每个成员节点的运行信息;若根据运行信息确定成员节点中存在与第一分片的运行状态不匹配的目标节点,则在第一分片中发起第一调度共识,并在第一调度共识通过时,执行目标节点的移除处理,以使目标节点按照预设方式确定运行状态与其运行信息相匹配的目标分片,并加入目标分片;其中,第一分片是区块链网络中的区块链节点预先通过分片协商处理所自行组建的多个分片中的任意一个分片;通过本申请实施例,实现了分片的自行组建及分片之间节点的自动调度,具有更高的安全性,满足了区块链的中心化需求。

技术研发人员:王潇
受保护的技术使用者:广州智链未来科技有限公司
技术研发日:2020.12.03
技术公布日:2021.04.06

转载请注明原文地址:https://xbbs.6miu.com/read-20994.html