CN114138909A - 一种区块链分布式系统部署方法、装置、设备及介质 - Google Patents
一种区块链分布式系统部署方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN114138909A CN114138909A CN202111481349.8A CN202111481349A CN114138909A CN 114138909 A CN114138909 A CN 114138909A CN 202111481349 A CN202111481349 A CN 202111481349A CN 114138909 A CN114138909 A CN 114138909A
- Authority
- CN
- China
- Prior art keywords
- service unit
- console interface
- version
- deployment
- distributed 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
- 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/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/084—Configuration by using pre-existing information, e.g. using templates or copying from other elements
- H04L41/0843—Configuration by using pre-existing information, e.g. using templates or copying from other elements based on generic templates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请涉及区块链技术领域,具体涉及一种区块链分布式系统部署方法、装置、设备及介质,用于实现区块链分布式系统的快速部署。该方法包括:打包任一服务单元,获得所述任一服务单元的容器,其中,所述任一服务单元为所述区块链分布式系统涉及的多个服务单元中的一个服务单元;基于预配置的模板,获取所述任一服务单元的参数文件,其中,所述参数文件为所述模板涉及的参数项的具体值;基于所述任一服务单元的参数文件,生成所述任一服务单元的配置文件;基于所述任一服务单元的配置文件,运行所述任一服务单元的容器。
Description
技术领域
本申请涉及区块链技术领域,具体涉及一种区块链分布式系统部署方法、装置、设备及介质。
背景技术
区块链(BlockChain)是一种基于共识机制去保护一个完整的、分布式的、不可改动的账本数据库的技术,能够让区块链中的参与者在无需建立信任关系的前提下实现一个统一的账本数据库。
近年来区块链应用的发展十分迅猛,其更新迭代速度较快,基于区块链技术的分布式系统的结构非常复杂,包括区块链组网的底层网络系统,区块链适配层,区块链上层应用系统,数据库系统,消息中间件系统,网络层负载均衡系统,外层服务代理系统等,复杂的系统结构导致区块链分布式系统的部署过程用时较长。因此急切需要一套使用方便、适用性广、实现简单、能实现区块链分布式系统的快速部署的工具。
发明内容
本申请实施例提供一种区块链分布式系统部署方法、装置、设备及介质,用于实现区块链分布式系统的快速部署。
第一方面,本申请提供一种区块链分布式系统部署方法,包括:
打包任一服务单元,获得所述任一服务单元的容器,其中,所述任一服务单元为所述区块链分布式系统涉及的多个服务单元中的一个服务单元;
基于预配置的模板,获取所述任一服务单元的参数文件,其中,所述参数文件为所述模板涉及的参数项的具体值;
基于所述任一服务单元的参数文件,生成所述任一服务单元的配置文件;
基于所述任一服务单元的配置文件,运行所述任一服务单元的容器。
在一种可能的实施例中,所述模板涉及的参数项包括联盟平台参数、各参与机构基本参数、以及各参与机构定制环境参数。
在一种可能的实施例中,打包任一服务单元,获得所述任一服务单元的容器,包括:
响应于在一级控台界面对任一部署单元的第一操作,从所述一级控台界面切换至二级控台界面;
响应于在所述二级控台界面对部署动作的第二操作,从所述二级控台界面切换至三级控台界面;
响应于在所述三级控台界面对任一服务单元的第三操作,从所述三级控台界面切换至四级控台界面;
响应于在所述四级控台界面对任一版本包的第四操作,基于所述任一版本包,打包所述任一服务单元,获得所述任一服务单元的容器。
在一种可能的实施例中,所述四级控台界面显示有多个版本包的信息,每个版本包的信息包括每个版本包的第一哈希值;在响应于在所述四级控台界面对任一版本包的第四操作之前,所述方法还包括:
使用预设的哈希算法获得所述任一版本包的第二哈希值;
若所述第二哈希值与所述任一版本包的第一哈希值相同,则确定所述任一版本包未被更改。
第二方面,本申请提供一种区块链分布式系统部署装置,包括:
获得模块,用于打包任一服务单元,获得所述任一服务单元的容器,其中,所述任一服务单元为所述区块链分布式系统涉及的多个服务单元中的一个服务单元;
获取模块,用于基于预配置的模板,获取所述任一服务单元的参数文件,其中,所述参数文件为所述模板涉及的参数项的具体值;
生成模块,用于基于所述任一服务单元的参数文件,生成所述任一服务单元的配置文件;
运行模块,用于基于所述任一服务单元的配置文件,运行所述任一服务单元的容器。
在一种可能的实施例中,所述模板涉及的参数项包括联盟平台参数、各参与机构基本参数、以及各参与机构定制环境参数。
在一种可能的实施例中,所述获得模块具体用于:
响应于在一级控台界面对任一部署单元的第一操作,从所述一级控台界面切换至二级控台界面;
响应于在所述二级控台界面对任一部署动作的第二操作,从所述二级控台界面切换至三级控台界面;
响应于在所述三级控台界面对任一服务单元的第三操作,从所述三级控台界面切换至四级控台界面;
响应于在所述四级控台界面对任一版本包的第四操作,基于所述任一版本包,打包所述任一服务单元,获得所述任一服务单元的容器。
在一种可能的实施例中,所述四级控台界面显示有多个版本包的信息,每个版本包的信息包括每个版本包的第一哈希值;
所述装置还包括校验模块,所述校验模块用于:
在响应于在所述四级控台界面对任一版本包的第四操作之前,使用预设的哈希算法获得所述任一版本包的第二哈希值;
若所述第二哈希值与所述任一版本包的第一哈希值相同,则确定所述任一版本包未被更改。
第三方面,本申请提供一种电子设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行第一方面中任一项所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行第一方面中任一项所述的方法。
第五方面,本申请提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行第一方面中任一项所述的方法。
在本申请实施例中,对区块链分布式系统涉及的服务单元都进行容器化,使服务单元能够快速分发和移植,且预先配置了模板,直接根据模板涉及的参数项可以快速获取相应的参数文件,基于该服务单元的参数文件,动态生成该服务单元的配置文件,最后基于该服务单元的配置文件,运行该服务单元的容器,从而实现区块链分布式系统的快速部署,且通过容器也可以方便后续对区块链分布式系统的各个服务单元进行维护。
上述第二方面至第五方面中的各个方面以及各个方面可能达到的技术效果参照上述针对第一方面或者第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种区块链分布式系统部署方法的流程图;
图2为本申请实施例提供的一种区块链分布式系统部署装置的结构图;
图3为本申请实施例提供的一种电子设备的结构图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以按不同于此处的顺序执行所示出或描述的步骤。
本申请的说明书和权利要求书及上述附图中的术语“第一”和“第二”是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的保护。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请中的“多个”可以表示至少两个,例如可以是两个、三个或者更多个,本申请实施例不做限制。
在介绍本申请实施例提供的区块链分布式系统部署方法之前,首先介绍一下区块链分布式系统的结构。
区块链分布式系统包括区块链底层网络、区块链适配层、区块链上层应用、区块链上层应用消息中间件、区块链上层应用数据库、区块链web服务等。其中,区块链底层网络包括账本节点、排序节点、共识机制等,区块链上层应用例如spring boot应用,区块链上层应用消息中间件例如rabbitMQ,区块链上层应用数据库例如mongoDB数据库、postgresql数据库等,区块链web服务例如nginx。
由于区块链分布式系统较复杂,为了实现区块链分布式系统的快速部署,本申请实施例提供一种区块链分布式系统部署方法。该方法可以由区块链分布式系统部署设备执行,为了简化描述,下文中将区块链分布式系统部署设备简称为部署设备。部署设备可以通过终端或服务器实现,终端例如可以为手机、个人计算机(personal computer,PC)、笔记本电脑等,服务器例如实体服务或虚拟服务器等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,但并不局限于此。
在介绍了区块链分布式系统的结构之后,下面以部署设备执行区块链分布式系统部署方法为例进行介绍。请参照图1,为本申请实施例提供的一种区块链分布式系统部署方法的流程示意图。
S101、打包任一服务单元,获得任一服务单元的容器。
区块链分布式系统包括多个部署单元,每个部署单元用于部署一个或多个相似功能的服务单元,服务单元指的是区块链分布式系统的应用或服务。例如数据库应用包括可以mongoDB数据库和postgresql数据库,mongoDB数据库包括sever1、sever2、sever3,sever1可以称为一个服务单元,sever2也可以称为一个服务单元,mongoDB数据库可以称为一个部署单元。因此区块链分布式系统涉及多个服务单元,任一服务单元为多个服务单元中的一个服务单元。
为了简化用户的操作,本申请实施例提供一种可视化控制台,该可视化控制台包括多级控台界面,下面对该可视化控制台的操作流程进行示例介绍。
S1.1、响应于在一级控台界面对任一部署单元的第一操作,从一级控台界面切换至二级控台界面。
一级控台界面为控制台的主入口,一级控台界面显示有多个部署单元,部署单元例如Web代理应用、区块链上层应用、数据库应用、消息中间件、区块链网络节点及工具、区块链适配应用等。部署设备可以响应于用户在一级控台界面对任一部署单元的第一操作,从一级控台界面切换至二级控台界面。其中,用户指的是区块链分布式系统的开发人员或维护人员。第一操作可以为输入操作,例如一级控台界面显示有每个部署单元对应的编号,用户可以在命令行输入任一部署单元的编号。
一级控台界面还可以显示多个其他操作逻辑单元,例如区块链设置参数展示、工具箱、本地容器(docker)应用、控台操作日志、退出操作。
在一种可能的实施例中,部署设备可以响应于用户在一级控台界面对控台操作日志的第五操作,展示操作日志,以便用户追踪历史操作记录,查看该区块链分布式系统已经部署的服务情况。
例如,一级控台界面显示如下:
00区块链设置参数展示
01 Web代理应用
02数据库应用-mongoDB
03数据库应用-postgresql
……
98控台操作日志
99退出
请输入选项:
若用户在“请输入选项”后面输入02,说明用户对mongoDB进行了第一操作,则部署设备从一级控台界面切换至二级控台界面。若用户在“请输入选项”后面输入98,则部署设备显示操作日志。若用户在“请输入选项”后面输入99,则部署设备退出控台界面。
S1.2、响应于在二级控台界面对任一部署动作的第二操作,从二级控台界面切换至三级控台界面。
二级控台界面实际为部署单元统一的操作接口,二级控台界面显示有多个部署动作,部署动作例如初始部署、更新部署、清理部署等,部署设备可以响应于用户响应于在二级控台界面对任一部署动作的第二操作,从二级控台界面切换至三级控台界面。第二操作的含义请操作前文论述的第一操作的内容,此处不再赘述。
二级控台界面还可以显示有多个服务动作单元、配置单元、以及其他单元,服务动作单元例如启动服务、停止服务、重启服务、服务备份等,配置单元例如检查配置和刷新配置,刷新配置是指通过发布版本中的模板及参数配置动态生成新的配置文件,其他单元例如返回上一级界面、退出等。
例如,二级控台界面显示如下:
00初始部署
01更新部署
02刷新配置
……
98返回上一级界面
99退出
请输入选项:
若用户在“请输入选项”后面输入00,说明用户对初始部署动作进行了第二操作,则部署设备从二级控台界面切换至三级控台界面。若用户在“请输入选项”后面98,则部署设备从二级控台界面切换回一级控台界面。若用户在“请输入选项”后面输入99,则部署设备直接退出控台界面。
S1.3、响应于在三级控台界面对任一服务单元的第三操作,从三级控台界面切换至四级控台界面。
三级控台界面为具体的某一个部署单元所涉及的多个服务单元,以及每个服务单元的名称、类型、IP地址、端口号、状态、版本号等。例如,三级控台界面显示第一个服务的名称为server1,类型为remote,IP地址为10.0.9.120,端口号为27010,状态为New,版本号为3.4.7。
部署设备可以响应于用户在三级控台界面对任一服务单元的第三操作,从三级控台界面切换至四级控台界面。其中,第三操作的含义请参照前文论述的第一操作的内容,此处不再赘述。
例如,三级控台界面显示如下:
[1]–[mongodb][remote][server1][10.0.9.120:27010][New][3.4.7]
[2]–[mongodb][local][server2][10.0.8.154:27010][New][3.4.7]
……
[97]刷新屏幕
[98]返回上一级界面
[99]退出
请输入选项:
若用户在“请输入选项”后面输入1,说明用户对第一个服务单元server1进行了第三操作,则部署设备从三级控台界面切换至四级控台界面。若用户在“请输入选项”后面输入98,则部署设备从三级控台界面切换回二级控台界面。若用户在“请输入选项”后面输入99,则部署设备直接退出控台界面。
S1.4、响应于在四级控台界面对任一版本包的第四操作,基于任一版本包,打包任一服务单元,获得任一服务单元的容器。
四级控台界面显示有多个版本包和多个版本包的信息,每个版本包的信息包括每个版本包的名称、大小、第一哈希值、以及版本日期。其中,第一哈希值具体可以是使用信息摘要算法(Message-Digest Algorithm,MD5)计算得到的值,即MD5值。例如,四级控台界面显示第一个版本包的名称为appUpgrade_platform_20210723_Both.tgz,大小为261996684,MD5值为fba6689bad128db33465963dcffba198,版本日期为May 28 17:33。
在一种可能的实施例中,部署设备可以使用预设的哈希算法对任一版本包的信息进行计算,获得任一版本包的第二哈希值,若第二哈希值与该任一版本包的第一哈希值相同,则确定该任一版本包未被更改。若第二哈希值与该任一版本包的第一哈希值不同,则确定该任一版本包可能已经泄露,因此不能选择该版本包。
例如,使用MD5算法对第一个版本包的大小“261996684”进行计算,计算获得的MD5值与界面中显示的第一个版本包的MD5值相同,则确定第一个版本包未被更改。
本申请实施例中,对版本包进行了校验,避免用户选择不安全的版本包,进而影响到整个区块链分布式系统的安全。
例如,四级控台界面显示如下:
[1][appUpgrade_platform_20210723_Both.tgz][261996684][fba6689bad128db33465963dcffba198][May 28 17:33]
File MD5 check result:SUCCESS
[2]……
[98]返回上一级界面
[99]退出
请输入选项:
第一个版本包的后面显示:File MD5 check result:SUCCESS,表明使用MD5算法得到的校验结果为成功。若用户在“请输入选项”后面输入1,则说明用户对第一个版本包appUpgrade_platform_20210723_Both.tgz进行了第四操作。若用户在“请输入选项”后面输入98,则部署设备从四级控台界面切换回三级控台界面。若用户在“请输入选项”后面输入99,则部署设备直接退出控台界面。
部署设备在确定任一版本包未被更改之后,可以响应于用户对该任一版本包的第四操作,基于该任一版本包,打包任一服务单元,获得任一服务单元的容器。
例如,用户在一级控台界面选择了数据库应用,在二级控台界面选择了初始部署,在三级控台界面选择了第一个服务单元,在四级控台界面选择了第一版本包之后,部署设备可以执行第一版本包的代码文件。Docker是一个开源的应用容器引擎,开发人员可以打包应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上。部署设备可以通过dockerhub开源容器获取该第一个服务单元的基础镜像,再以Dockerfile来加工制作目标应用镜像,即获得第一个服务单元的容器。其中,第四操作的含义请参照前文论述的第一操作的内容,此处不再赘述。
在本申请实施例中,使用统一的操作界面以及标准化的功能入口来简化维护人员的操作,维护人员没有学习成本,不需要有特殊的技术背景,通过可视化的操作,只需要简单地选择各界面中的相应单元,即可实现对区块链分布式系统的快速部署和维护。
S102、基于预配置的模板,获取任一服务单元的参数文件。
参数文件为模板涉及的参数项的具体值,模板涉及的参数项包括联盟平台参数、联盟参与机构固定参数、以及联盟参与机构定制环境参数,下面分别进行介绍。
1、联盟平台参数。
联盟平台参数为约定参数,约定后基本不变,又可以称为公共参数(global_parm),联盟平台参数包括联盟各成员的机构代号、对联盟内其他成员暴露的联盟成员域名、服务端口、通信端口等。联盟平台参数还可以包括平台配置的版本号,以便确定平台配置的版本信息及配置内容。
2、联盟参与机构固定参数。
联盟平台参数包括联盟成员的机构基本信息、各应用的镜像版本等。
3、联盟参与机构定制环境参数。
联盟参与机构定制环境参数指的是区块链联盟各成员,其内部网络因安全原因、负载均衡高可用等原因,为实现集群部署或单机部署而定制的参数,这些参数与实际部署环境密切相关,为可自定制环境参数,可定制的部分为参数的具体值,参数的占位符是固定的,与应用的部署参数有对照关系。联盟参与机构定制环境参数包括参与组织各应用的服务器集群IP、端口设置、各应用部署目录等、以及数据库用户密码等配置参数。
部署设备按照联盟平台参数、联盟参与机构固定参数、以及联盟参与机构定制环境参数这三个参数项,预先配置好模板,将该模板分发给各个联盟链参与机构填写,以便获取任一服务单元的参数文件。
应当说明的是,本申请实施例是以参数项包括联盟平台参数、联盟参与机构固定参数、以及联盟参与机构定制环境参数为例,实际上用户可以根据自己的需要设置具体的参数项。
S103、基于任一服务单元的参数文件,生成任一服务单元的配置文件。
部署设备基于预配置的模板,获取任一服务单元的参数文件之后,可以基于任一服务单元的参数文件,生成任一服务单元的配置文件。配置文件例如docker-compose.yml,Compose是用于定义和运行容器的工具,通过Compose可以使用YAML文件来配置容器运行需要的所有参数。
S104、基于任一服务单元的配置文件,运行任一服务单元的容器。
具体的,维护人员通过命令行输入相关的命令,执行任一服务单元的配置文件docker-compose.yml,部署设备基于该配置文件,运行该服务单元的容器,从而实现该服务单元的实例化。
为了更加清楚地说明区块链分布式系统部署方法,下面以服务单元为mongoDB的sever1为例,介绍用户部署mongoDB的sever1的详细过程。
当用户想要部署区块链分布式系统时,可以按下快捷键或者输入初始命令行,则部署设备响应于用户的启动操作,显示一级控台操作界面,一级控台界显示有多个编号以及每个编号对应的部署单元,用户在“请输入选项”输入“05”,表示用户选择了05对应的mongoDB,则部署设备从一级控台界面切换至二级控台界面。
二级控台界显示有多个编号以及每个编号对应的部署操作,用户在“请输入选项”输入“00”,表示用户选择了编号00对应的初始部署,则部署设备从二级控台界面切换至三级控台界面。
三级控台界显示有多个编号以及每个编号对应的服务单元,用户在“请输入选项”输入“00”,表示用户选择了00编号对应的服务单元sever1,则部署设备从三级控台界面切换至四级控台界面。
四级控台界显示有多个编号以及每个编号对应的版本包,用户在“请输入选项”输入“1”,表示用户选择了编号1对应的版本包appUpgrade_platform_20210723_Both.tgz,则部署设备打包mongoDB的sever1的版本包appUpgrade_platform_20210723_Both.tgz的代码文件,获得mongoDB的sever1的容器。
部署设备按照联盟平台参数、联盟参与机构固定参数、以及联盟参与机构定制环境参数这三个参数项,预先配置好模板,将该模板分发给各个联盟链参与机构填写,获取到mongoDB的sever1的参数文件。部署设备基于mongoDB的sever1的参数文件,生成mongoDB的sever1的配置文件docker-compose.yml。部署设备响应于用户输入的对mongoDB的sever1的配置文件的执行命令,执行配置文件docker-compose.yml,从而运行mongoDB的sever1的容器,实现mongoDB的sever1的部署。
应当说明的是,S101-S104为一个服务单元的实例化过程,即部署一个服务单元的过程,通过多次执行S101-S104实现区块链分布式系统涉及的多个服务单元的实例化,从而完成整个区块链分布式系统的部署。
例如,可以按照以下部署路径进行部署区块链分布式系统:
版本包路径为$HOME/upgrade,部署备份路径为$HOME/backup/日期,部署版本路径为$HOME/version/日期,应用部署主路径为$HOME/app,中间件部署主路径为$HOME/middleware,区块链网络部署路径为$HOME/fabric,区块链适配部署路径为$HOME/api,控制台部署路径为$HOME/console。
综上所述,基于本申请提供的区块链分布式系统部署方法,对区块链分布式系统涉及的服务单元都进行容器化,直接根据预先配置的模板涉及的参数项获取该服务单元相应的参数文件,然后基于该服务单元的参数文件,动态生成该服务单元的配置文件,最后基于该服务单元的配置文件,运行该服务单元的容器,从而实现区块链分布式系统的快速部署,该方法适用于整个联盟链参与者的区块链部署,能够实现整个区块链分布式系统的快速部署和维护。该方法的操作简单便捷,对维护人员技术要求低,因此该方法的实现成本低。且该方法对系统软件需求较低,具有较强适用性,适用于安全要求高的生产环境,控制台占用系统资源小,且不影响系统安全。通过控制台向各个服务器发送信息,对服务器的部署环境无要求,不要求云平台部署及各种特殊软件支持,对复杂的部署网络环境同样适用,可忽略公有云、私有云、DMZ区网络差异。
基于同一发明构思,本申请实施例提供一种区块链分布式系统部署装置,该装置设置于前文论述的部署设备中,请参照图2,该装置包括:
获得模块201,用于打包任一服务单元,获得任一服务单元的容器,其中,任一服务单元为区块链分布式系统涉及的多个服务单元中的一个服务单元;
获取模块202,用于基于预配置的模板,获取任一服务单元的参数文件,其中,参数文件为模板涉及的参数项的具体值;
生成模块203,用于基于任一服务单元的参数文件,生成任一服务单元的配置文件;
运行模块204,用于基于任一服务单元的配置文件,运行任一服务单元的容器。
在一种可能的实施例中,模板涉及的参数项包括联盟平台参数、各参与机构基本参数、以及各参与机构定制环境参数。
在一种可能的实施例中,获得模块201具体用于:
响应于在一级控台界面对任一部署单元的第一操作,从一级控台界面切换至二级控台界面;
响应于在二级控台界面对任一部署动作的第二操作,从二级控台界面切换至三级控台界面;
响应于在三级控台界面对任一服务单元的第三操作,从三级控台界面切换至四级控台界面;
响应于在四级控台界面对任一版本包的第四操作,基于任一版本包,打包任一服务单元,获得任一服务单元的容器。
在一种可能的实施例中,四级控台界面显示有多个版本包的信息,每个版本包的信息包括每个版本包的第一哈希值;
该装置还包括校验模块205,校验模块205用于:
在响应于在四级控台界面对任一版本包的第四操作之前,使用预设的哈希算法获得任一版本包的第二哈希值;
若第二哈希值与任一版本包的第一哈希值相同,则确定任一版本包未被更改。
作为一种实施例,图3论述的装置可以用于执行图1所示的实施例中所述的方法,因此,对于该装置的各功能模块所能够实现的功能等可参考图1所示的实施例的描述,此处不再赘述。
基于本申请提供的区块链分布式系统部署装置,对区块链分布式系统涉及的服务单元都进行容器化,使服务单元能够快速分发和移植,且预先配置了模板,直接根据模板涉及的参数项可以快速获取相应的参数文件,基于该服务单元的参数文件,动态生成该服务单元的配置文件,最后基于该服务单元的配置文件,运行该服务单元的容器,从而实现区块链分布式系统的快速部署,且通过容器也可以方便后续对区块链分布式系统的各个服务单元进行维护。
基于同一发明构思,本申请实施例提供一种电子设备,该设备可以实现前文论述的区块链分布式系统部署设备的功能,请参照图3,该设备包括:
至少一个处理器31,以及与至少一个处理器31连接的存储器32,本申请实施例中不限定处理器31与存储器32之间的具体连接介质,图3中是以处理器31和存储器32之间通过总线30连接为例。总线30在图3中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线30可以分为地址总线、数据总线、控制总线等,为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器31也可以称为控制器,对于名称不做限制。
在本申请实施例中,存储器32存储有可被至少一个处理器31执行的指令,至少一个处理器31通过执行存储器32存储的指令,可以执行前文论述区块链分布式系统部署方法。处理器31可以实现图2所示的区块链分布式系统部署装置中各个模块的功能。
其中,处理器31是该装置的控制中心,可以利用各种接口和线路连接整个该控制设备的各个部分,通过运行或执行存储在存储器32内的指令以及调用存储在存储器32内的数据,该装置的各种功能和处理数据,从而对该装置进行整体监控。
在一种可能的设计中,处理器31可包括一个或多个处理单元,处理器31可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器31中。在一些实施例中,处理器31和存储器32可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器31可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的区块链分布式系统部署方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器32作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器32可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random Access Memory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等。存储器32是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器32还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
通过对处理器31进行设计编程,可以将前述实施例中介绍的区块链分布式系统部署方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图1所示的实施例的区块链分布式系统部署方法的步骤。如何对处理器31进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
基于同一发明构思,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被计算机执行时,使计算机执行如前文论述任一的区块链分布式系统部署方法。由于上述计算机可读存储介质解决问题的原理与区块链分布式系统部署方法相似,因此上述计算机可读存储介质的实施可以参见方法的实施,重复之处不再赘述。
基于同一发明构思,本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行如前文论述任一的区块链分布式系统部署方法。由于上述计算机程序产品解决问题的原理与区块链分布式系统部署方法相似,因此上述计算机程序产品的实施可以参见方法的实施,重复之处不再赘述。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本发明的实施方式中提供的区块链分布式系统部署方法的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等,或者上述的任意合适的组合。
可以用一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (11)
1.一种区块链分布式系统部署方法,其特征在于,包括:
打包任一服务单元,获得所述任一服务单元的容器,其中,所述任一服务单元为所述区块链分布式系统涉及的多个服务单元中的一个服务单元;
基于预配置的模板,获取所述任一服务单元的参数文件,其中,所述参数文件为所述模板涉及的参数项的具体值;
基于所述任一服务单元的参数文件,生成所述任一服务单元的配置文件;
基于所述任一服务单元的配置文件,运行所述任一服务单元的容器。
2.如权利要求1所述的方法,其特征在于,所述模板涉及的参数项包括联盟平台参数、各参与机构基本参数、以及各参与机构定制环境参数。
3.如权利要求1或2所述的方法,其特征在于,打包任一服务单元,获得所述任一服务单元的容器,包括:
响应于在一级控台界面对任一部署单元的第一操作,从所述一级控台界面切换至二级控台界面;
响应于在所述二级控台界面对任一部署动作的第二操作,从所述二级控台界面切换至三级控台界面;
响应于在所述三级控台界面对任一服务单元的第三操作,从所述三级控台界面切换至四级控台界面;
响应于在所述四级控台界面对任一版本包的第四操作,基于所述任一版本包,打包所述任一服务单元,获得所述任一服务单元的容器。
4.如权利要求3所述的方法,其特征在于,所述四级控台界面显示有多个版本包的信息,每个版本包的信息包括每个版本包的第一哈希值;在响应于在所述四级控台界面对任一版本包的第四操作之前,所述方法还包括:
使用预设的哈希算法获得所述任一版本包的第二哈希值;
若所述第二哈希值与所述任一版本包的第一哈希值相同,则确定所述任一版本包未被更改。
5.一种区块链分布式系统部署装置,其特征在于,包括:
获得模块,用于打包任一服务单元,获得所述任一服务单元的容器,其中,所述任一服务单元为所述区块链分布式系统涉及的多个服务单元中的一个服务单元;
获取模块,用于基于预配置的模板,获取所述任一服务单元的参数文件,其中,所述参数文件为所述模板涉及的参数项的具体值;
生成模块,用于基于所述任一服务单元的参数文件,生成所述任一服务单元的配置文件;
运行模块,用于基于所述任一服务单元的配置文件,运行所述任一服务单元的容器。
6.如权利要求5所述的装置,其特征在于,所述模板涉及的参数项包括联盟平台参数、各参与机构基本参数、以及各参与机构定制环境参数。
7.如权利要求5或6所述的装置,其特征在于,所述获得模块具体用于:
响应于在一级控台界面对任一部署单元的第一操作,从所述一级控台界面切换至二级控台界面;
响应于在所述二级控台界面对任一部署动作的第二操作,从所述二级控台界面切换至三级控台界面;
响应于在所述三级控台界面对任一服务单元的第三操作,从所述三级控台界面切换至四级控台界面;
响应于在所述四级控台界面对任一版本包的第四操作,基于所述任一版本包,打包所述任一服务单元,获得所述任一服务单元的容器。
8.如权利要求7所述的装置,其特征在于,所述四级控台界面显示有多个版本包的信息,每个版本包的信息包括每个版本包的第一哈希值;
所述装置还包括校验模块,所述校验模块用于:
在响应于在所述四级控台界面对任一版本包的第四操作之前,使用预设的哈希算法获得所述任一版本包的第二哈希值;
若所述第二哈希值与所述任一版本包的第一哈希值相同,则确定所述任一版本包未被更改。
9.一种电子设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行权利要求1-4中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行如权利要求1-4中任一项所述的方法。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述如权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111481349.8A CN114138909A (zh) | 2021-12-06 | 2021-12-06 | 一种区块链分布式系统部署方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111481349.8A CN114138909A (zh) | 2021-12-06 | 2021-12-06 | 一种区块链分布式系统部署方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114138909A true CN114138909A (zh) | 2022-03-04 |
Family
ID=80384190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111481349.8A Pending CN114138909A (zh) | 2021-12-06 | 2021-12-06 | 一种区块链分布式系统部署方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114138909A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115348168A (zh) * | 2022-07-21 | 2022-11-15 | 金蝶软件(中国)有限公司 | 一种区块链网络的部署方法及装置 |
-
2021
- 2021-12-06 CN CN202111481349.8A patent/CN114138909A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115348168A (zh) * | 2022-07-21 | 2022-11-15 | 金蝶软件(中国)有限公司 | 一种区块链网络的部署方法及装置 |
CN115348168B (zh) * | 2022-07-21 | 2024-03-19 | 金蝶软件(中国)有限公司 | 一种区块链网络的部署方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10078511B2 (en) | Generating and managing applications using any number of different platforms | |
Petcu et al. | Portable cloud applications—from theory to practice | |
CN112486547B (zh) | 多租户场景下的应用程序更新方法、装置及电子设备 | |
US11340893B2 (en) | Mobile application update preserving changes to the application made by a client | |
US11797424B2 (en) | Compliance enforcement tool for computing environments | |
CN112256388A (zh) | 基于容器的区块链网络部署方法、装置、设备及存储介质 | |
Tulloch | Introducing Windows Azure for IT Professionals | |
CN110851167A (zh) | 容器环境更新方法、装置、设备及存储介质 | |
CN112104723A (zh) | 一种多集群的数据处理系统及方法 | |
JP2021509498A (ja) | コンピューティング・デバイス | |
US9881144B2 (en) | Identifying usage of code | |
Colombo-Mendoza et al. | MobiCloUP!: a PaaS for cloud services-based mobile applications | |
US20230009930A1 (en) | Continuous Liveness and Integrity of Applications During Migration | |
US20180316777A1 (en) | Invoking enhanced plug-ins and creating workflows having a series of enhanced plug-ins | |
US10606480B2 (en) | Scale-out container volume service for multiple frameworks | |
US20180046393A1 (en) | Dynamic compression for runtime services | |
US20200274758A1 (en) | Provisioning hybrid cloud resources in an operating environment | |
CN114138909A (zh) | 一种区块链分布式系统部署方法、装置、设备及介质 | |
Patterson | Learn AWS Serverless Computing: A Beginner's Guide to Using AWS Lambda, Amazon API Gateway, and Services from Amazon Web Services | |
CN114930788A (zh) | 安全地处理多租户容器中的集成消息流 | |
CN110489090A (zh) | 一种基于应用模型的应用软件开发方法及系统 | |
CN117859309A (zh) | 自动选择在其上执行任务的节点 | |
CN112181401A (zh) | 应用构建方法及应用构建平台 | |
US20230037986A1 (en) | Autoencryption system for data in a container | |
US20230289158A1 (en) | Instantiated deployment of microservices |
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 |