CN112256388A - 基于容器的区块链网络部署方法、装置、设备及存储介质 - Google Patents
基于容器的区块链网络部署方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112256388A CN112256388A CN202011104989.2A CN202011104989A CN112256388A CN 112256388 A CN112256388 A CN 112256388A CN 202011104989 A CN202011104989 A CN 202011104989A CN 112256388 A CN112256388 A CN 112256388A
- Authority
- CN
- China
- Prior art keywords
- container
- network
- block chain
- chain network
- management system
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及区块链技术领域,公开了一种基于容器的区块链网络部署方法、装置、设备及存储介质,方法包括:接收区块链网络的底层配置参数,使用底层配置参数和后台预设模板构建多个配置文件;通过调用容器集群管理系统的应用程序接口创建每个配置文件对应的容器,启动创建的每一容器以形成区块链网络;通过调用用容器集群管理系统的应用程序接口,执行基础测试脚本,以测试所形成的区块链网络的可用性。用户只需进行配置参数的录入,然后一键化自动部署和启动即可,因此本方案的网络搭建速度快,运维成本低。另外,本方案将网络创建和启动分两个过程,实现了创建及启动结构,网络创建过程中构建网络架构,网络启动过程使用系统资源。
Description
技术领域
本发明涉及区块链技术领域,涉及了一种基于容器的区块链网络部署方法、装置、设备及存储介质。
背景技术
区块链技术是当下很热门的新兴技术,由于区块链的去中心化、可溯源、不可篡改等特性,在金融界和技术界均具有巨大的技术和应用前景,例如可以支持购物、社交、互动游戏、资源转移等功能。然而区块链技术门槛高、实施难度大,并且安装部署复杂,耗时又耗力,因此区块链应用开发效率比较低。
目前,对于区块链网络部署,仍停留在人工手动部署,并且对于部署好的区块链网络,存在无法重复使用、网络节点无法变化等问题,因此在应用开发、测试、上线过程中,区块链网络部署成本高,开发测试网络无法重复使用,上线后区块链网络的组织无法删除。
发明内容
本发明的目的是针对上述现有技术的不足提出的一种基于容器的区块链网络部署方法、装置、设备及存储介质,该目的是通过以下技术方案实现的。
本发明的第一方面提出了一种基于容器的区块链网络部署方法,所述方法包括:
接收用户输入的区块链网络的底层配置参数,并使用所述底层配置参数和后台预设模板构建多个用于创建容器所需的配置文件;
通过调用容器集群管理系统的应用程序接口,创建每个配置文件对应的容器,并按照预设启动顺序启动创建的每一所述容器,以形成区块链网络;
通过调用所述容器集群管理系统的应用程序接口,执行基础测试脚本,以测试所形成的区块链网络的可用性;
其中,创建的每一所述容器承担一种角色类型,所述角色类型包括根证书服务节点角色、共识节点角色和组织节点角色。
可选的,在接收用户输入的区块链网络的底层配置参数之后,所述方法还可包括:根据所述底层配置参数生成区块链网络所需的相关要素;将所述相关要素写入到数据库中,以供用户查阅并修改区块链网络中的相关节点;其中,所述相关要素包括区块链网络名称、共识节点名称及访问地址、组织名称及组织节点名称和访问地址、证书相关配置信息。
可选的,所述通过调用容器集群管理系统的应用程序接口,创建每个配置文件对应的容器可包括:获取所述底层配置参数中所述容器集群管理系统的集群请求地址和token令牌;利用所述集群请求地址和token令牌创建与所述容器集群管理系统的通讯连接;通过所述通讯连接调用所述容器集群管理系统的应用程序接口,创建每个配置文件对应的容器。
可选的,所述按照预设启动顺序启动创建的每一所述容器可包括:在监测到用户在配置页面选中所述区块链网络并触发启动按钮时,按照预设顺序遍历创建的每一所述容器,并使用当前遍历容器对应的配置文件中的启动脚本执行当前遍历容器的启动命令。
可选的,所述按照预设启动顺序启动创建的每一所述容器可包括:启动承担所述根证书服务节点角色的容器,以用于提供所述区块链网络所需的证书服务;启动承担组织节点角色的容器,以向所述根证书服务节点请求证书文件,实现本组织节点的证书服务;启动承担共识节点角色的容器,以用于提供共识服务。
可选的,所述方法还可包括:在所述区块链网络启动运行过程中,在接收到用于指示数据重置的指令时,将所述区块链网络置为不可用状态;通过调用所述容器集群管理系统的应用程序接口,关闭所述区块链网络;将所述区块链网络中的链上文件和状态文件进行备份后删除;重新调用所述容器集群管理系统的应用程序接口,启动所述区块链网络并置为可用状态,使得所述区块链网络恢复初始化状态;其中,所述链上文件和所述状态文件为所述区块链网络运行过程中处理业务产生的数据文件。
可选的,所述方法还可包括:在所述区块链网络启动运行过程中,在接收到用于指示停止的指令时,通过调用所述容器集群管理系统的应用程序接口,关闭所述区块链网络中的容器,以释放系统资源;和/或者,在接收到用于指示删除的指令时,将所述区块链网络置为不可用状态,并调用所述容器集群管理系统的应用程序接口关闭所述区块链网络,将所述区块链网络中的证书文件、链上文件和状态文件进行备份后删除,并将所述区块链网络置为已删除状态。
本发明的第二方面提出了一种基于容器的区块链网络部署装置,所述装置包括:
网络配置模块,用于接收用户输入的区块链网络的底层配置参数,并使用所述底层配置参数和后台预设模板构建多个用于创建容器所需的配置文件;
网络自启动模块,用于通过调用容器集群管理系统的应用程序接口,创建每个配置文件对应的容器,并按照预设启动顺序启动创建的每一所述容器,以形成区块链网络;
网络测试模块,用于通过调用所述容器集群管理系统的应用程序接口,执行基础测试脚本,以测试所形成的区块链网络的可用性;
其中,创建的每一所述容器承担一种角色类型,所述角色类型包括根证书服务节点角色、共识节点角色和组织节点角色。
本发明的第三方面提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如上述第一方面所述的基于容器的区块链网络部署方法的步骤。
本发明的第四方面提出了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的基于容器的区块链网络部署方法的步骤。
基于上述第一方面所述的基于容器的区块链网络部署方法,具有如下有益效果:
用户在部署区块链网络时,只需要在部署平台的配置页面进行网络配置参数的录入,然后一键化自动部署和启动即可,无需用户先拥有多台服务器,再去下载相应的区块链安装包,上传到不同的机器,并依次登录各个服务器,去安装区块链,启动区块链,因此本方案的网络搭建速度快,运维成本低。另外,本方案将网络创建和启动分两个过程,实现了创建及启动结构,网络创建过程中构建网络架构,网络启动过程使用系统资源。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明根据一示例性实施例示出的一种基于容器的区块链网络部署方法的实施例流程图;
图2为本发明根据一示例性实施例示出的一种计算机设备的硬件结构图;
图3为本发明根据一示例性实施例示出的一种基于容器的区块链网络部署装置的实施例流程图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
随着区块链技术的发展普及,越来越多的场景被挖掘出来,由于使用区块链具有可溯源,不可篡改等特性,因此可以解决诸多场景下的难题。
但从基础运维角度来看,业界对于区块链网络部署仍停留在手动部署、网络无法重复使用、网络节点无法变化等问题,在应用开发、测试、上线过程中,部署成本高,开发测试网络无法重复使用,上线后组织无法删除等问题。
为解决上述技术问题,本发明提出一种基于容器的区块链网络部署方法,用户通过在网络部署平台的配置页面输入区块链网络的底层配置参数后,网络部署平台使用底层配置参数和后台预设模板构建多个用于创建容器所需的配置文件,并通过调用容器集群管理系统的应用程序接口,创建每个配置文件对应的容器后,再按照预设启动顺序启动创建的每一容器,以形成区块链网络,最后重新调用容器集群管理系统的应用程序接口,执行基础测试脚本,以测试所形成的区块链网络的可用性。其中,创建的每一容器承担一种角色类型,所述角色类型包括根证书服务节点角色、共识节点角色和组织节点角色。
基于上述描述可知,用户在部署区块链网络时,只需要在部署平台的配置页面进行网络配置参数的录入,然后一键化自动部署和启动即可,无需用户先拥有多台服务器,再去下载相应的区块链安装包,上传到不同的机器,并依次登录各个服务器,去安装区块链,启动区块链,因此本方案的网络搭建速度快,运维成本低。另外,本方案将网络创建和启动分两个过程,实现了创建及启动结构,网络创建过程中构建网络架构,网络启动过程使用系统资源。
下面以具体实施例对本发明提出的基于容器的区块链网络部署方法进行详细阐述。
图1为本发明根据一示例性实施例示出的一种基于容器的区块链网络部署方法的实施例流程图,该基于容器的区块链网络部署方法可以应用在计算机设备(例如终端、服务器等设备、服务器集群)上,该计算机设备上运行有网络部署平台,各企业用户可以通过安装网络部署平台提供的APP登录网络部署平台进行区块链网络部署。
如图1所示,该基于容器的区块链网络部署方法包括如下步骤:
步骤101:接收用户输入的区块链网络的底层配置参数,并使用该底层配置参数和后台预设模板构建多个用于创建容器所需的配置文件。
其中,用户输入的底层配置参数可以包括加解密算法、共识机制采用的共识算法、组织个数(也即参与方数量)、每个组织中的组织节点个数(也即对等节点数量)、共识节点个数(也即排序节点数量)、根证书服务节点、证书信息、SDK节点、各种节点在容器集群管理系统kubernets集群上的存储位置、kubernets集群信息等。
其中,kubernets(简称k8s)是Docker(应用容器引擎)生态圈中重要一员,是一种容器集群管理系统,通常以集群的方式部署,其提供应用部署、维护、扩展机制等功能,利用kubernets集群能方便地管理跨云以及跨主机运行容器化的应用,并实现使用Docker对应用程序包装(package)、实例化(instantiate)、运行(run)。同时,kubernets支持以集群的方式运行、管理跨云以及跨主机的容器,并可以较好地解决Docker跨机器容器之间的通讯问题。
需要说明的是,存储位置可以是云机器、本地机器、共享机器中的任意一种机器上的位置,关于机器类型,可以由用户输入底层配置参数时选择。
在步骤101中,在区块链网络配置过程中,客户端用户可以按照实际应用需求,通过网络部署平台的配置页面输入需要实现区块链网络底层技术平台的底层配置参数,进而网络部署平台可以使用模板引擎freemarker技术,为每种底层配置参数构建用于创建kubernets容器所需的配置文件,最后将底层配置参数及构建的相关配置文件写入到网络部署平台的数据库中,以用于后续进行网络区块链的创建与启动。
其中,模板引擎freemarker技术是一种基于模板和要改变的数据生成输出文本(如HTML网页、电子邮件、配置文件、源代码等)的通用工具,因此网络部署平台可以通过使用模板引擎freemarker配置一个规范模板,进而根据该模板,为客户端用户传入的各种配置参数动态构建配置文件。
进一步地,用于创建kubernets容器所需的配置文件格式通常为yaml格式,该配置文件描述了容器应用的结构信息和运行信息,其定义了容器运行的实例数、使用的镜像ID、运行的端口、NAT网关ID、弹性IP、挂载卷、环境变量、启动脚本等信息。
在传统的网络部署方案中,这些配置文件都是技术人员手动编写,在启动网络前准备好,如果需要修改区块链网络信息,例如增加一个组织,就需要重新编写这些配置文件,耗时又耗力。
在本实施例中,通过使用模板引擎freemarker技术,实现底层配置参数与模板的分离,这样可以由用户输入底层配置参数后,自动匹配模板动态生成网络所需的配置文件,为实现区块链网络的一键部署提供前提条件。
需要说明的是,网络部署平台还会生成网络SDK(Software Development Kit,软件开发工具包)所需的配置文件,用户通过访问SDK提供的API(Application ProgramInterface,应用程序接口)来操作区块链,也就是说,每一组织中部署有一个SDK,对应的参与方通过该SDK提供的API访问区块链网络中的服务。
基于上述描述可知,本发明可实现不同身份的用户在网络部署平台的可视化部署,在区块链网络部署过程中,不仅实现一键部署,并且用户可以根据个人需求选择云机器、本地机器、共享机器任意一种部署区块链网络,因此用户只需投入少量成本,即可体验区块链网络应用开发。
在一些实施例中,在接收用户输入的区块链网络的底层配置参数之后,网络部署平台还可以根据底层配置参数生成区块链网络所需的相关要素,并将生成的相关要素写入到网络部署平台的数据库中,以供用户查阅并修改区块链网络中相关节点。
其中,生成的相关要素可以包括区块链网络名称、共识节点名称及访问地址、组织名称及组织节点名称和访问地址、证书相关配置信息等。
步骤102:通过调用容器集群管理系统的应用程序接口,创建每个配置文件对应的容器,并按照预设启动顺序启动创建的每一所述容器,以形成区块链网络。
在一些实施例中,底层配置参数中的kubernets集群信息可以用于创建与kubernets集群的通讯连接,kubernets集群信息包括有集群请求地址、token令牌等。基于此,针对通过调用容器集群管理系统的应用程序接口,创建每个配置文件对应的容器的过程,可以利用kubernets集群信息包括的集群请求地址和token令牌创建与kubernets的通讯连接,从而通过该通讯连接调用kubernets的API,创建每个配置文件对应的容器。
其中,创建的每一容器承担一种角色类型,所述角色类型包括根证书服务节点角色、共识节点角色和组织节点角色。对于承担根证书服务节点角色的容器用于颁发证书,即提供整个网络所需的证书服务,对于承担共识节点角色的容器用于提供共识服务,对于承担组织节点角色的容器用于向参与者用户提供服务,及区块链数据交互服务。
需要说明的是,在使用配置文件创建容器时,需要将配置文件转换为json格式的字符串实现创建,并且创建得到的各个容器所组成的容器集群是一个运行在kubernets容器集群管理系统的物理机或虚拟机集群,其提供了容器化应用的运行环境。
在一些实施例中,网络部署平台可以在配置页面提供网络列表,用户选中要启动的区块链网络,并点击启动按钮,状态变为启动中,基于此,针对按照预设启动顺序启动创建的每一所述容器的过程,网络部署平台可以在监测到用户在配置页面选中所述区块链网络并触发启动按钮时,按照预设顺序遍历创建的每一容器,并使用当前遍历容器对应的配置文件中的启动脚本执行当前遍历容器的启动命令。
需要进一步说明的是,由于不同容器承担着不同的角色,而不同角色之间具有依赖关系,因此需要按照一定顺序启动各个容器,该预设启动顺序为:先启动承担根证书服务节点角色的容器,以用于提供所述区块链网络所需的证书服务,再启动承担组织节点角色的容器,以向根证书服务节点请求证书文件,实现本组织节点的证书服务,然后启动承担共识节点角色的容器,以用于提供共识服务。
步骤103:通过调用容器集群管理系统的应用程序接口,执行基础测试脚本,以测试所形成的区块链网络的可用性。
在本发明中,在区块链网络启动过程中,网络部署平台可以监听区块链网络的启动进度,当启动成功后,再通过调用kubernets的API,执行基础测试脚本,如果测试结果为可用,则将所述区块链网络设置为启动成功状态。
进一步地,在区块链网络启动之后,还可以执行停止操作,即在接收到停止指令后,在保证数据安全不丢失的前提下,将区块链网络中的各个容器关闭,以释放系统资源。
在一些实施例中,对于开发测试环境,为节约资源,节省项目成本,在不删掉网络前提下,本发明通过区块链网络数据重置的方式复用区块链网络,以供开发者进行开发调试,提高区块链网络的重复利用性。
基于此,在区块链网络启动运行过程中,区块链网络数据重置过程可以是:在接收到用于指示数据重置的指令时,将区块链网络置为不可用状态,并通过调用kubernets的API,关闭所述区块链网络,然后将所述区块链网络中的链上文件和状态文件进行备份后删除,并重新调用kubernets的API,启动所述区块链网络并置为可用状态,使得所述区块链网络恢复初始化状态。
其中,链上文件和状态文件为区块链网络运行过程中各个参与方进行交互产生的数据文件,例如,业务数据文件、交易数据文件及支付数据文件等。在删除链上文件和状态文件之后,由于区块链网络中的证书文件不变,因此整个区块链网络恢复初始化状态,可以用于实现其他功能(如申请贷款、信用卡或者购买保险、理财产品等功能),但链上文件及状态文件已经重置。
在另一些实施例中,当服务到期或开发测试环境使用完毕后,为了节省项目成本,还可以删除区块链网络,针对区块链网络的删除过程,在接收到用于指示删除的指令时,将区块链网络置为不可用状态,并调用kubernets的API关闭区块链网络,然后将区块链网络中的证书文件、链上文件和状态文件进行备份后删除,并将区块链网络置为已删除状态。
由此可见,在成功启动区块链网络之后,在保证区块链网络结构及数据安全的前提下,通过网络部署平台还可以进行停止、数据重置及删除等操作,实现了区块链网络的灵活使用,提高了网络重复使用性,节省了项目成本。
至此,完成上述图1所示的部署流程,用户在部署区块链网络时,只需要在部署平台的配置页面进行网络配置参数的录入,然后一键化自动部署和启动即可,无需用户先拥有多台服务器,再去下载相应的区块链安装包,上传到不同的机器,并依次登录各个服务器,去安装区块链,启动区块链,因此本方案的网络搭建速度快,运维成本低。另外,本方案将网络创建和启动分两个过程,实现了创建及启动结构,网络创建过程中构建网络架构,网络启动过程使用系统资源。
图2为本发明根据一示例性实施例示出的一种计算机设备的硬件结构示意图。如图2所示,该计算机设备包括通过系统总线连接的处理器、存储介质、存储器和网络接口。所述存储介质可以是非易失性的,也可以是易失性的。其中,该计算机设备的存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现上文描述的基于容器的区块链网络部署方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,处理器执行计算机可读指令时实现以下步骤:接收用户输入的区块链网络的底层配置参数,使用所述底层配置参数和后台预设模板构建多个用于创建容器所需的配置文件;通过调用容器集群管理系统的应用程序接口,创建每个配置文件对应的容器,并按照预设启动顺序启动创建的每一所述容器,以形成区块链网络;通过调用所述容器集群管理系统的应用程序接口,执行基础测试脚本,以测试所形成的区块链网络的可用性;其中,创建的每一所述容器承担一种角色类型,所述角色类型包括根证书服务节点角色、共识节点角色和组织节点角色。
在一实施例中,处理器执行计算机可读指令时还执行以下步骤:在接收用户输入的区块链网络的底层配置参数之后,根据所述底层配置参数生成区块链网络所需的相关要素;将所述相关要素写入到数据库中,以供用户查阅并修改区块链网络中的相关节点;其中,所述相关要素包括区块链网络名称、共识节点名称及访问地址、组织名称及组织节点名称和访问地址、证书相关配置信息。
在一实施例中,所述处理器所执行的通过调用容器集群管理系统的应用程序接口,创建每个配置文件对应的容器的步骤包括:获取所述底层配置参数中所述容器集群管理系统的集群请求地址和token令牌;利用所述集群请求地址和token令牌创建与所述容器集群管理系统的通讯连接;通过所述通讯连接调用所述容器集群管理系统的应用程序接口,创建每个配置文件对应的容器。
在一实施例中,所述处理器所执行的按照预设启动顺序启动创建的每一所述容器的步骤包括:在监测到用户在配置页面选中所述区块链网络并触发启动按钮时,按照预设顺序遍历创建的每一所述容器,并使用当前遍历容器对应的配置文件中的启动脚本执行当前遍历容器的启动命令。
在一实施例中,所述处理器所执行的按照预设启动顺序启动创建的每一所述容器的步骤包括:启动承担所述根证书服务节点角色的容器,以用于提供所述区块链网络所需的证书服务;启动承担组织节点角色的容器,以向所述根证书服务节点请求证书文件,实现本组织节点的证书服务;启动承担共识节点角色的容器,以用于提供共识服务。
在一实施例中,所述处理器执行计算机可读指令时还执行以下步骤:在所述区块链网络启动运行过程中,在接收到用于指示数据重置的指令时,将所述区块链网络置为不可用状态;通过调用所述容器集群管理系统的应用程序接口,关闭所述区块链网络;将所述区块链网络中的链上文件和状态文件进行备份后删除;重新调用所述容器集群管理系统的应用程序接口,启动所述区块链网络并置为可用状态,使得所述区块链网络恢复初始化状态;其中,所述链上文件和所述状态文件为所述区块链网络运行过程中处理业务产生的数据文件。
在一实施例中,所述处理器执行计算机可读指令时还执行以下步骤:在所述区块链网络启动运行过程中,在接收到用于指示停止的指令时,通过调用所述容器集群管理系统的应用程序接口,关闭所述区块链网络中的容器,以释放系统资源;和/或者,在接收到用于指示删除的指令时,将所述区块链网络置为不可用状态,并调用所述容器集群管理系统的应用程序接口关闭所述区块链网络,将所述区块链网络中的证书文件、链上文件和状态文件进行备份后删除,并将所述区块链网络置为已删除状态,
本领域技术人员可以理解,上述图2中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
与前述基于容器的区块链网络部署方法的实施例相对应,本发明还提供了基于容器的区块链网络部署装置的实施例。
图3为本发明根据一示例性实施例示出的一种基于容器的区块链网络部署装置的实施例流程图,该基于容器的区块链网络部署装置可以应用在计算机设备上。如图3所示,该基于容器的区块链网络部署装置包括:
网络配置模块310,用于接收用户输入的区块链网络的底层配置参数,并使用所述底层配置参数和后台预设模板构建多个用于创建容器所需的配置文件;
网络自启动模块320,用于通过调用容器集群管理系统的应用程序接口,创建每个配置文件对应的容器,并按照预设启动顺序启动创建的每一所述容器,以形成区块链网络;
网络测试模块330,用于通过调用所述容器集群管理系统的应用程序接口,执行基础测试脚本,以测试所形成的区块链网络的可用性;
其中,创建的每一所述容器承担一种角色类型,所述角色类型包括根证书服务节点角色、共识节点角色和组织节点角色。
在一可选实现方式中,所述装置还包括(图3中未示出):
网络要素生成模块,用于在所述网络配置模块310接收用户输入的区块链网络的底层配置参数之后,根据所述底层配置参数生成区块链网络所需的相关要素;将所述相关要素写入到数据库中,以供用户查阅并修改区块链网络中的相关节点;其中,所述相关要素包括区块链网络名称、共识节点名称及访问地址、组织名称及组织节点名称和访问地址、证书相关配置信息。
在一可选实现方式中,所述网络自启动模块320,具体用于在通过调用容器集群管理系统的应用程序接口,创建每个配置文件对应的容器过程中,获取所述底层配置参数中所述容器集群管理系统的集群请求地址和token令牌;利用所述集群请求地址和token令牌创建与所述容器集群管理系统的通讯连接;通过所述通讯连接调用所述容器集群管理系统的应用程序接口,创建每个配置文件对应的容器。
在一可选实现方式中,所述网络自启动模块320,具体用于在按照预设启动顺序启动创建的每一所述容器过程中,在监测到用户在配置页面选中所述区块链网络并触发启动按钮时,按照预设顺序遍历创建的每一所述容器,并使用当前遍历容器对应的配置文件中的启动脚本执行当前遍历容器的启动命令。
在一可选实现方式中,所述网络自启动模块320,具体用于在按照预设启动顺序启动创建的每一所述容器过程中,启动承担所述根证书服务节点角色的容器,以用于提供所述区块链网络所需的证书服务;启动承担组织节点角色的容器,以向所述根证书服务节点请求证书文件,实现本组织节点的证书服务;启动承担共识节点角色的容器,以用于提供共识服务。
在一可选实现方式中,所述装置还包括(图3中未示出):
数据重置模块,用于在所述区块链网络启动运行过程中,在接收到用于指示数据重置的指令时,将所述区块链网络置为不可用状态;通过调用所述容器集群管理系统的应用程序接口,关闭所述区块链网络;将所述区块链网络中的链上文件和状态文件进行备份后删除;重新调用所述容器集群管理系统的应用程序接口,启动所述区块链网络并置为可用状态,使得所述区块链网络恢复初始化状态;其中,所述链上文件和所述状态文件为所述区块链网络运行过程中处理业务产生的数据文件。
在一可选实现方式中,所述装置还包括(图3中未示出):
停止网络模块,用于在所述区块链网络启动运行过程中,在接收到用于指示停止的指令时,通过调用所述容器集群管理系统的应用程序接口,关闭所述区块链网络中的容器,以释放系统资源;和/或者,
删除网络模块,用于在接收到用于指示删除的指令时,将所述区块链网络置为不可用状态,并调用所述容器集群管理系统的应用程序接口关闭所述区块链网络,将所述区块链网络中的证书文件、链上文件和状态文件进行备份后删除,并将所述区块链网络置为已删除状态。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明还提供了另一种实施方式,即提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序可被至少一个处理器执行,以使至少一个处理器执行一种基于容器的区块链网络部署方法,该方法包括:接收用户输入的区块链网络的底层配置参数,并使用所述底层配置参数和后台预设模板构建多个用于创建容器所需的配置文件;通过调用容器集群管理系统的应用程序接口,创建每个配置文件对应的容器,并按照预设启动顺序启动创建的每一所述容器,以形成区块链网络;通过调用容器集群管理系统的应用程序接口执行基础测试脚本,以测试所形成的区块链网络的可用性;其中,创建的每一所述容器承担一种角色类型,所述角色类型包括根证书服务节点角色、共识节点角色和组织节点角色。
在本实施例中,用户在部署区块链网络时,只需要在部署平台的配置页面进行网络配置参数的录入,然后一键化自动部署和启动即可,无需用户先拥有多台服务器,再去下载相应的区块链安装包,上传到不同的机器,并依次登录各个服务器,去安装区块链,启动区块链,因此本方案的网络搭建速度快,运维成本低。另外,本方案将网络创建和启动分两个过程,实现了创建及启动结构,网络创建过程中构建网络架构,网络启动过程使用系统资源。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种基于容器的区块链网络部署方法,其特征在于,所述方法包括:
接收用户输入的区块链网络的底层配置参数,使用所述底层配置参数和后台预设模板构建多个用于创建容器所需的配置文件;
通过调用容器集群管理系统的应用程序接口,创建每个配置文件对应的容器,并按照预设启动顺序启动创建的每一所述容器,以形成区块链网络;
通过调用所述容器集群管理系统的应用程序接口,执行基础测试脚本,以测试所形成的区块链网络的可用性;
其中,创建的每一所述容器承担一种角色类型,所述角色类型包括根证书服务节点角色、共识节点角色和组织节点角色。
2.根据权利要求1所述的方法,其特征在于,在接收用户输入的区块链网络的底层配置参数之后,所述方法还包括:
根据所述底层配置参数生成区块链网络所需的相关要素;
将所述相关要素写入到数据库中,以供用户查阅并修改区块链网络中的相关节点;
其中,所述相关要素包括区块链网络名称、共识节点名称及访问地址、组织名称及组织节点名称和访问地址、证书相关配置信息。
3.根据权利要求1所述的方法,其特征在于,所述通过调用容器集群管理系统的应用程序接口,创建每个配置文件对应的容器,包括:
获取所述底层配置参数中所述容器集群管理系统的集群请求地址和token令牌;
利用所述集群请求地址和token令牌创建与所述容器集群管理系统的通讯连接;
通过所述通讯连接调用所述容器集群管理系统的应用程序接口,创建每个配置文件对应的容器。
4.根据权利要求1所述的方法,其特征在于,所述按照预设启动顺序启动创建的每一所述容器,包括:
在监测到用户在配置页面选中所述区块链网络并触发启动按钮时,按照预设顺序遍历创建的每一所述容器,并使用当前遍历容器对应的配置文件中的启动脚本执行当前遍历容器的启动命令。
5.根据权利要求1所述的方法,其特征在于,所述按照预设启动顺序启动创建的每一所述容器,包括:
启动承担所述根证书服务节点角色的容器,以用于提供所述区块链网络所需的证书服务;
启动承担组织节点角色的容器,以向所述根证书服务节点请求证书文件,实现本组织节点的证书服务;
启动承担共识节点角色的容器,以用于提供共识服务。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述区块链网络启动运行过程中,在接收到用于指示数据重置的指令时,将所述区块链网络置为不可用状态;
通过调用所述容器集群管理系统的应用程序接口,关闭所述区块链网络;
将所述区块链网络中的链上文件和状态文件进行备份后删除;
重新调用所述容器集群管理系统的应用程序接口,启动所述区块链网络并置为可用状态,使得所述区块链网络恢复初始化状态;
其中,所述链上文件和所述状态文件为所述区块链网络运行过程中处理业务产生的数据文件。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述区块链网络启动运行过程中,在接收到用于指示停止的指令时,通过调用所述容器集群管理系统的应用程序接口,关闭所述区块链网络中的容器,以释放系统资源;和/或者,
在接收到用于指示删除的指令时,将所述区块链网络置为不可用状态,并调用所述容器集群管理系统的应用程序接口关闭所述区块链网络,将所述区块链网络中的证书文件、链上文件和状态文件进行备份后删除,并将所述区块链网络置为已删除状态。
8.一种基于容器的区块链网络部署装置,其特征在于,所述装置包括:
网络配置模块,用于接收用户输入的区块链网络的底层配置参数,并使用所述底层配置参数和后台预设模板构建多个用于创建容器所需的配置文件;
网络自启动模块,用于通过调用容器集群管理系统的应用程序接口,创建每个配置文件对应的容器,并按照预设启动顺序启动创建的每一所述容器,以形成区块链网络;
网络测试模块,用于通过调用所述容器集群管理系统的应用程序接口,执行基础测试脚本,以测试所形成的区块链网络的可用性;
其中,创建的每一所述容器承担一种角色类型,所述角色类型包括根证书服务节点角色、共识节点角色和组织节点角色。
9.一种计算机设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7任一项所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1~7中任一项基于容器的区块链网络部署方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011104989.2A CN112256388A (zh) | 2020-10-15 | 2020-10-15 | 基于容器的区块链网络部署方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011104989.2A CN112256388A (zh) | 2020-10-15 | 2020-10-15 | 基于容器的区块链网络部署方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112256388A true CN112256388A (zh) | 2021-01-22 |
Family
ID=74243581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011104989.2A Pending CN112256388A (zh) | 2020-10-15 | 2020-10-15 | 基于容器的区块链网络部署方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112256388A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112968897A (zh) * | 2021-02-25 | 2021-06-15 | 浙江清华长三角研究院 | 一种在去中心化系统中运行的容器计算方法 |
CN113064598A (zh) * | 2021-03-24 | 2021-07-02 | 上海铼锶信息技术有限公司 | 容器集群管理系统部署方法及部署系统 |
CN113110899A (zh) * | 2021-06-11 | 2021-07-13 | 北京百度网讯科技有限公司 | 区块链系统的运行方法、装置、设备和存储介质 |
CN113110883A (zh) * | 2021-06-11 | 2021-07-13 | 北京百度网讯科技有限公司 | 区块链系统的启动方法、装置、设备和存储介质 |
CN113259458A (zh) * | 2021-06-02 | 2021-08-13 | 支付宝(杭州)信息技术有限公司 | 一种启动/关闭区块链节点服务的方法和装置 |
CN113253995A (zh) * | 2021-06-11 | 2021-08-13 | 北京百度网讯科技有限公司 | 区块链系统的开发方法、装置、设备和存储介质 |
CN113282663A (zh) * | 2021-06-04 | 2021-08-20 | 杭州复杂美科技有限公司 | 一种区块链快速定制方法、设备及储存介质 |
CN113900678A (zh) * | 2021-10-26 | 2022-01-07 | 安徽继远软件有限公司 | 一种区块链平台一键化组件部署方法 |
CN115348168A (zh) * | 2022-07-21 | 2022-11-15 | 金蝶软件(中国)有限公司 | 一种区块链网络的部署方法及装置 |
CN115499442A (zh) * | 2022-11-15 | 2022-12-20 | 四川华西集采电子商务有限公司 | 一种基于容器编排的快速部署型云计算架构 |
CN116055308A (zh) * | 2023-02-10 | 2023-05-02 | 青岛闪收付信息技术有限公司 | 一种供应链金融平台的底层区块链网络部署方法及装置 |
CN116974649A (zh) * | 2023-08-25 | 2023-10-31 | 中国电子技术标准化研究院华东分院 | 基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法及装置 |
-
2020
- 2020-10-15 CN CN202011104989.2A patent/CN112256388A/zh active Pending
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112968897A (zh) * | 2021-02-25 | 2021-06-15 | 浙江清华长三角研究院 | 一种在去中心化系统中运行的容器计算方法 |
CN113064598A (zh) * | 2021-03-24 | 2021-07-02 | 上海铼锶信息技术有限公司 | 容器集群管理系统部署方法及部署系统 |
CN113064598B (zh) * | 2021-03-24 | 2024-02-06 | 上海铼锶信息技术有限公司 | 容器集群管理系统部署方法及部署系统 |
CN113259458A (zh) * | 2021-06-02 | 2021-08-13 | 支付宝(杭州)信息技术有限公司 | 一种启动/关闭区块链节点服务的方法和装置 |
CN113282663A (zh) * | 2021-06-04 | 2021-08-20 | 杭州复杂美科技有限公司 | 一种区块链快速定制方法、设备及储存介质 |
US11558207B2 (en) | 2021-06-11 | 2023-01-17 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method and apparatus for starting up blockchain system, and non-transitory computer-readable storage medium |
CN113110899A (zh) * | 2021-06-11 | 2021-07-13 | 北京百度网讯科技有限公司 | 区块链系统的运行方法、装置、设备和存储介质 |
CN113110883A (zh) * | 2021-06-11 | 2021-07-13 | 北京百度网讯科技有限公司 | 区块链系统的启动方法、装置、设备和存储介质 |
CN113253995A (zh) * | 2021-06-11 | 2021-08-13 | 北京百度网讯科技有限公司 | 区块链系统的开发方法、装置、设备和存储介质 |
CN113110899B (zh) * | 2021-06-11 | 2021-10-12 | 北京百度网讯科技有限公司 | 区块链系统的运行方法、装置、设备和存储介质 |
CN113253995B (zh) * | 2021-06-11 | 2021-11-09 | 北京百度网讯科技有限公司 | 区块链系统的开发方法、装置、设备和存储介质 |
CN113900678A (zh) * | 2021-10-26 | 2022-01-07 | 安徽继远软件有限公司 | 一种区块链平台一键化组件部署方法 |
CN115348168A (zh) * | 2022-07-21 | 2022-11-15 | 金蝶软件(中国)有限公司 | 一种区块链网络的部署方法及装置 |
CN115348168B (zh) * | 2022-07-21 | 2024-03-19 | 金蝶软件(中国)有限公司 | 一种区块链网络的部署方法及装置 |
CN115499442B (zh) * | 2022-11-15 | 2023-01-31 | 四川华西集采电子商务有限公司 | 一种基于容器编排的快速部署型云计算架构 |
CN115499442A (zh) * | 2022-11-15 | 2022-12-20 | 四川华西集采电子商务有限公司 | 一种基于容器编排的快速部署型云计算架构 |
CN116055308A (zh) * | 2023-02-10 | 2023-05-02 | 青岛闪收付信息技术有限公司 | 一种供应链金融平台的底层区块链网络部署方法及装置 |
CN116055308B (zh) * | 2023-02-10 | 2024-01-05 | 青岛闪收付信息技术有限公司 | 一种供应链金融平台的底层区块链网络部署方法及装置 |
CN116974649A (zh) * | 2023-08-25 | 2023-10-31 | 中国电子技术标准化研究院华东分院 | 基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法及装置 |
CN116974649B (zh) * | 2023-08-25 | 2024-02-13 | 中国电子技术标准化研究院华东分院 | 基于Go语言以及ChaosBlade的区块链自动部署及混沌测试的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112256388A (zh) | 基于容器的区块链网络部署方法、装置、设备及存储介质 | |
US20210271472A1 (en) | Application Wrapping for Application Management Framework | |
US20200241914A1 (en) | Pattern-based orchestration of cloud provisioning tasks at runtime | |
CN106528224B (zh) | 一种Docker容器的内容更新方法、服务器及系统 | |
US10956130B2 (en) | Method and system for implementing a cloud infrastructure visualizer and generator | |
US20160147529A1 (en) | Source Code Management for a Multi-Tenant Platform-as-a-Service (PaaS) System | |
CN113296798B (zh) | 一种服务部署方法、装置及可读存储介质 | |
EP3488343A1 (en) | Access services in hybrid cloud computing systems | |
US10225253B2 (en) | Usage tracking in hybrid cloud computing systems | |
CN112948278B (zh) | 基于灰度数据库的产品灰度发布方法、装置、设备和介质 | |
CN111865629B (zh) | 用于配置服务实例的方法、设备和计算机程序产品 | |
CN106126273A (zh) | 一种升级bios的方法 | |
US10324701B1 (en) | Rapid deployment of computing instances | |
CN112527379A (zh) | 基于Guacamole的堡垒机应用运维方法、装置、设备及介质 | |
CN108780407A (zh) | 使用访问和执行环境的应用程序流式传输 | |
Poccia | AWS Lambda in Action: Event-driven serverless applications | |
CN107463411A (zh) | 一种云主机初始化方法及装置 | |
CN114079653A (zh) | 一种通信方法、装置、计算机设备和存储介质 | |
Chowhan | Hands-on Serverless Computing: Build, Run and Orchestrate Serverless Applications Using AWS Lambda, Microsoft Azure Functions, and Google Cloud Functions | |
Mocevicius | CoreOS Essentials | |
CN116974716A (zh) | 调度任务的发布方法、装置、电子设备及存储介质 | |
Bartlett | Building Scalable PHP Web Applications Using the Cloud: A Simple Guide to Programming and Administering Cloud-Based Applications | |
Kaur et al. | Docker and its features | |
CN115016801A (zh) | 复杂系统中测试环境部署方法、系统、终端及存储介质 | |
Sebastian | Transform monolith into microservices using docker |
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 |