多区块链网络的访问处理方法、系统、装置及存储介质与流程

文档序号:19664410发布日期:2020-01-10 21:26阅读:168来源:国知局
多区块链网络的访问处理方法、系统、装置及存储介质与流程

本发明涉及区块链的访问处理技术领域,尤其涉及一种多区块链网络的访问处理方法、系统、装置及存储介质。



背景技术:

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,被广泛应用与证券交易、电子商务、智能合约、物联网、社交通讯以及文件存储等众多领域。

多区块链网络指使用同一底层区块链平台搭建的属于不同网络的区块链节点集群,如以太坊主网、以太坊ropsten测试网络、以太坊rinkeby测试网络,即可称为多区块链网络。

在区块链实际应用中,各个领域都有可能针对不同的业务场景去构造一个区块链网络,即便是在同一个业务场景下,也有可能构建一组共同配合工作的区块链网络来完成复杂的业务逻辑,应用程序需要与这些平行的多区块链网络进行交互以完成复杂的业务。目前没有统一访问多区块链网络的方法,应用程序需要自行管理多个区块链网络节点,操作繁琐,系统效能低下,开发成本高。



技术实现要素:

本发明的目的在于克服现有技术之缺陷,提供了一种多区块链网络的访问处理方法、系统、装置及存储介质,解决了现有技术中无法统一访问多个区块链网络的问题,实现同时访问多个区块链网络的数据。

本发明是这样实现的:

本发明提供一种多区块链网络的访问处理方法,包括:

接收数据请求端发送的消息请求,其中,所述消息请求中包括区块链网络标识;

根据预先存储的目标区块链网络与网络标识的对应关系,获取所述消息请求中所包含的区块链网络标识所对应的目标区块链网络;

获取所述目标区块链网络中的最新数据节点;

将所述消息请求转发至所述最新数据节点;

接收所述最新数据节点反馈的响应数据,并反馈至所述数据请求端。

进一步地,所述方法还包括:

根据预设周期,从目标文件中读取每一个区块链网络中的参数信息,其中,所述参数信息包括区块链网络的节点信息、区块链网络标识、最新数据节点;

根据所述参数信息更新每一个区块链网络。

进一步地,最新数据节点的确定步骤包括:

针对每一个区块链网络,获取其中每一个节点的区块高度;

计算区块高度最大的节点;

将该节点确定为该区块链网络的最新数据节点。

进一步地,所述将所述消息请求转发至所述最新数据节点的步骤,包括:

将所述消息请求封装成底层区块链识别的消息格式;

将封装后的消息请求转发至所述最新数据节点;

所述接收所述最新数据节点反馈的响应数据,并反馈至所述数据请求端的步骤,包括:

接收所述最新数据节点反馈的响应数据;

对所述响应数据进行解析;

将解析后的响应数据反馈至所述数据请求端。

进一步地,所述方法还包括:

读取多个区块链网络的配置信息,其中,所述配置信息包括每一个区块链网络的区块链网络标识、每个区块链网络中的区块链节点集群的url列表;

根据所读取配置信息,在判断存在新加入节点或节点信息变更的区块链网络时,获取区块链网络中每个节点的区块高度;

基于所获取的区块高度,确定区块链网络的最新数据节点。

进一步地,所述方法还包括:

根据预设周期读取多个区块链网络的配置信息;

将本周期读取的第一配置信息与上一周期读取的第二配置信息进行比较;

获取数据变更的区块链网络信息;

确定数据变更的区块链网络,并遍历所有数据变更的区块链网络;

若为删除的区块链网络,则删除对应的区块链网络信息;

若为新加入或节点信息变更的区块链网络,则保存新加入或节点信息变更的区块链网络信息;

计算新加入或节点信息变更的区块链网络的最新节点信息,以确定是否执行更新该区块链网络的最新数据节点。

进一步地,所述方法还包括:

接收更新请求,并存储至消息队列,其中,所述更新请求为区块链网络的所对应的最新数据节点的变更请求;

判断消息队列是否有未处理消息;

如果有,则按照先入先出规则,从消息队列获取一更新请求;

从所述更新请求中,解析出区块链网络标识和节点列表信息;

遍历当前区块链网络的所有节点,并获取当前节点的区块高度;

在遍历结束,计算出所有节点中区块高度最大的节点,并重新确定最新数据节点。

此外,本发明还公开了一种多区块链网络的访问处理系统,其特征在于,所述系统包括:

应用接口模块,用于接收数据请求端发送的消息请求,其中,所述消息请求中包括区块链网络标识;根据预先存储的目标区块链网络与网络标识的对应关系,获取所述消息请求中所包含的区块链网络标识所对应的目标区块链网络;获取所述目标区块链网络中的最新数据节点;将所述消息请求转发至所述最新数据节点;接收所述最新数据节点反馈的响应数据,并反馈至所述数据请求端;

节点管理模块,用于根据预设周期,从目标文件中读取每一个区块链网络中的参数信息,其中,所述参数信息包括区块链网络的节点信息、区块链网络标识、最新数据节点;根据所述参数信息更新每一个区块链网络

节点监控模块,用于针对每一个区块链网络,获取其中每一个节点的区块高度;计算区块高度最大的节点;将该节点确定为该区块链网络的最新数据节点。

此外,本发明还公开了一种多区块链网络的访问处理装置,所述装置包括处理器、以及通过通信总线与所述处理器连接的存储器;其中,

所述存储器,用于存储多区块链网络的访问处理程序;

所述处理器,用于执行所述多区块链网络的访问处理程序,以实现任一项所述的多区块链网络的访问处理步骤。

以及,公开了一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以使所述一个或者多个处理器执行任一项所述的多区块链网络的访问处理步骤。

应用本发明的多区块链网络的访问处理方法、系统、装置及存储介质,设置每个区块链网络都有一个唯一的区块链网络标识,当需要访问区块链时,根据区块链网络标识将应用程序的请求分发到指定的区块链网络中,一个区块链网络有多个节点,将请求发送到指定区块链网络中数据最新的节点上,因此,通过存储不同的区块链网络的标识,则实现了与不同区块链网络的链接,以保证数据请求端能够获取到最新的数据。

附图说明

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

图1为本发明实施例提供的多区块链网络的访问处理方法的一种流程示意图;

图2为本发明实施例提供的多区块链网络的访问处理方法的应用场景示意图;

图3为本发明实施例提供的多区块链网络的访问处理装置的模块划分示意图;

图4为本发明实施例提供的多区块链网络的访问处理装置的一种应用场景示意图。

具体实施方式

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

参见图1,本发明实施例提供一种多区块链网络的访问处理方法,包括步骤如下:

s101,接收数据请求端发送的消息请求,其中,所述消息请求中包括区块链网络标识。

需要说明的是,api(applicationprogramminginterface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问的能力,而又无需理解内部工作机制的细节。此外,sdk可以简单地为某个程序设计语言提供api。因此,本发明实施例中,基于sdk统一访问多区块链网络,并提供易用的api供应用程序统一访问多区块链网络的节点。

本发明实施例中,如图2所示,为本发明实施例的一种具体应用,设置每个区块链网络都有一个唯一的区块链网络标识。示例性的,以应用程序作为访问的数据请求端。本发明实施例的方法,其执行主体可以是sdk软件开发工具包,通过sdk以连接每一个区块链网络,例如,连接区块链网络1、区块链网络2、……区块链网络n。

具体的,在访问区块链网络时,通过调用多区块链网络的sdk软件开发工具包提供的api,api根据请求中所包含的区块链网络标识,能够确定与区块链网络标识对应的区块链网络。本发明实施例中,区块链网络标识可以设置为与区块链网络意义对应的名称,所以通过区块链网络标识能够唯一确定该区块链网络。示例性的,区块链网络1的区块链网络标识为qkl01、区块链网络2的区块链网络标识为qkl02。

s102,根据预先存储的目标区块链网络与网络标识的对应关系,获取所述消息请求中所包含的区块链网络标识所对应的目标区块链网络。

可以理解的是,首先从应用程序的消息请求中提取出区块链网络标识,然后根据区块链网络标识确定区块链网络,再将该消息请求分发到该区块链网络中。示例性的,获得的消息请求中区块链网络标识为qkl02,那么根据预先存储的数据关系,可以获得网络标识qkl02与区块链网络2对应,那么确定目标区块链网络为网络标识2。

s103,获取所述目标区块链网络中的最新数据节点。

需要说明的是,节点指的是区块链网络中的计算机,包含手机,矿机和服务器等等。由大量个人或者家庭用户参与的区块链,每个人或者家庭都是区块链的节点。而且,一个区块链网络有多个节点,api将应用程序的请求发送到指定区块链网络中数据最新的节点上,以保证应用程序能够获取到最新的数据。

由于每一个节点上均存储有数据,而每一个节点上的数据更新时间不同,所以需要确定响应消息请求的节点。本发明实施例中,确定目标区块链网络中的最新数据节点响应消息请求。

本发明的具体实现中,最新数据节点的确定步骤包括:针对每一个区块链网络,获取其中每一个节点的区块高度;计算区块高度最大的节点;将该节点确定为该区块链网络的最新数据节点。

需要说明的是,在区块链网络中,区块高度是区块链接在主链的个数,也就是连接在区块链上的块数。因此,确定一个区块链网络中的区块高度最大的节点为现有技术,本发明实施例在此不做具体限定。

需要说明的是,每一个区块链网络有多个区块链节点,每个节点可以理解成一台计算机上执行的区块链程序,每个节点拥有一份独立的账本数据,一个区块链网络中各个节点的数据是最终是一样的,但在某一时刻会出现某个节点数据已经更新,而其他节点数据可能还没有同步完成的情况。区块链中的账本数据是链状以区块的形式存储的,区块高度是逐渐累加的,所以区块高度最大的节点就是数据最新的节点。不同的区块链网络之间的数据没有关系,每个节点都存储了当前账本中的最新区块高度。

s104,将所述消息请求转发至所述最新数据节点。

具体的,通过sdk将所述消息请求封装成底层区块链识别的消息格式;将封装后的消息请求转发至所述最新数据节点。

可以理解的是,底层区块链所识别的消息格式与应用程序所发送的请求消息的格式不相同,所以需要通过sdk进行转化和封装,从而转化为区块链网络能够识别的消息格式,以便进行消息处理。节点接收到消息请求进行处理并响应的过程为现有技术,本发明实施例在此不做具体限定。

s105,接收所述最新数据节点反馈的响应数据,并反馈至所述数据请求端。

本发明的具体实现中,通过接收所述最新数据节点反馈的响应数据;对所述响应数据进行解析;将解析后的响应数据反馈至所述数据请求端。节点发送的数据是一个消息包,数据格式与应用程序需要的格式可能不同,需要sdk进行数据转换。具体实现中,可以是节点发送的数据多于应用程序需要的数据;或者应用程序需要的数据需要sdk向节点发送多个请求,然后对请求数据进行合并。

本发明的一种具体实现方式中,通过将图1所示实施例的执行主体为sdk,在sdk内部进行具体划分为多个模块,以便执行上述不同的功能,具体的,如图3所示,sdk软件开发工具包包括:

应用接口模块,用于提供应用程序访问多区块链网络的统一编程接口api,通过api实现应用程序与每一个区块链网络的访问处理。api需要包括区块链网络标识参数,用以区分不同的区块链网络。应用程序调用api时,应用接口模块根据区块链网络标识决定与哪个区块链网络进行通信,并将应用程序的请求封装成底层区块链识别的消息格式,向指定区块链网络的最新数据节点发送消息请求,获得区块链消息响应后,解析数据,并返还给应用程序。

此外,api主要包括sdk初始化接口,例如区块链网络信息所对应的增、删、改接口,获取区块链区块数据、交易数据、交易执行结果数据等接口,获取账户余额接口,添加区块链交易等接口。

本发明实施例中,应用程序使用统一访问多区块链网络的sdk,应用程序根据功能需要调用不同的应用接口模块的api,api中必须包含区块链网络标识参数,应用接口模块根据区块链网络标识,到节点管理模块获取指定区块链网络的最新数据节点信息,封装应用程序的请求为底层区块链识别的消息格式,将封装后的请求发送到最新数据节点中,获取到最新数据节点的响应后,解析响应数据,返还给应用程序。

本发明的另一实现方式中,sdk还包括节点管理模块和节点监控摸。

节点管理模块,用于根据预设周期,从目标文件中读取每一个区块链网络中的参数信息,其中,所述参数信息包括区块链网络的节点信息、区块链网络标识、最新数据节点;根据所述参数信息更新每一个区块链网络。

具体的,节点管理模块能够维护网络结构中任意一个区块链网络的节点集群信息,可以定期从文件或数据库读取所有区块链网络节点信息,包括区块链网络标识,每个网络中的节点集群的信息、最新数据节点信息等,在发生变更时,动态增加、删除、修改、查询区块链网络信息。

节点监控模块,用于针对每一个区块链网络,获取其中每一个节点的区块高度;计算区块高度最大的节点;将该节点确定为该区块链网络的最新数据节点。

本发明实施例中,设置节点监控模块的功能为维护所有区块链网络的节点状态信息,包括节点在线状态、节点最新区块等信息。节点监控模块定期从节点管理模块获取所有区块链网络信息,并向所有区块链网络的所有节点请求节点最新区块高度,计算出每个区块链网络中区块高度最大的节点设为最新数据节点,每个区块链网络都只有一个最新数据节点,将最新数据节点信息存入节点管理模块。

因此,应用本发明实施例,实现数据请求端与多区块链网络交互,应用接口模块根据区块链网络标识到节点管理模块获取当前区块链网络的最新数据节点信息,从最新数据节点获取到请求响应消息后,解析响应消息数据,并返回给应用程序数据请求结果。

本发明实施例中,在数据请求端通过sdk访问多区块链网络时,首先要执行sdk的初始化操作,初始化流程如下:

配置多个区块链网络的基本信息,那么获得了每一个区块链网络的配置信息,并将配置信息存储到文件或者数据库,配置信息主要包括多个区块链网络的区块链网络标识、每个网络中的区块链节点集群的url列表;然后通过应用程序调用sdk的应用接口模块提供的初始化api;api中启动节点管理模块任务、节点监控模块任务。

在节点管理模块任务定期从文件或者数据库中读取多个区块链网络的信息,在任意一个区块链网络中存在新加入节点或节点信息变更的区块链网络时,通知节点监控模块计算新加入区块链网络的最新数据节点;节点监控模块任务从节点管理模块获取多个区块链网络的信息,找到每个网络中数据最新的节点为最新数据节点,将各自区块链网络的最新数据节点信息写入节点管理模块。

通过节点管理模块维护所有区块链网络的节点集群信息,在一个执行周期内,采用定时任务进行处理的过程包括:

从配置文件或者数据库读取多个区块链网络信息;

将新读取的区块链网络信息与上次读取的旧数据进行比较;

找到所有数据变更的区块链网络信息,无变化的区块链网络不需要处理,遍历所有数据变更的区块链网络;

若变化的区块链网络为删除的区块链网络,从节点管理模块删除指定的区块链网络信息,等待下一个执行周期;

若为新加入或节点信息变更的区块链网络,则从节点管理模块保存新加入或节点信息变更的区块链网络信息;发送消息至节点监控模块,通知其计算新加入或节点信息变更的区块链网络的最新数据节点信息,消息中包含区块链网络标识,节点列表信息;

判断数据变更的区块链网络是否遍历结束,遍历结束则等待下一个执行周期,否则,继续遍历。

节点监控模块维护所有区块链网络的节点状态信息,包括节点在线状态、节点最新区块等信息,节点监控模块触发执行的条件有两种:

(1)节点监控模块有个消息队列,节点管理模块需要更新某个区块链网络的最新数据节点信息时,往消息队列发送请求,节点监控模块接收到节点管理模块发送的计算最新数据节点的请求时,立即处理消息;

(2)在消息队列没有请求消息时,节点监控模块达到一定时间间隔后会计算所有区块链网络的最新数据节点信息。

节点监控模块的主要处理流程:

在判断消息队列是否有未处理消息;

如果有,从消息队列获取一条消息,解析出区块链网络标识和节点列表信息,遍历当前区块链网络的所有节点向当前节点请求最新区块高度,判断节点是否遍历结束,若遍历结束,则计算出所有节点中区块高度最大的节点设为最新数据节点,将当前区块链网络的最新数据节点信息写入节点管理模块。

进一步的,可以定时执行周期的时间是否达到,若达到,则从节点管理模块获取所有区块链网络的信息,遍历所有区块链网络信息、当前区块链网络的所有节点;并向当前节点请求最新区块高度,若节点遍历结束,计算出所有节点中区块高度最大的节点设为最新数据节点,将当前区块链网络的最新数据节点信息写入节点管理模块,直至区块链网络遍历结束。

此外,如图4所示,本发明还公开了一种多区块链网络的访问处理装置400,所述装置400包括处理器410、以及通过通信总线430与所述处理器410连接的存储器420;其中,

所述存储器420,用于存储多区块链网络的访问处理程序;

所述处理器410,用于执行所述多区块链网络的访问处理程序,以实现任一项所述的多区块链网络的访问处理步骤。

以及公开了一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个如图4所示的处理器410执行,以使所述一个或者多个处理器410执行任一项所述的多区块链网络的访问处理步骤。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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