CN109976774B - 区块链节点部署方法、装置、设备和存储介质 - Google Patents

区块链节点部署方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN109976774B
CN109976774B CN201910288932.3A CN201910288932A CN109976774B CN 109976774 B CN109976774 B CN 109976774B CN 201910288932 A CN201910288932 A CN 201910288932A CN 109976774 B CN109976774 B CN 109976774B
Authority
CN
China
Prior art keywords
container
target
block chain
block
tool
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910288932.3A
Other languages
English (en)
Other versions
CN109976774A (zh
Inventor
张武斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qidi Block Chain Technology Development Co ltd
Original Assignee
Beijing Qidi Block Chain Technology Development Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qidi Block Chain Technology Development Co ltd filed Critical Beijing Qidi Block Chain Technology Development Co ltd
Priority to CN201910288932.3A priority Critical patent/CN109976774B/zh
Publication of CN109976774A publication Critical patent/CN109976774A/zh
Application granted granted Critical
Publication of CN109976774B publication Critical patent/CN109976774B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种区块链节点部署方法、装置、设备和存储介质。该方法包括:调用Ansible工具与目标节点建立通信连接,并在所述目标节点中搭建Kubernetes集群;调用所述Ansible工具获取目标区块链版本镜像文件,依据所述目标区块链版本镜像文件,向所述目标节点的Kubernetes集群中创建容器,并在所述容器中部署区块链节点。本发明实施例通过Ansible工具的调用,避免了对待部署节点的入侵,同时通过在目标节点中搭建Kubernetes集群,利用Kubernetes集群支持多种容器技术的特性,实现跨平台的区块链节点部署,提高区块链节点的部署效率。

Description

区块链节点部署方法、装置、设备和存储介质
技术领域
本发明实施例涉及区块链技术领域,尤其涉及一种区块链节点部署方法、装置、设备和存储介质。
背景技术
随着互联网技术的不断发展,一种去中心化且公开透明的区块链技术应运而生。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
目前可以采用容器技术向用户或企业进行区块链节点的部署,以向用户或企业提供区块链服务。平台端可以采用Saltstack管理工具,通过预先在待部署节点中安装Saltstack代理,以入侵的方式管理待部署节点并调用待部署节点中的代理,实现对待部署节点进行管理。同时利用Docker Swarm容器编排技术实现容器跨节点的编排和调用。
然而,现有技术对于待部署节点的入侵性太强,降低待部署节点的稳定性,且对于容器技术的支持程度有限,无法实现跨平台的区块链节点部署,降低区块链节点的部署效率。
发明内容
本发明实施例提供了一种区块链节点部署方法、装置、设备和存储介质,能够避免对待部署节点的入侵,实现跨平台的区块链节点部署,提高区块链节点的部署效率。
第一方面,本发明实施例提供了一种区块链节点部署方法,包括:
调用Ansible工具与目标节点建立通信连接,并在所述目标节点中搭建Kubernetes集群;
调用所述Ansible工具获取目标区块链版本镜像文件,依据所述目标区块链版本镜像文件,向所述目标节点的Kubernetes集群中创建容器,并在所述容器中部署区块链节点。
第二方面,本发明实施例提供了一种区块链节点部署装置,包括:
K8s集群搭建模块,用于调用Ansible工具与目标节点建立通信连接,并在所述目标节点中搭建Kubernetes集群;
区块链节点部署模块,用于调用所述Ansible工具获取目标区块链版本镜像文件,依据所述目标区块链版本镜像文件,向所述目标节点的Kubernetes集群中创建容器,并在所述容器中部署区块链节点。
第三方面,本发明实施例提供了一种设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的区块链节点部署方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的区块链节点部署方法。
本发明实施例通过调用Ansible工具,与目标节点建立通信连接,并在目标节点中搭建Kubernetes集群。从而基于目标节点中搭建的Kubernetes集群,在调用Ansible工具获取目标区块链版本镜像文件之后,依据目标区块链版本镜像文件,在目标节点的Kubernetes集群中创建容器,并在容器中部署区块链节点。本发明实施例通过Ansible工具的调用,避免了对待部署节点的入侵,同时通过在目标节点中搭建Kubernetes集群,利用Kubernetes集群支持多种容器技术的特性,实现跨平台的区块链节点部署,提高区块链节点的部署效率。
附图说明
图1为本发明实施例一提供的一种区块链节点部署方法的流程图;
图2为本发明实施例一提供的区块链节点部署***的结构示例图;
图3为本发明实施例二提供的一种区块链节点部署方法的流程图;
图4为本发明实施例三提供的一种区块链节点部署方法的流程图;
图5为本发明实施例四提供的一种区块链节点部署装置的结构示意图;
图6为本发明实施例五提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种区块链节点部署方法的流程图,本实施例可适用于远程批量部署区块链节点的情况,该方法可由一种区块链节点部署装置来执行,该装置可以采用软件和/或硬件的方式实现,优选是配置于远程部署平台。该方法具体包括如下:
步骤110、调用Ansible工具与目标节点建立通信连接,并在目标节点中搭建Kubernetes集群。
在本发明具体实施例中,用于远程批量部署区块链节点的远程部署平台中安装有Ansible工具。其中,Ansible工具是一款简单的无代理IT的自动化运维工具,集成了众多运维工具,例如puppet、cfengine、chef、func以及fabric等,用于实现批量***部署、批量程序部署或批量运行命令等功能。
本实施例中,目标节点是指远程部署平台所要进行区块链节点部署的目标节点,目标节点可以是物理节点,例如电脑等,还可以是虚拟机节点,例如云。可以通过Ansible工具中的host inventory来确定目标节点。其中,host inventory指定操作的节点,是在一个配置文件里面定义监控的节点。
本实施例的目标节点采用Kubernetes集群进行容器的调度和编排。其中,容器是指直接运行在操作***内核之上的用户空间,容器相当于集装箱,其中部署有应用程序,容器技术可以让多个独立的用户空间运行在同一台宿主机上,从而通过容器技术可以以容器的方式将应用于操作***当中,提升应该的部署效率。Kubernetes(简称K8s)是一种开源的一个容器编排引擎,用于管理多个主机上的容器化的应用,目标是让部署容器化的应用简单并且高效,提供了跨主机集群的自动部署、扩展、规划、更新和维护的一种机制,支持多种容器技术,例如Docker和RKT等。内部提供负载均衡、服务发现、注册等功能,满足分布式架构特性。
本实施例中,Ansible工具中可以预先存储各个待维护节点的维护信息,例如IP地址,还可以包括已部署区块链的版本信息等。Ansible工具不需要在目标节点上部署代理,在远程部署平台中安装Ansible工具后,Ansible工具可以预先生成密钥对,密钥对包含公钥和私钥,并将公钥分发给各个待维护节点,保存在待维护节点的存储空间内,以使Ansible工具基于待维护节点的IP地址,通过公私钥方式与对应的待维护的目标节点建立通信连接。从而在远程部署平台与目标节点建立通信连接的基础上,远程部署平台调用Ansible工具,生成Kubernetes配置文件,实现在目标节点中搭建Kubernetes集群。
具体的,调用Ansible工具生成Kubernetes配置文件,并添加至Ansible工具的第一剧本组件中;启动Ansible工具中的第一剧本组件,以使目标节点根据第一剧本组件,在目标节点中执行Kubernetes配置文件,在目标节点中搭建Kubernetes集群。Kubernetes集群的搭建方式将在下述实施例中进行具体解说说明。
步骤120、调用Ansible工具获取目标区块链版本镜像文件,依据目标区块链版本镜像文件,向目标节点的Kubernetes集群中创建容器,并在容器中部署区块链节点。
在本发明具体实施例中,镜像是容器生命周期中的构建或者打包阶段,而容器则是启动或者执行阶段。容器基于镜像启动,一旦容器启动完成后,就可以对容器中部署的应用进行登录、访问以及使用等。本实施例中所要部署的是区块链节点,区块链相当于容器中部署的应用。由于区块链可能同时存在多个版本,因此预先将不同区块链版本镜像文件进行存储,构成容器镜像库。其中,基于容器技术的不同,该镜像可以为不同容器技术的镜像文件。
具体的,目标区块链版本是指目标节点所要部署的区块链版本,可以通过用户在远程部署平台操作界面上的操作,确定目标区块链版本。远程部署平台调用Ansible工具,从容器镜像库中获取目标区块链版本镜像文件,依据目标区块链版本镜像文件,向目标节点的Kubernetes集群中创建容器,并启动容器,以在容器中部署区块链节点。其中,部署后的容器中部署有区块,由于容器在每次创建时,容器的IP地址都会发生变化,因此可以基于区块中的信息来构建不同区块之间的连接关系,完成区块链构建,实现区块链节点的部署。关于Kubernetes集群中区块链节点的部署将在下述实施例中进行具体解说说明。
此外,目标节点中还可以安装容器监测插件,用于对目标节点的Kubernetes集群中部署的容器进行监测,确定各容器的容器状态。从而Kubernetes集群能够依据各部署容器的容器状态,对容器进行调度和编排。
示例性的,图2为区块链节点部署***的结构示例图。如图2所示,区块链节点部署***包括远程部署平台和至少一个待维护的目标节点。远程部署平台通过Ansible工具对目标节点进行远程管理,在目标节点中搭建Kubernetes集群,基于远程部署平台中存储的或者从云端获取的各个区块链版本对应的容器镜像文件,以容器的方式向目标节点中部署区块链节点。
本实施例的技术方案,通过调用Ansible工具,与目标节点建立通信连接,并在目标节点中搭建Kubernetes集群。从而基于目标节点中搭建的Kubernetes集群,在调用Ansible工具获取目标区块链版本镜像文件之后,依据目标区块链版本镜像文件,在目标节点的Kubernetes集群中创建容器,并在容器中部署区块链节点。本发明实施例通过Ansible工具的调用,避免了对待部署节点的入侵,同时通过在目标节点中搭建Kubernetes集群,利用Kubernetes集群支持多种容器技术的特性,实现跨平台的区块链节点部署,提高区块链节点的部署效率。
实施例二
本实施例在上述实施例一的基础上,提供了区块链节点部署方法的一个优选实施方式,能够在远程部署平台中通过Ansible工具远程管理待部署的节点。其中,步骤110具体可以包括如下步骤310-320,步骤120可以包括如下步骤330-350。图3为本发明实施例二提供的一种区块链节点部署方法的流程图,如图3所示,该方法包括以下具体:
步骤310、调用Ansible工具生成Kubernetes配置文件,并添加至Ansible工具的第一剧本组件中。
在本发明具体实施例中,Ansible工具还包括剧本组件,即playbooks,用于进行对远程的节点进行配置的组件,其内可描述对远程的接地那进行操作的步骤,解决复杂的IT环境中资源分散、服务间调用问题,为此需要对资源、服务以统一的方式管理各类分散资源并集中编排。本实施例不对剧本组件进行具体区分,不同剧本组件可以规定了不同任务的处理规则。其中,可以依据Ansible工具对目标节点进行管理以及部署区块链节点的执行顺序,将首先进行Kubernetes集群搭建的剧本组件确定为第一剧本组件,其中规定了Kubernetes集群的搭建步骤。
具体的,在远程部署平台与目标节点建立通信连接的基础上,远程部署平台调用Ansible工具,根据Ansible工具中预设的Kubernetes模板生成Kubernetes配置文件。并将Kubernetes配置文件添加至Ansible工具的第一剧本组件中,以指定后续目标节点中Kubernetes集群的搭建规则。
其中,Ansible工具中预设的Kubernetes模板可以为预先设置的脚本文件,脚本文件是确定一系列控制计算机进行运算操作动作的组合,在其中可以实现逻辑分支。由于Ansible工具可以采用任意语言开发,相应的脚本文件也可以采用任何适用于编写脚本文件的语言进行编写,例如可以优先选择Shell语言编写。进而在基于目标节点进行Kubernetes集群搭建的过程中,可以从预先存储的多个脚本文件中确定与目标接地那对应的脚本文件,并执行该脚本文件。在执行的过程中,还可以将远程部署平台中用户输入的配置参数写入到配置模板中,自动生成Kubernetes配置文件。
步骤320、启动Ansible工具中的第一剧本组件,以使Ansible工具根据所述第一剧本组件,在目标节点中执行Kubernetes配置文件,并在目标节点中搭建Kubernetes集群。
在本发明具体实施例中,当目标节点和Kubernetes配置文件确定后,远程部署平台自动启动Ansible工具中的第一剧本组件,根据Kubernetes配置文件中创建的参数,在目标节点中执行Kubernetes配置文件,实现在目标节点中Kubernetes集群的搭建。
步骤330、调用Ansible工具,从容器镜像库中获取目标区块链版本镜像文件。
在本发明具体实施例中,Kubernetes支持多种容器技术,例如Docker和RKT等,因此可以将根据各种容器技术以及各个区块链版本,预先将不同容器技术和不同区块链版本对应的容器镜像构建为容器镜像库,存储在远程部署平台,或者远程部署平台可以通信的云端。从而在目标节点中搭建Kubernetes集群之后,远程部署平台根据目标区块链版本信息,自动调用Ansible工具,从容器镜像库中获取目标区块链版本镜像文件。
步骤340、通过Ansible工具依据目标区块链版本镜像文件,确定目标节点维护信息的区块链版本信息,生成容器部署配置文件并添加至Ansible工具的第二剧本组件中。
在本发明具体实施例中,不对剧本组件进行具体区分,不同剧本组件可以规定了不同任务的处理规则。其中,可以依据Ansible工具对目标节点进行管理以及部署区块链节点的执行顺序,将进行容器部署的剧本组件确定为第二剧本组件,其中规定了容器的部署步骤。
具体的,Ansible工具中可以预先存储各个待维护节点的维护信息,例如IP地址,还可以包括已部署区块链的版本信息等。因此,Ansible工具可以依据获取的目标区块链版本镜像文件,确定待部署的区块链的版本信息,并添加至Ansible工具中目标节点的维护信息中,或者更新Ansible工具中目标节点已部署区块链的版本信息,从而生成容器部署配置文件,并添加至Ansible工具的第二剧本组件中。
值得注意的是,步骤310-320与步骤330-340之间的执行顺序不受限制。
步骤350、启动Ansible工具中的第二剧本组件,以使Ansible工具根据第二剧本组件,基于目标区块链版本镜像文件,在目标节点的Kubernetes集群中创建并启动目标容器,以向Kubernetes集群的目标容器中部署区块链节点。
在本发明具体实施例中,当Kubernetes集群和容器部署配置文件确定后,远程部署平台自动启动Ansible工具中的第二一剧本组件,根据容器部署配置文件中创建的参数以及目标区块链版本镜像文件,在目标节点的Kubernetes集群中执行容器部署配置文件,通过在Kubernetes集群中创建并启动目标容器,实现向Kubernetes集群的目标容器中部署区块链节点。从而区块以容器的方式独立配置于目标节点当中,打破节点环境的限制。关于Kubernetes集群中区块链节点的部署将在下述实施例中进行具体解说说明。
本实施例的技术方案调用Ansible工具,在与目标节点建立通信连接的基础上,通过调用Ansible工具生成Kubernetes配置文件,以在目标节点中搭建Kubernetes集群。从而自动调用Ansible工具从容器镜像库中获取目标区块链版本镜像文件,生成容器部署配置,以在目标节点的Kubernetes集群中创建容器,并在容器中部署区块链节点。本发明实施例通过Ansible工具的调用,避免了对待部署节点的入侵,同时通过在目标节点中搭建Kubernetes集群,利用Kubernetes集群支持多种容器技术的特性,实现跨平台的区块链节点部署,提高区块链节点的部署效率。
实施例三
本实施例在上述实施例二的基础上,提供了区块链节点部署方法的一个优选实施方式,能够在目标节点中通过构建的Kubernetes集群对容器进行调度和编排。其中,步骤350具体可以包括如下步骤440-460。图4为本发明实施例三提供的一种区块链节点部署方法的流程图,如图4所示,该方法包括以下具体:
步骤410、调用Ansible工具与目标节点建立通信连接,并在目标节点中搭建Kubernetes集群。
步骤420、调用Ansible工具,从容器镜像库中获取目标区块链版本镜像文件。
步骤430、通过Ansible工具依据目标区块链版本镜像文件,确定目标节点维护信息的区块链版本信息,生成容器部署配置文件并添加至Ansible工具的第二剧本组件中。
步骤440、启动Ansible工具中的第二剧本组件,向目标节点中Kubernetes集群的目标容器中部署区块,以使Kubernetes集群动态抓取容器中的目标区块。
在本发明具体实施例中,当Kubernetes集群和容器部署配置文件确定后,远程部署平台自动启动Ansible工具中的第二一剧本组件,根据容器部署配置文件中创建的参数以及目标区块链版本镜像文件,在目标节点的Kubernetes集群中执行容器部署配置文件,通过在Kubernetes集群中创建并启动目标容器,实现向Kubernetes集群的各个目标容器中部署区块。其中,部署后的每一容器中都部署有独立的一个区块,由于容器在每次创建时,容器的IP地址都会发生变化,因此原有镜像中各区块之间基于新建容器的连接关系有所改变。从而本实施例中,Kubernetes集群从区块所部署的容器中,动态抓取任意一个容器中的区块作为目标区块,并获取目标区块信息,例如IP地址等。
步骤450、通过Kubernetes集群依据目标区块的IP生成区块链节点间配置文件,并添加至Kubernetes集群的全局配置中心中。
在本发明具体实施例中,Kubernetes集群包括全局配置中心,即ConfigMap。全局配置中心用于将应用所需的配置信息与程序进行分离,使应用程序更好的复用,在大规模容器集群环境中,对应用进行统一配置管理。Kubernetes集群通过全局配置中心来实现对容器中区块的配置管理。
具体的,Kubernetes集群依据目标区块的IP,生成区块链节点间配置文件,该区块链节点间配置文件包括区块连接所需的配置信息,用于让各剩余区块与目标区块建立通信连接。区块链节点间配置文件可以为脚本文件,例如Shell脚本文件。
步骤460、通过Kubernetes集群启动各剩余容器中的区块,以使各剩余区块访问全局配置中心,读取区块链节点间配置文件,构建各区块之间的连接关系。
在本发明具体实施例中,Kubernetes集群全局控制各个容器,启动目标区块所在容器之外的剩余容器中的区块。从而各个剩余区块访问全局配置中心,并读取区块链节点间配置文件,各个剩余区块获知与目标区块建立通信连接,用于构建区块链的连接关系。
可选的,通过Kubernetes集群启动各剩余容器中的区块,以使各剩余区块访问全局配置中心,依据读取的区块链节点间配置文件,向目标区块进行注册,以使目标区块获得各区块中的区块信息;通过目标区块向各剩余区块发送各区块中的区块信息,以使各剩余区块获得各区块中的区块信息,并依据各区块中的区块信息构建各区块之间的连接关系。
本实施例中,各个剩余区块访问全局配置中心,并读取区块链节点间配置文件,各个剩余区块依据区块链节点间配置文件向目标区块进行注册,与目标区块建立通信连接,从而目标区块可以获得所有区块中记录的区块信息,并向各剩余区块发送所有区块中的区块信息,使得各区块中的区块信息得到共享。由于各区块中均对区块信息有消息的记载,例如在某个时间,某个区块作为记账节点,对区块链中的事务进行处理,并得以其他区块验证,记录在区块当中,或者生成新的区块连接在区块链中。因此在各剩余区块获得各区块中的区块信息之后,即可依据所有的区块信息,确定区块与区块之间的连接关系,构成区块链,从而完成区块链节点在目标节点中的部署,避免了对各个区块都要单独编写配置文件。
步骤470、通过目标节点中的容器监测插件对Kubernetes集群中部署的容器进行监测,确定各容器的容器状态。
在本发明具体实施例中,目标节点中还可以安装容器监测插件,用于对目标节点的Kubernetes集群中部署的容器进行监测。通过容器监测插件对Kubernetes集群中部署的容器进行实时或定时地监测,Kubernetes集群可以确定各容器的容器状态。其中,容器状态数据至少可以包括性能数据和状态数据等。性能数据可以为CPU占用率和内存占用率等,状态数据可以包括活动状态和死机状态等。
步骤480、通过Kubernetes集群依据各部署容器的容器状态,对容器进行调度和编排。
在本发明具体实施例中,Kubernetes集群依据各部署容器的容器状态,对容器进行调度和编排。示例性的,Kubernetes集群依据各容器的容器状态,若判断某一容器的CPU占用率较高,则可以为该容器***出一个新容器,从而分担该容器的任务处理量;再例如,若判断某一容器为死机状态,则可以对该容器进行重启,从而提高事务的处理能力。
本实施例的技术方案,通过调用Ansible工具在目标节点中搭建Kubernetes集群,基于目标节点中搭建的Kubernetes集群,在目标节点的Kubernetes集群中创建容器,依据目标区块链版本镜像文件在容器中部署区块。从而通过Kubernetes集群动态抓取区块并生成区块链节点间配置文件,并添加至Kubernetes集群的全局配置中心中,实现区块之间的动态发现,避免了对各个区块都要单独编写配置文件,整个操作过程是幂等的,大幅度提高了区块链节点的部署效率。本实施例中,整个批量部署过程都是自动化完成的,避免了人工低效率的配置,使得容器技术封装的区块链节点摆脱对平台环境的依赖,部署方式更加灵活。
实施例四
图5为本发明实施例四提供的一种区块链节点部署装置的结构示意图,本实施例可适用于远程批量部署区块链节点的情况,该装置可实现本发明任意实施例所述的区块链节点部署方法。该装置具体包括:
K8s集群搭建模块510,用于调用Ansible工具与目标节点建立通信连接,并在所述目标节点中搭建Kubernetes集群;
区块链节点部署模块520,用于调用所述Ansible工具获取目标区块链版本镜像文件,依据所述目标区块链版本镜像文件,向所述目标节点的Kubernetes集群中创建容器,并在所述容器中部署区块链节点。
可选的,所述K8s集群搭建模块510具体用于:
调用所述Ansible工具生成Kubernetes配置文件,并添加至所述Ansible工具的第一剧本组件中;
启动所述Ansible工具中的所述第一剧本组件,以使所述Ansible工具根据所述第一剧本组件,在所述目标节点中执行所述Kubernetes配置文件,并在所述目标节点中搭建Kubernetes集群。
可选的,所述区块链节点部署模块520具体用于:
调用所述Ansible工具,从容器镜像库中获取所述目标区块链版本镜像文件;
通过所述Ansible工具依据所述目标区块链版本镜像文件,确定目标节点维护信息的区块链版本信息,生成容器部署配置文件并添加至所述Ansible工具的第二剧本组件中;
启动所述Ansible工具中的所述第二剧本组件,以使所述Ansible工具根据所述第二剧本组件,基于所述目标区块链版本镜像文件,在所述目标节点的Kubernetes集群中创建并启动目标容器,以向所述Kubernetes集群的目标容器中部署区块链节点。
可选的,所述区块链节点部署模块520具体用于:
启动所述Ansible工具中的所述第二剧本组件,向所述目标节点中Kubernetes集群的目标容器中部署区块,以使所述Kubernetes集群动态抓取容器中的目标区块,通过所述Kubernetes集群依据所述目标区块的IP生成区块链节点间配置文件,并添加至所述Kubernetes集群的全局配置中心中;
通过所述Kubernetes集群启动各剩余容器中的区块,以使各剩余区块访问所述全局配置中心,读取所述区块链节点间配置文件,构建各区块之间的连接关系。
可选的,所述区块链节点部署模块520具体用于:
通过所述Kubernetes集群启动各剩余容器中的区块,以使各剩余区块访问所述全局配置中心,依据读取的所述区块链节点间配置文件,向所述目标区块进行注册,以使所述目标区块获得各区块中的区块信息;
通过所述目标区块向各剩余区块发送各区块中的区块信息,以使各剩余区块获得各区块中的区块信息,并依据各区块中的区块信息构建各区块之间的连接关系。
可选的,所述区块链节点部署模块520具体用于:
在所述向所述目标节点的Kubernetes集群中创建容器,并在所述容器中部署区块链节点之后,通过所述目标节点中的容器监测插件,对所述Kubernetes集群中部署的容器进行监测,确定各容器的容器状态;
通过所述Kubernetes集群依据各部署容器的容器状态,对容器进行调度和编排。
可选的,所述目标节点为物理节点或虚拟机节点。
本实施例的技术方案,通过各个功能模块之间的相互配合,实现了与目标节点连接的建立、Kubernetes配置文件的生成、Kubernetes集群在目标节点中的搭建、容器镜像文件的获取、容器部署配置文件的生成、容器在目标节点中的部署、区块链节点在目标节点中的部署以及容器的监测和编排等功能。本发明实施例通过Ansible工具的调用,避免了对待部署节点的入侵,同时通过在目标节点中搭建Kubernetes集群,利用Kubernetes集群支持多种容器技术的特性,实现跨平台的区块链节点部署。通过Kubernetes集群动态抓取区块并生成区块链节点间配置文件,并添加至Kubernetes集群的全局配置中心中,实现区块之间的动态发现,避免了对各个区块都要单独编写配置文件,整个操作过程是幂等的,大幅度提高了区块链节点的部署效率。本实施例中,整个批量部署过程都是自动化完成的,避免了人工低效率的配置,使得容器技术封装的区块链节点摆脱对平台环境的依赖,部署方式更加灵活。
实施例五
图6为本发明实施例五提供的一种设备的结构示意图。如图6所示,该设备具体包括:一个或多个处理器610,图6中以一个处理器610为例;存储器620,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器610执行,使得一个或多个处理器610实现本发明任意实施例所述的区块链节点部署方法。处理器610与存储器620可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器620,作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的区块链节点部署方法对应的程序指令(例如,Ansible工具的调用以及Kubernetes集群的搭建与区块链节点的部署)。处理器610通过运行存储在存储器620中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的区块链节点部署方法。
存储器620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器620可进一步包括相对于处理器610远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实施例六
本发明实施例六还提供一种计算机可读存储介质,其上存储有计算机程序(或称为计算机可执行指令),该程序被处理器执行时用于执行一种区块链节点部署方法,该方法包括:
调用Ansible工具与目标节点建立通信连接,并在所述目标节点中搭建Kubernetes集群;
调用所述Ansible工具获取目标区块链版本镜像文件,依据所述目标区块链版本镜像文件,向所述目标节点的Kubernetes集群中创建容器,并在所述容器中部署区块链节点。
当然,本发明实施例所提供的一种计算机可读存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的区块链节点部署方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明实施例可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (9)

1.一种区块链节点部署方法,其特征在于,包括:
调用Ansible工具与目标节点建立通信连接,并在所述目标节点中搭建Kubernetes集群;
调用所述Ansible工具获取目标区块链版本镜像文件,依据所述目标区块链版本镜像文件,向所述目标节点的Kubernetes集群中创建容器,并在所述容器中部署区块链节点;
所述调用所述Ansible工具获取目标区块链版本镜像文件,依据所述目标区块链版本镜像文件,向所述目标节点的Kubernetes集群中创建容器,并在所述容器中部署区块链节点,包括:
调用所述Ansible工具,从容器镜像库中获取所述目标区块链版本镜像文件;
通过所述Ansible工具依据所述目标区块链版本镜像文件,确定目标节点维护信息的区块链版本信息,生成容器部署配置文件并添加至所述Ansible工具的第二剧本组件中;
启动所述Ansible工具中的所述第二剧本组件,以使所述Ansible工具根据所述第二剧本组件,基于所述目标区块链版本镜像文件,在所述目标节点的Kubernetes集群中创建并启动目标容器,以向所述Kubernetes集群的目标容器中部署区块链节点。
2.根据权利要求1所述的方法,其特征在于,所述调用Ansible工具与目标节点建立通信连接,并在所述目标节点中搭建Kubernetes集群,包括:
调用所述Ansible工具生成Kubernetes配置文件,并添加至所述Ansible工具的第一剧本组件中;
启动所述Ansible工具中的所述第一剧本组件,以使所述Ansible工具根据所述第一剧本组件,在所述目标节点中执行所述Kubernetes配置文件,并在所述目标节点中搭建Kubernetes集群。
3.根据权利要求1所述的方法,其特征在于,启动所述Ansible工具中的所述第二剧本组件,向所述Kubernetes集群的目标容器中部署区块链节点,包括:
启动所述Ansible工具中的所述第二剧本组件,向所述目标节点中Kubernetes集群的目标容器中部署区块,以使所述Kubernetes集群动态抓取容器中的目标区块,通过所述Kubernetes集群依据所述目标区块的IP生成区块链节点间配置文件,并添加至所述Kubernetes集群的全局配置中心中;
通过所述Kubernetes集群启动各剩余容器中的区块,以使各剩余区块访问所述全局配置中心,读取所述区块链节点间配置文件,构建各区块之间的连接关系。
4.根据权利要求3所述的方法,其特征在于,所述通过所述Kubernetes集群启动各剩余容器中的区块,以使各剩余区块访问所述全局配置中心,读取所述区块链节点间配置文件,构建各区块之间的连接关系,包括:
通过所述Kubernetes集群启动各剩余容器中的区块,以使各剩余区块访问所述全局配置中心,依据读取的所述区块链节点间配置文件,向所述目标区块进行注册,以使所述目标区块获得各区块中的区块信息;
通过所述目标区块向各剩余区块发送各区块中的区块信息,以使各剩余区块获得各区块中的区块信息,并依据各区块中的区块信息构建各区块之间的连接关系。
5.根据权利要求1所述的方法,其特征在于,在所述向所述目标节点的Kubernetes集群中创建容器,并在所述容器中部署区块链节点之后,还包括:
通过所述目标节点中的容器监测插件,对所述Kubernetes集群中部署的容器进行监测,确定各容器的容器状态;
通过所述Kubernetes集群依据各部署容器的容器状态,对容器进行调度和编排。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述目标节点为物理节点或虚拟机节点。
7.一种区块链节点部署装置,其特征在于,包括:
K8s集群搭建模块,用于调用Ansible工具与目标节点建立通信连接,并在所述目标节点中搭建Kubernetes集群;
区块链节点部署模块,用于调用所述Ansible工具获取目标区块链版本镜像文件,依据所述目标区块链版本镜像文件,向所述目标节点的Kubernetes集群中创建容器,并在所述容器中部署区块链节点;
所述区块链节点部署模块具体用于:
调用所述Ansible工具,从容器镜像库中获取所述目标区块链版本镜像文件;
通过所述Ansible工具依据所述目标区块链版本镜像文件,确定目标节点维护信息的区块链版本信息,生成容器部署配置文件并添加至所述Ansible工具的第二剧本组件中;
启动所述Ansible工具中的所述第二剧本组件,以使所述Ansible工具根据所述第二剧本组件,基于所述目标区块链版本镜像文件,在所述目标节点的Kubernetes集群中创建并启动目标容器,以向所述Kubernetes集群的目标容器中部署区块链节点。
8.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一项所述的区块链节点部署方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一项所述的区块链节点部署方法。
CN201910288932.3A 2019-04-11 2019-04-11 区块链节点部署方法、装置、设备和存储介质 Active CN109976774B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910288932.3A CN109976774B (zh) 2019-04-11 2019-04-11 区块链节点部署方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910288932.3A CN109976774B (zh) 2019-04-11 2019-04-11 区块链节点部署方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN109976774A CN109976774A (zh) 2019-07-05
CN109976774B true CN109976774B (zh) 2022-07-26

Family

ID=67084065

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910288932.3A Active CN109976774B (zh) 2019-04-11 2019-04-11 区块链节点部署方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN109976774B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110430248B (zh) * 2019-07-23 2022-03-25 平安科技(深圳)有限公司 基于云服务的区块链构建方法、装置、介质及电子设备
CN110601896B (zh) * 2019-09-20 2021-08-24 腾讯科技(深圳)有限公司 一种基于区块链节点的数据处理方法以及设备
CN110650193B (zh) * 2019-09-20 2021-06-25 腾讯科技(深圳)有限公司 节点管理方法、集群管理设备及存储介质
CN110865835A (zh) * 2019-10-15 2020-03-06 网联清算有限公司 配置文件更新方法、装置、计算机设备和存储介质
CN111130841B (zh) * 2019-11-21 2022-07-08 深圳壹账通智能科技有限公司 区块链网络部署方法、电子装置及计算机可读存储介质
CN111245910B (zh) * 2019-12-31 2022-04-19 杭州趣链科技有限公司 一种区块链轻节点多副本的部署方法
CN111324599B (zh) * 2020-01-20 2023-04-07 中国科学院计算技术研究所 一种区块链实验***及管理方法
CN110933189A (zh) * 2020-02-10 2020-03-27 北京启迪区块链科技发展有限公司 基于Fabric的区块链网络部署方法、装置、设备和介质
CN111399987B (zh) * 2020-03-26 2023-04-18 海口海辰宇信息科技有限公司 一种通用区块链沙盒监管技术
CN111459573B (zh) * 2020-04-01 2023-09-15 山东浪潮科学研究院有限公司 一种智能合约执行环境的启动方法以及装置
CN111610985B (zh) * 2020-05-13 2023-05-05 麒麟软件有限公司 一种国产平台上的kubernetes集群快速部署方法
CN111708608B (zh) * 2020-06-19 2023-04-25 浪潮云信息技术股份公司 一种基于ansible的容器大集群快速部署方法及***
CN112333244A (zh) * 2020-10-16 2021-02-05 济南浪潮数据技术有限公司 一种集群互信方法、***、设备及计算机可读存储介质
CN112732677B (zh) * 2021-01-12 2023-10-13 库珀科技集团有限公司 区块链节点部署方法、装置、设备及存储介质
CN112732332B (zh) * 2021-04-02 2021-07-23 北京易捷思达科技发展有限公司 适用于koji管理***的软件包管理方法、装置及电子设备
CN113239118A (zh) * 2021-05-31 2021-08-10 广州宏算信息科技有限公司 一种区块链实训***和方法
CN113312429B (zh) * 2021-06-22 2023-01-17 工银科技有限公司 区块链中的智能合约管理***、方法、介质和产品
CN113572643B (zh) * 2021-07-24 2024-04-26 上海边界智能科技有限公司 一种基于容器化技术的区块链多链及跨链网络的部署方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107579931A (zh) * 2017-09-08 2018-01-12 杭州云象网络技术有限公司 一种基于Kubernetes的区块链即服务资源适配方法
CN108694053A (zh) * 2018-05-14 2018-10-23 平安科技(深圳)有限公司 基于Ansible工具自动搭建Kubernetes主节点的方法及终端设备
CN109194506A (zh) * 2018-08-16 2019-01-11 北京京东尚科信息技术有限公司 区块链网络部署方法、平台及计算机存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10560268B2 (en) * 2017-02-13 2020-02-11 International Business Machines Corporation Node characterization in a blockchain

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107579931A (zh) * 2017-09-08 2018-01-12 杭州云象网络技术有限公司 一种基于Kubernetes的区块链即服务资源适配方法
CN108694053A (zh) * 2018-05-14 2018-10-23 平安科技(深圳)有限公司 基于Ansible工具自动搭建Kubernetes主节点的方法及终端设备
CN109194506A (zh) * 2018-08-16 2019-01-11 北京京东尚科信息技术有限公司 区块链网络部署方法、平台及计算机存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Hadoop分布式集群的自动化容器部署研究;李杰等;《计算机应用研究》;20161130(第11期);第1-5页 *

Also Published As

Publication number Publication date
CN109976774A (zh) 2019-07-05

Similar Documents

Publication Publication Date Title
CN109976774B (zh) 区块链节点部署方法、装置、设备和存储介质
CN112035228B (zh) 一种资源调度方法及装置
CN111741134B (zh) 一种网络靶场大规模场景中虚拟机快速构建***与方法
KR102499219B1 (ko) 동적 네트워크 인터페이스를 사용하는 상호운용가능 클라우드 기반 미디어 처리
EP3140736A1 (en) Web application managment
Gogouvitis et al. Seamless computing in industrial systems using container orchestration
CN112860282B (zh) 集群插件的升级方法、装置和服务器
CN112631614A (zh) 应用部署方法、装置、计算机设备和存储介质
CN116755794A (zh) 一种于云原生的应用程序自动化部署方法及***
CN111078238A (zh) 容器环境下应用配置集中处理方法及装置
CN113419818B (zh) 基础组件部署方法、装置、服务器及存储介质
Kirchhof et al. Simulation as a service for cooperative vehicles
CN114363402B (zh) 一种靶场互联方法、***及电子设备
CN114706690A (zh) 一种Kubernetes容器共享GPU方法及***
CN113467931B (zh) 算力任务的处理方法、装置及***
Jansen et al. The SPEC-RG reference architecture for the compute continuum
CN117112122A (zh) 一种集群部署方法和装置
Gupta et al. Deploying hadoop architecture using ansible and terraform
CN113382077B (zh) 微服务调度方法、装置、计算机设备和存储介质
CN110569104A (zh) 深度学习***中任务训练的管理方法和计算机存储介质
CN113965548A (zh) 一种存储服务器的硬件驱动更新方法、***、设备及介质
CN113268254A (zh) 一种集群***安装方法、装置、电子设备及存储介质
CN111427634A (zh) 一种原子服务调度的方法及装置
CN109032674B (zh) 一种多进程管理方法、***及网络设备
CN115202820A (zh) Pod单元的创建方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant