发明内容
本发明的主要目的在于提供一种区块链节点部署方法、设备、存储介质及装置,旨在解决现有技术中无法实现跨平台的区块链节点部署的技术问题。
为实现上述目的,本发明提供一种区块链节点部署方法,区块链节点部署方法包括以下步骤:
在接收到部署请求时,根据部署请求确定第一节点信息;
根据第一节点信息确定目标服务系统及第一接口信息;
根据第一接口信息调用第一接口,以根据第一节点信息在目标服务系统中部署区块链节点。
可选的,根据第一接口信息调用第一接口,以根据第一节点信息在目标服务系统中部署区块链节点之后,还包括:
根据第一节点信息确定目标区块链网络;
根据目标区块链网络确定第二接口信息;
根据第二接口信息调用第二接口,以将区块链节点与目标区块链网络进行连接。
可选的,根据所述目标区块链网络确定第二接口信息,包括:
确定目标区块链网络对应的网络通信信息;
根据网络通信信息从预设通信程序中选取对应的目标通信程序;
根据目标通信程序的接口信息生成第二接口信息。
可选的,根据第二接口信息调用第二接口,以将区块链节点与目标区块链网络进行连接之后,还包括:
获取区块链节点的当前状态信息;
将当前状态信息写入至预设数据库,以使预设数据库基于当前状态信息生成反馈信息;
接收反馈信息,并将反馈信息进行展示。
可选的,根据第一接口信息调用第一接口,以根据第一节点信息在目标服务系统中部署区块链节点,包括:
根据第一接口信息调用第一接口,以获取目标服务系统对应的第三接口信息;
根据第一节点信息和第三接口信息确定第三接口;
调用第三接口,以在目标服务系统中部署区块链节点。
可选的,根据第一节点信息和第三接口信息确定第三接口,包括:
根据第一节点信息确定节点业务信息;
将节点业务信息与第三接口信息进行匹配,获得目标接口信息;
将目标接口信息对应的接口作为第三接口。
可选的,目标服务系统包括基于Docker架构的第一服务系统、基于Kubernetes架构的第二服务系统、基于OS架构的第三服务系统或基于Bass架构的第四服务系统中的任意一个或多个。
此外,为实现上述目的,本发明还提出一种区块链节点部署装置,区块链节点部署装置包括:
接收模块,用于在接收到部署请求时,根据部署请求确定第一节点信息;
调度模块,用于根据第一节点信息确定目标服务系统及第一接口信息;
部署模块,用于根据第一接口信息调用第一接口,以根据第一节点信息在目标服务系统中部署区块链节点。
此外,为实现上述目的,本发明还提出区块链节点部署设备,区块链节点部署设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的区块链节点部署程序,区块链节点部署程序被处理器执行时实现如上文所述的区块链节点部署方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,存储介质上存储有区块链节点部署程序,区块链节点部署程序被处理器执行时实现如上文所述的区块链节点部署方法的步骤。
在本发明中,区块链服务平台在接收到部署请求时,可根据部署请求确定第一节点信息;再根据第一节点信息确定目标服务系统及第一接口信息;根据第一接口信息调用第一接口,以根据第一节点信息在目标服务系统中部署区块链节点。本发明的区块链服务平台以调用服务系统接口的方式,实现对服务系统中功能的调用,从而在服务系统中部署区块链节点。操作者仅需要在区块链服务平台中进行操作,即可实现跨平台的部署操作。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的区块链节点部署设备结构示意图。
如图1所示,该区块链节点部署设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、操作者接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。操作者接口1003可以包括显示屏(Display),可选操作者接口1003还可以包括标准的有线接口、无线接口,对于操作者接口1003的有线接口在本发明中可为USB接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(Random Access Memory,RAM)存储器,也可以是稳定的存储器(Non-volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对区块链节点部署设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,认定为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、操作者接口模块以及区块链节点部署程序。
在图1所示的区块链节点部署设备中,网络接口1004主要用于连接后台服务器,与所述后台服务器进行数据通信;操作者接口1003主要用于连接操作者设备;所述区块链节点部署设备通过处理器1001调用存储器1005中存储的区块链节点部署程序,并执行本发明实施例提供的区块链节点部署方法。
基于上述硬件结构,提出本发明区块链节点部署方法的实施例。
参照图2,图2为本发明区块链节点部署方法第一实施例的流程示意图,提出本发明区块链节点部署方法第一实施例。
在第一实施例中,所述区块链节点部署方法包括以下步骤:
步骤S10:在接收到部署请求时,根据部署请求确定第一节点信息。
应理解的是,本实施例的执行主体是为所述区块链节点部署设备,该区块链节点部署设备具有图像处理、数据通信及程序运行等功能,具有数据处理、数据通信及程序运行等功能,所述基于区块链的农产品溯源设备可以为服务器等计算机设备,本实施例以服务器为例进行说明,当然,还可为其他具有相似功能的设备,本实施方式对此不加以限制。
为了便于对本发明所涉及的流程进行实施及维护,服务器上可配置Baas(Blockchain as a Service,区块链即服务)平台系统,Baas平台也可作为本实施例的执行主体。Baas平台可包括应用层、功能层、数据采集层及数据存储。对于Baas平台的构建方式,已有成熟的技术,本实施方式对此不在赘述。
需要说明的是,部署请求可以为web请求。操作者可通过浏览器登录Bass平台,并基于Bass平台上预设显示界面中的控件输入部署指令,浏览器根据该部署指令向Bass平台的服务器发起部署请求。或者,部署请求还可以API调用请求。区块链节点部署流程对应的代码可封装成一应用程序,并向外提供相应的API,以供其他操作者调用。其他操作者可通过向Bass平台发起API调用请求以调用该应用程序执行区块链节点部署流程。当然,部署请求还可以为其他形式,本实施方式对此不加以限制。
第一节点信息是指需要部署的区块链节点信息。例如,区块链名、节点名、节点数量、部署节点架构或节点类型等信息。区块链节点信息可由操作者在发起部署请求时直接填入。Baas平台在接收到部署请求时,通过对部署请求中的数据进行解析,获得第一节点信息。
在本实施方式中,需要部署的区块链节点可以为Fabric节点。Fabric利用现有成熟的技术来组合而成的一个区块链技术的实现。它是一种允许可插拔实现各种功能的的模块化架构。它具有强大的容器技术,来承载各种主流语言来编写的智能合约。
步骤S20:根据第一节点信息确定目标服务系统及第一接口信息。
需要说明的是,本实施方式所需要部署的区块链节点不在本Baas平台内,而需要在外部环境中实现对区块链节点的部署。根据实际需求不同,外部环境所采用的基本架构也不同,例如,Docker架构、Kubernetes架构、OS架构或者其他Bass平台。因此,目标服务系统可包括基于Docker架构的第一服务系统、基于Kubernetes架构的第二服务系统、基于OS架构的第三服务系统或基于Bass架构的第四服务系统中的任意一个或多个。
由于操作者在发起部署请求时会指定目标服务系统的类型,故,Baas平台可通过对第一节点信息进行判断即可确定目标服务系统。当然,若Baas平台没有在第一节点信息中找到相应的目标服务系统信息,则可以通过调用预设的交互控件提醒操作者缺少目标服务系统的信息。同时,再基于交互控件接收操作者补充的目标服务系统的信息。
第一接口信息是指对应的部署应用程序的API信息。为提高区块链节点部署的效率,本实施方式对将针对不同服务系统的部署流程对应的代码进行封装,并提供相应的调用接口。Baas平台在确定目标服务系统的架构类型后,可根据该架构类型确定对应的部署应用程序。
在具体实现时,将不同类型的目标服务系统对应的部署应用程序之间的对应关系编写成映射文件,并存在在储存器中。Baas平台在需要时,可通过读取该映射文件获得对应关系,从而确定对应的部署应用程序的API信息。当然,还可以将不同节点类型在不同不同服务系统的部署流程对应的代码进行封装,并形成相应的映射文件,以使Baas平台更准确地确定对应的第一接口信息。
步骤S30:根据第一接口信息调用第一接口,以根据第一节点信息在目标服务系统中部署区块链节点。
由前述可知,第一接口信息中包括了部署应用程序的API信息,因此,第一接口是指该对应的部署应用程序的API。Baas平台根据第一节点信息所定义的需要部署的区块链节点信息对该部署应用程序内部功能进行调用,从而完成区块链节点的部署。
需要说明的是,部署操作可以具体为节点创建操作或者节点删除操作。操作者可基于本实施方式提出的Baas平台,实现跨平台的区块链节点的创建和删除。当然,还可以根据需求设置其他操作,本实施方式对此不加以限制。
在第一实施例中,区块链服务平台在接收到部署请求时,可根据部署请求确定第一节点信息;再根据第一节点信息确定目标服务系统及第一接口信息;根据第一接口信息调用第一接口,以根据第一节点信息在目标服务系统中部署区块链节点。本实施例的区块链服务平台以调用服务系统接口的方式,实现对服务系统中功能的调用,从而在服务系统中部署区块链节点。操作者仅需要在区块链服务平台中进行操作,即可实现跨平台的部署操作。
参照图3,图3为本发明区块链节点部署方法第二实施例的流程示意图,基于上述第一实施例,提出本发明区块链节点部署方法的第二实施例。
在第二实施例中,步骤S30之后,还包括:
步骤S40:根据第一节点信息确定目标区块链网络。
需要说明的是,目标区块链网络是指Baas平台中已经运行的区块链网络。为了使新部署的区块链节点能够正常运行,还需要对新部署的区块链节点进行入网,使其与已有区块链进行组网。
通常,Baas平台中可维护多条区块链,因此,在进行组网前还需要确定进行组网的区块链网络。操作者在发起部署请求时会指定区块链名,该区块链名对应的区块链需要组网的区块链。故,Baas平台可通过对第一节点信息进行判断即可确定目标区块链网络。当然,若Baas平台没有在第一节点信息中找到目标区块链网络的信息,则可以通过调用预设的交互控件提醒操作者缺少目标区块链网络的信息。同时,再基于交互控件接收操作者补充的目标区块链网络的信息。
步骤S50:根据目标区块链网络确定第二接口信息。
需要说明的是,第二接口信息是指Baas平台用于网络通信的API信息。由于新部署的区块链节点与目标区块链网络之间属于不同的运行环境,因此,组网过程也通过对API进行调用实现。
在具体实现时,步骤S50可以为:确定目标区块链网络对应的网络通信信息;根据网络通信信息从预设通信程序中选取对应的目标通信程序;根据目标通信程序的接口信息生成第二接口信息。
可以理解的是,由于各区块链的不同需求,已运行的区块链的网络通信方式可能存在区别,因此,在进行组网之前,还需求确定目标区块链网络对应的网络通信信息。其中,网络通信信息包括所使用的网络通信协议、目标区块链网络中各节点的IP等信息。
预设通信程序是指预设配置完成的用于实现通信功能的应用程序,例如,提供数据转换功能的应用程序,或者提供DNS服务的应用程序中。Baas平台在进行组网时,基于目标区块链网络对应的网络通信信息确定所需要的目标通信程,再根据目标通信程序对应的API信息生成第二接口信息。
步骤S60:根据第二接口信息调用第二接口,以将区块链节点与目标区块链网络进行连接。
由前述可知,第二接口信息中包括了通信程序的API信息,因此,第二接口是指该通信程序的API。Baas平台通过对该通信程序的API进行调用,实现区块链节点与目标区块链网络之间的通信,从而完成组网过程。
此外,为了使操作者及时了解区块链节点的部署情况,步骤S60之后,还包括:获取区块链节点的当前状态信息;将当前状态信息写入至预设数据库,以使预设数据库基于当前状态信息生成反馈信息;接收反馈信息,并将反馈信息进行展示。
可以理解的是,为了对区块链节点的部署过程进行记录,本实施方式还将区块链节点的当前状态信息写入数据库中,预设数据库可以为Status数据库。同时,预设数据库在对当前状态信息写入完成后生成反馈信息,该反馈信息用于对区块链节点的当前状态进行标识,其可以为数字等。操作者可基于预先定义的反馈信息与状态信息之间的对应关系,确定区块链节点的当前状态。
在第二实施例中,Baas平台在完成区块链节点部署后,还根据第一节点信息确定目标区块链网络,再根据目标区块链网络确定第二接口信息,再根据第二接口信息调用第二接口,以将区块链节点与目标区块链网络进行连接。本实施方式还可以实现对新部署的区块链节点的自动化组网流程,提高操作的便利性,降低区块链的运维难度与成本。
参照图4,图4为本发明区块链节点部署方法第三实施例的流程示意图,基于上述第一实施例和第二实施例,提出本发明区块链节点部署方法的第三实施例。
在第三实施例中,步骤S30具体包括:
步骤S301:根据第一接口信息调用第一接口,以获取目标服务系统对应的第三接口信息。
需要说明的是,第三接口信息为目标服务系统的可调用API信息。通常,目标服务系统为开源系统,其配置有相应的SDK(软件开发工具包),并向开发者提供相应的API以便于对SDK中的相关功能的调用。本实施方式主要通过对目标服务系统的API进行调用,基于目标服务系统的SDK,完成区块链节点的部署。
以Kubernetes为例,其API概述中包括资源分类、资源对象及资源操作等。资源分类中包括Workloads:用于在集群中管理和运行容器;Discovery&LB:用于将Workloads“缝合”到一个可从外部访问的负载均衡的服务中;Config&Storage:用于将初始化数据注入到应用程序中,并保留容器外部的数据。
在具体实现时,对于不同目标服务系统的类型所需要调用的API信息可预先进行配置,并生成配置文件存储在存储器中。Bass平台在根据第一接口信息调用第一接口,对该配置文件进行读取,从而获取目标服务系统对应的第三接口信息。
步骤S302:根据第一节点信息和第三接口信息确定第三接口。
其中,第三接口是指需要调用的接口,可以理解的是,根据需要部署的区块链节点的类型不同,其需要实现的相关功能也不同,故,Bass平台还需要根据区块链节点的类型确定实际需要调用的接口。
在具体实现时,步骤S302可以为:根据第一节点信息确定节点业务信息;将节点业务信息与第三接口信息进行匹配,获得目标接口信息;将目标接口信息对应的接口作为第三接口。
需要说明的是,节点业务信息是指需要部署的区块链节点所需要执行的功能信息。通常,区块链节点的类型可以包括客户端节点、普通节点、排序服务节点或CA节点,其中普通节点还包括背书节点、锚节点或主节点。不同节点需要实现的功能不同,因此,在进行区块链节点部署时,所需要的调用的目标服务系统的API也不同。
步骤S303:调用第三接口,以在目标服务系统中部署区块链节点。
由前述可知,第三接口为目标服务系统所提供的API,根据区块链节点所需要的实现的功能调用相应的的API,完成区块链节点的部署。对于API的调用方式,已有成熟的技术,本实施方式在此不在赘述。
在第三实施例中,Bass平台根据第一接口信息调用第一接口,以获取目标服务系统对应的第三接口信息;再根据第一节点信息和第三接口信息确定第三接口;再调用第三接口,以在目标服务系统中部署区块链节点。本实施方式基于目标服务系统的SDK,通过API进行调用,能够实现在不同类似的服务架构中对区块链节点进行部署,提高区块链节点部署的灵活性。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有区块链节点部署程序,所述区块链节点部署程序被处理器执行时实现如上文所述的区块链节点部署方法的步骤。
由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
此外,参照图5,图5为本发明区块链节点部署装置第一实施例的结构框图,本发明实施例还提出一种区块链节点部署装置。
在本实施例中,区块链节点部署装置包括:
接收模块10,用于在接收到部署请求时,根据部署请求确定第一节点信息;
调度模块20,用于根据第一节点信息确定目标服务系统及第一接口信息;
部署模块30,用于根据第一接口信息调用第一接口,以根据第一节点信息在目标服务系统中部署区块链节点。
在本实施例中,区块链节点部署装置在接收到部署请求时,可根据部署请求确定第一节点信息;再根据第一节点信息确定目标服务系统及第一接口信息;根据第一接口信息调用第一接口,以根据第一节点信息在目标服务系统中部署区块链节点。本实施例的区块链节点部署装置以调用服务系统接口的方式,实现对服务系统中功能的调用,从而在服务系统中部署区块链节点。操作者仅需要在区块链服务平台中进行操作,即可实现跨平台的部署操作。
在一实施例中,区块链节点部署装置还包括组网模块,组网模块用于根据第一节点信息确定目标区块链网络;根据目标区块链网络确定第二接口信息;根据第二接口信息调用第二接口,以将区块链节点与目标区块链网络进行连接。
在一实施例中,组网模块还用于确定目标区块链网络对应的网络通信信息;根据网络通信信息从预设通信程序中选取对应的目标通信程序;根据目标通信程序的接口信息生成第二接口信息。
在一实施例中,组网模块还用于获取区块链节点的当前状态信息;将当前状态信息写入至预设数据库,以使预设数据库基于当前状态信息生成反馈信息;接收反馈信息,并将反馈信息进行展示。
在一实施例中,部署模块30,还用于根据第一接口信息调用第一接口,以获取目标服务系统对应的第三接口信息;根据第一节点信息和第三接口信息确定第三接口;调用第三接口,以在目标服务系统中部署区块链节点。
在一实施例中,部署模块30,还用于根据第一节点信息确定节点业务信息;将节点业务信息与第三接口信息进行匹配,获得目标接口信息;将目标接口信息对应的接口作为第三接口。
本发明所述区块链节点部署装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。词语第一、第二、以及第三等的使用不表示任何顺序,可将这些词语解释为名称。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器镜像(Read Only Memory image,ROM)/随机存取存储器(Random AccessMemory,RAM)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。