CN110098954A - Hyperledger Fabric网络的创建方法、控制器及存储介质 - Google Patents

Hyperledger Fabric网络的创建方法、控制器及存储介质 Download PDF

Info

Publication number
CN110098954A
CN110098954A CN201910251318.XA CN201910251318A CN110098954A CN 110098954 A CN110098954 A CN 110098954A CN 201910251318 A CN201910251318 A CN 201910251318A CN 110098954 A CN110098954 A CN 110098954A
Authority
CN
China
Prior art keywords
component
module information
fabric network
hyperledger fabric
created
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.)
Granted
Application number
CN201910251318.XA
Other languages
English (en)
Other versions
CN110098954B (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 Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201910251318.XA priority Critical patent/CN110098954B/zh
Publication of CN110098954A publication Critical patent/CN110098954A/zh
Priority to SG10201910676VA priority patent/SG10201910676VA/en
Priority to US16/691,353 priority patent/US11307849B2/en
Priority to KR1020190151295A priority patent/KR102354536B1/ko
Priority to JP2019211259A priority patent/JP6928066B2/ja
Application granted granted Critical
Publication of CN110098954B publication Critical patent/CN110098954B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0876Aspects of the degree of configuration automation
    • H04L41/0883Semiautomatic configuration, e.g. proposals from system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Automation & Control Theory (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及区块链技术领域,公开了一种Hyperledger Fabric网络的创建方法、控制器及存储介质,解决在创建Fabric网络时,现有技术中需要用户额外学习脚本的编写,创建方式不方便,以及需要单独开发用于部署的后端服务,导致开发成本高的问题。所述方法包括:获取在kubernetes集群中创建Hyperledger Fabric网络所需的配置文件;根据所述配置文件以及预设状态机,在所述kubernetes集群中创建Hyperledger Fabric网络。本发明实施例适用于Hyperledger Fabric网络的创建过程。

Description

Hyperledger Fabric网络的创建方法、控制器及存储介质
技术领域
本发明涉及区块链技术领域,具体地,涉及一种Hyperledger Fabric网络的创建方法、控制器及存储介质。
背景技术
Hyperledger Fabric(超级账本,以下简称为Fabric)网络是一个模块化的分布式账本解决方案支撑平台。在现有技术中创建Fabirc网络有两种方式,一种是使用自动化部署工具(例如ansible),通过部署脚本的方式,将Fabric网络组件按照顺序部署到环境中。这种方式比较原始,就是将最原始的手动挨个部署网络组件的方式进行了一个脚本化的过程,实现了自动创建Fabric网络。另一种方式是使用开发的后端服务,来进行Fabric网络的创建。例如,如果需要将Fabric网路部署到kubernetes集群中,需要开发和kubernetes交互的后端服务,通过调用后端服务的相关接口,在kubernetes集群中进行Fabric网络的创建。
对于现有技术中的第一种创建方式,需要用户额外学习脚本的编写,对于用户不够方便,而第二种创建方式,由于需要单独开发用于部署的后端服务,开发成本高,占用资源较多。
发明内容
本发明的目的是为了解决在创建Fabric网络时,现有技术中需要用户额外学习脚本的编写,创建方式不方便,以及需要单独开发用于部署的后端服务,导致开发成本高的问题,提供了一种Hyperledger Fabric网络的创建方法、控制器及存储介质,通过配置文件以及预设状态机,在kubernetes集群中创建Hyperledger Fabric网络,实现了自动化将fabric网络部署于kubernetes集群,节省了硬件资源以及人力投入。
为了实现上述目的,本发明第一方面实施例提供一种Hyperledger Fabric网络的创建方法,所述方法包括:获取在kubernetes集群中创建HyperledgerFabric网络所需的配置文件;根据所述配置文件以及预设状态机,在所述kubernetes集群中创建HyperledgerFabric网络。
进一步地,所述配置文件中包括组件信息,所述根据所述配置文件以及预设状态机,在所述kubernetes集群中创建Hyperledger Fabric网络包括:根据所述预设状态机中组件的创建顺序以及所述组件信息,在所述kubernetes集群中创建Hyperledger Fabric网络。
进一步地,所述根据所述预设状态机中组件的创建顺序以及所述组件信息,在所述kubernetes集群中创建Hyperledger Fabric网络包括:从所述组件信息中获取元信息,并将所述元信息进行初始化;根据初始化后的元信息创建组件关联文件;当所述组件关联文件创建成功后,根据所述组件信息中的Mysql组件信息,创建Mysql组件;当所述Mysql组件创建成功后,根据所述组件信息中的CA组件信息,创建CA组件;当所述CA组件创建成功后,根据所述组件信息创建证书文件;当所述证书文件创建成功后,根据所述组件信息中的Orderer组件信息,创建Orderer组件;当所述Orderer组件创建成功后,根据所述组件信息中的Peer组件信息,创建Peer组件;当所述Peer组件创建成功后,确定在所述kubernetes集群中成功创建所述HyperledgerFabric网络,并且所述Hyperledger Fabric网络处于运行状态。
进一步地,在所述kubernetes集群中创建Hyperledger Fabric网络之后,所述方法还包括:监测所述Hyperledger Fabric网络中各组件的运行状态;当监测到所述Hyperledger Fabric网络中存在停止运行的组件时,根据所述组件信息中与所述停止运行的组件对应的组件信息,重新创建所述停止运行的组件。
进一步地,所述方法还包括:当获取到升级配置文件时,根据所述升级配置文件以及所述预设状态机,在所述kubernetes集群中重新创建Hyperledger Fabric网络。
本发明第二方面实施例提供一种控制器,包括:获取单元,用于获取在kubernetes集群中创建Hyperledger Fabric网络所需的配置文件;创建单元,用于根据所述配置文件以及预设状态机,在所述kubernetes集群中创建Hyperledger Fabric网络。
进一步地,所述创建单元还用于根据所述预设状态机中组件的创建顺序以及所述组件信息,在所述kubernetes集群中创建Hyperledger Fabric网络。
进一步地,所述创建单元还用于从所述组件信息中获取元信息,并将所述元信息进行初始化;根据初始化后的元信息创建组件关联文件;当所述组件关联文件创建成功后,根据所述组件信息中的Mysql组件信息,创建Mysql组件;当所述Mysql组件创建成功后,根据所述组件信息中的CA组件信息,创建CA组件;当所述CA组件创建成功后,根据所述组件信息创建证书文件;当所述证书文件创建成功后,根据所述组件信息中的Orderer组件信息,创建Orderer组件;当所述Orderer组件创建成功后,根据所述组件信息中的Peer组件信息,创建Peer组件;当所述Peer组件创建成功后,确定在所述kubernetes集群中成功创建所述Hyperledger Fabric网络,并且所述Hyperledger Fabric网络处于运行状态。
进一步地,所述控制器还包括:监测单元,用于监测所述HyperledgerFabric网络中各组件的运行状态;所述创建单元还用于当监测到所述Hyperledger Fabric网络中存在停止运行的组件时,根据所述组件信息中与所述停止运行的组件对应的组件信息,重新创建所述停止运行的组件。
进一步地,所述获取单元还用于获取升级配置文件;所述创建单元还用于根据所述升级配置文件以及所述预设状态机,在所述kubernetes集群中重新创建HyperledgerFabric网络。
本发明第三方面实施例提供一种存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如上所述的Hyperledger Fabric网络的创建方法。
通过上述技术方案,获取在kubernetes集群中创建Hyperledger Fabric网络所需的配置文件,并根据所述配置文件以及预设状态机,在所述kubernetes集群中创建Hyperledger Fabric网络。本发明实施例解决了现有技术中在创建Fabric网络时,需要用户额外学习脚本的编写,创建方式不方便,以及需要单独开发用于部署的后端服务,导致开发成本高的问题,实现了自动化将fabric网络部署于kubernetes集群,节省了硬件资源以及人力投入。
本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:
图1是本发明实施例提供的一种Hyperledger Fabric网络的创建方法的流程示意图;
图2是本发明实施例提供的预设状态机的示意图;
图3是本发明实施例提供的一种控制器的结构示意图;
图4是本发明实施例提供的另一种控制器的结构示意图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
在Kubernetes集群中,通过创建多个容器,使得每个容器里面运行一个应用程序实例,从而配置和管理复杂有状态的应用程序实例。但是现有技术中在Kubernetes集群中部署Hyperledger Fabric网络时,需要开发与Kubernetes集群交互的后端服务,开发成本较高。在本发明实施例中,利用定制化的Fabric Operator在kubernetes集群中自动化创建Hyperledger Fabric网络,下面将详细描述具体创建过程。
图1是本发明实施例提供的一种Hyperledger Fabric网络的创建方法的流程示意图。如图1所示,所述方法应用于Fabric Operator,其是部署于kubernetes集群中用来监控管理Hyperledger Fabric网络的控制器,所述方法包括如下步骤:
步骤101,获取在kubernetes集群中创建Hyperledger Fabric网络所需的配置文件;
步骤102,根据所述配置文件以及预设状态机,在所述kubernetes集群中创建Hyperledger Fabric网络。
在本发明实施例中应用的kubernetes集群为Kubernetes 1.7及以上版本,其支持CRD(Custom Resources Definitions,自定义资源定义),因此可以自定义kubernetes集群的资源类型。所述配置文件就是自定义的资源类型,其中包含了创建Hyperledger Fabric网络所需的所有组件信息。这些组件信息包括CA组件信息,用来签发网络需要的证书;Mysql组件信息,用来存储CA组件签发的证书;Orderer组件信息,用来进行交易排序;Peer组件信息,用来进行交易的执行和记账。
其中,根据所述预设状态机中组件的创建顺序以及所述组件信息,在所述kubernetes集群中创建Hyperledger Fabric网络。如图2所示,首先,从所述组件信息中获取元信息,并将所述元信息进行初始化,根据根据初始化后的元信息创建组件关联文件。当所述组件关联文件创建成功后,根据所述组件信息中的Mysql组件信息,创建Mysql组件。当所述Mysql组件创建成功后,根据所述组件信息中的CA组件信息,创建CA组件。当所述CA组件创建成功后,根据所述组件信息创建证书文件。当所述证书文件创建成功后,根据所述组件信息中的Orderer组件信息,创建Orderer组件。当所述Orderer组件创建成功后,根据所述组件信息中的Peer组件信息,创建Peer组件。当所述Peer组件创建成功后,确定在所述kubernetes集群中成功创建所述Hyperledger Fabric网络,并且所述Hyperledger Fabric网络处于运行状态。其中,在上述创建每一个组件时,若是创建失败,则直接退出HyperledgerFabric网络的创建过程,并给出创建失败的提示,以便用户查看创建失败的原因。
另外,在创建上述每个组件的时候,均需要循环执行以下过程:监控每个组件的当前状态,然后分析当前状态与组件信息中的期望状态的差别,通过执行与组件对应的操作,使对应组件的当前状态达到期望状态。
其中,Fabric Operator本身作为一种服务部署于kubernetes集群中的控制器,可以直接与kubernetes集群的Master交互,并可以使用kubernetes集群中的kubectl命令来管理,而且可以使用kubernetes集群中的对象类型来管理,同时显示在kubernetes集群中的dashboard上。另外,Fabric Operator还可以遵守kubernetes集群中的API规则限制,复用kubernetes API的公共功能,调用API部署相应的kubernetes资源,比如CRUD、watch、内置的认证和授权等。从而,由于Fabric Operator本身处于kubernetes集群内,可自由调用kubernetes集群中的资源,而无需如现有技术中需要单独开发用于部署HyperledgerFabric网络的后端服务,节省了硬件资源,也节省了不同网络环境下后端服务于集群交互的开销。
在本发明的一种实施方式中,当所述kubernetes集群中创建HyperledgerFabric网络之后,还可以通过监控Hyperledger Fabric网络中各组件的运行状态,进行自动化运维。具体是监测所述Hyperledger Fabric网络中各组件的运行状态。当监测到所述Hyperledger Fabric网络中存在停止运行的组件时,则根据所述组件信息中与所述停止运行的组件对应的组件信息,重新创建所述停止运行的组件,从而无需因为组件出问题而人工介入进行维护,节省人力成本。
另外,在本发明的另一种实施方式中,在对Hyperledger Fabric网络进行升级时,可通过更改所述配置文件即可对所述Hyperledger Fabric网络进程重新配置,当获取到升级配置文件时,可根据所述升级配置文件以及所述预设状态机,在所述kubernetes集群中重新创建Hyperledger Fabric网络。其中,升级过程与创建过程相同,均是按照所述预设状态机以及所述升级配置文件中的组件信息,按照组件的创建顺序创建Hyperledger Fabric网络。其中,也是监控每个组件的当前状态,然后分析当前状态与组件信息中的期望状态的差别,通过执行与组件对应的操作,使对应组件的当前状态达到期望状态,继而得到处于运行状态的Hyperledger Fabric网络。
通过本发明实施例,可将Hyperledger Fabric网络自动化部署于kubernetes集群中,通过Fabric Operator在kubernetes集群中维护HyperledgerFabric网络的稳定性,保证其始终处于期望状态。本发明实施例节省了现有技术中需要的专属部署后端服务的相关软件硬件资源,Hyperledger Fabric网络的运行均处于kubernetes集群中,也节省了原先集群外,甚至不同网络环境下后端服务与集群交互的开销,而且Fabric Operator自动化进行Hyperledger Fabric网络的创建工作,释放了Hyperledger Fabric网络创建中不必要的人力投入。
相应的,图3是本发明实施例提供的一种控制器的结构示意图。如图3所示,所述控制器为上述实施例提到的Fabric Operator,所述控制器30包括:获取单元31,用于获取在kubernetes集群中创建Hyperledger Fabric网络所需的配置文件;创建单元32,用于根据所述配置文件以及预设状态机,在所述kubernetes集群中创建Hyperledger Fabric网络。
其中,所述创建单元还用于根据所述预设状态机中组件的创建顺序以及所述组件信息,在所述kubernetes集群中创建Hyperledger Fabric网络。
另外,所述创建单元还用于从所述组件信息中获取元信息,并将所述元信息进行初始化;根据初始化后的元信息创建组件关联文件;当所述组件关联文件创建成功后,根据所述组件信息中的Mysql组件信息,创建Mysql组件;当所述Mysql组件创建成功后,根据所述组件信息中的CA组件信息,创建CA组件;当所述CA组件创建成功后,根据所述组件信息创建证书文件;当所述证书文件创建成功后,根据所述组件信息中的Orderer组件信息,创建Orderer组件;当所述Orderer组件创建成功后,根据所述组件信息中的Peer组件信息,创建Peer组件;当所述Peer组件创建成功后,确定在所述kubernetes集群中成功创建所述Hyperledger Fabric网络,并且所述Hyperledger Fabric网络处于运行状态。
如图4所示,所述控制器30还包括:监测单元41,用于监测所述HyperledgerFabric网络中各组件的运行状态;所述创建单元还用于当监测到所述Hyperledger Fabric网络中存在停止运行的组件时,根据所述组件信息中与所述停止运行的组件对应的组件信息,重新创建所述停止运行的组件。
进一步地,所述获取单元还用于获取升级配置文件;所述创建单元还用于根据所述升级配置文件以及所述预设状态机,在所述kubernetes集群中重新创建HyperledgerFabric网络。
本发明实施例提供的控制器,通过配置文件以及预设状态机,在kubernetes集群中创建Hyperledger Fabric网络,实现了自动化将fabric网络部署于kubernetes集群,节省了硬件资源以及人力投入。
相应的,本发明实施例还提供一种存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例所述的HyperledgerFabric网络的创建方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (11)

1.一种Hyperledger Fabric网络的创建方法,其特征在于,包括:
获取在kubernetes集群中创建Hyperledger Fabric网络所需的配置文件;
根据所述配置文件以及预设状态机,在所述kubernetes集群中创建HyperledgerFabric网络。
2.根据权利要求1所述的方法,其特征在于,所述配置文件中包括组件信息,所述根据所述配置文件以及预设状态机,在所述kubernetes集群中创建Hyperledger Fabric网络包括:
根据所述预设状态机中组件的创建顺序以及所述组件信息,在所述kubernetes集群中创建Hyperledger Fabric网络。
3.根据权利要求2所述的方法,其特征在于,所述根据所述预设状态机中组件的创建顺序以及所述组件信息,在所述kubernetes集群中创建Hyperledger Fabric网络包括:
从所述组件信息中获取元信息,并将所述元信息进行初始化;
根据初始化后的元信息创建组件关联文件;
当所述组件关联文件创建成功后,根据所述组件信息中的Mysql组件信息,创建Mysql组件;
当所述Mysql组件创建成功后,根据所述组件信息中的CA组件信息,创建CA组件;
当所述CA组件创建成功后,根据所述组件信息创建证书文件;
当所述证书文件创建成功后,根据所述组件信息中的Orderer组件信息,创建Orderer组件;
当所述Orderer组件创建成功后,根据所述组件信息中的Peer组件信息,创建Peer组件;
当所述Peer组件创建成功后,确定在所述kubernetes集群中成功创建所述Hyperledger Fabric网络,并且所述Hyperledger Fabric网络处于运行状态。
4.根据权利要求1所述的方法,其特征在于,在所述kubernetes集群中创建Hyperledger Fabric网络之后,所述方法还包括:
监测所述Hyperledger Fabric网络中各组件的运行状态;
当监测到所述Hyperledger Fabric网络中存在停止运行的组件时,根据所述组件信息中与所述停止运行的组件对应的组件信息,重新创建所述停止运行的组件。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当获取到升级配置文件时,根据所述升级配置文件以及所述预设状态机,在所述kubernetes集群中重新创建Hyperledger Fabric网络。
6.一种控制器,其特征在于,包括:
获取单元,用于获取在kubernetes集群中创建Hyperledger Fabric网络所需的配置文件;
创建单元,用于根据所述配置文件以及预设状态机,在所述kubernetes集群中创建Hyperledger Fabric网络。
7.根据权利要求6所述的控制器,其特征在于,所述创建单元还用于根据所述预设状态机中组件的创建顺序以及所述组件信息,在所述kubernetes集群中创建HyperledgerFabric网络。
8.根据权利要求7所述的控制器,其特征在于,所述创建单元还用于从所述组件信息中获取元信息,并将所述元信息进行初始化;根据初始化后的元信息创建组件关联文件;当所述组件关联文件创建成功后,根据所述组件信息中的Mysql组件信息,创建Mysql组件;当所述Mysql组件创建成功后,根据所述组件信息中的CA组件信息,创建CA组件;当所述CA组件创建成功后,根据所述组件信息创建证书文件;当所述证书文件创建成功后,根据所述组件信息中的Orderer组件信息,创建Orderer组件;当所述Orderer组件创建成功后,根据所述组件信息中的Peer组件信息,创建Peer组件;当所述Peer组件创建成功后,确定在所述kubernetes集群中成功创建所述Hyperledger Fabric网络,并且所述Hyperledger Fabric网络处于运行状态。
9.根据权利要求6所述的控制器,其特征在于,所述控制器还包括:
监测单元,用于监测所述Hyperledger Fabric网络中各组件的运行状态;
所述创建单元还用于当监测到所述Hyperledger Fabric网络中存在停止运行的组件时,根据所述组件信息中与所述停止运行的组件对应的组件信息,重新创建所述停止运行的组件。
10.根据权利要求6所述的控制器,其特征在于,
所述获取单元还用于获取升级配置文件;
所述创建单元还用于根据所述升级配置文件以及所述预设状态机,在所述kubernetes集群中重新创建Hyperledger Fabric网络。
11.一种存储介质,其特征在于,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述权利要求1-5任一项所述的Hyperledger Fabric网络的创建方法。
CN201910251318.XA 2019-03-29 2019-03-29 Hyperledger Fabric网络的创建方法、控制器及存储介质 Active CN110098954B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201910251318.XA CN110098954B (zh) 2019-03-29 2019-03-29 Hyperledger Fabric网络的创建方法、控制器及存储介质
SG10201910676VA SG10201910676VA (en) 2019-03-29 2019-11-14 Method for creating hyperledger fabric network, controller and storage medium
US16/691,353 US11307849B2 (en) 2019-03-29 2019-11-21 Method for creating hyperledger fabric network, controller and storage medium
KR1020190151295A KR102354536B1 (ko) 2019-03-29 2019-11-22 하이퍼레저 패브릭 네트워크 구축 방법과 컨트롤러 및 저장 매체
JP2019211259A JP6928066B2 (ja) 2019-03-29 2019-11-22 Hyperledger Fabricネットワークの構築方法、コントローラ及び記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910251318.XA CN110098954B (zh) 2019-03-29 2019-03-29 Hyperledger Fabric网络的创建方法、控制器及存储介质

Publications (2)

Publication Number Publication Date
CN110098954A true CN110098954A (zh) 2019-08-06
CN110098954B CN110098954B (zh) 2022-06-28

Family

ID=67444187

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910251318.XA Active CN110098954B (zh) 2019-03-29 2019-03-29 Hyperledger Fabric网络的创建方法、控制器及存储介质

Country Status (5)

Country Link
US (1) US11307849B2 (zh)
JP (1) JP6928066B2 (zh)
KR (1) KR102354536B1 (zh)
CN (1) CN110098954B (zh)
SG (1) SG10201910676VA (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111130841A (zh) * 2019-11-21 2020-05-08 深圳壹账通智能科技有限公司 区块链网络部署方法、电子装置及计算机可读存储介质
CN111930347A (zh) * 2020-07-24 2020-11-13 联想(北京)有限公司 一种网络创建方法及装置、电子设备
CN114253628A (zh) * 2021-12-22 2022-03-29 金蝶软件(中国)有限公司 一种中间件的自动部署装置及自动部署方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11762656B2 (en) * 2020-07-13 2023-09-19 Salesforce, Inc. Service fabrication tool
CN112269640B (zh) * 2020-11-02 2023-03-28 浪潮云信息技术股份公司 一种实现容器云组件的生命周期管理的方法
KR102241940B1 (ko) * 2020-11-30 2021-04-20 주식회사 한국정보보호경영연구소 블록체인 기반의 응용 소프트웨어 확장 서비스 제공장치 및 방법
US11836714B2 (en) 2021-07-07 2023-12-05 Ava Labs, Inc. Secure and trustworthy bridge for transferring assets across networks with different data architecture
US11496327B1 (en) 2021-07-07 2022-11-08 Ava Labs, Inc. Secure and trustworthy bridge for transferring assets across different networks
US11829780B2 (en) * 2021-09-22 2023-11-28 International Business Machines Corporation Open-source container cluster hot plug adapter
KR20230169699A (ko) 2022-06-09 2023-12-18 주식회사 엘지씨엔에스 블록체인 네트워크의 구성 방법, 디바이스 및 기록매체
CN115314449B (zh) * 2022-07-20 2023-10-27 江苏金融租赁股份有限公司 一种微服务平台的剩余资源评估方法及设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102224496A (zh) * 2008-11-21 2011-10-19 微软公司 公共配置应用程序编程接口

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11556521B2 (en) * 2017-09-29 2023-01-17 Oracle International Corporation System and method for providing an interface for a blockchain cloud service
US11245756B2 (en) * 2018-09-13 2022-02-08 International Business Machines Corporation Sparse peer with transient participation
CA3061603A1 (en) * 2018-11-14 2020-05-14 Royal Bank Of Canada System and method for storing contract data structures on permissioned distributed ledgers

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102224496A (zh) * 2008-11-21 2011-10-19 微软公司 公共配置应用程序编程接口

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
COLLINS WEKESA DELAN: "Deploying Hyperledger Fabric on Kubernetes", 《OPENSOURCE.COM》 *
HYPERLEDGER: "How to Deploy Hyperledger Fabric on Kubernetes-Part II", 《HYPERLEDGER》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111130841A (zh) * 2019-11-21 2020-05-08 深圳壹账通智能科技有限公司 区块链网络部署方法、电子装置及计算机可读存储介质
WO2021098140A1 (zh) * 2019-11-21 2021-05-27 深圳壹账通智能科技有限公司 区块链网络部署方法、电子装置及计算机可读存储介质
CN111130841B (zh) * 2019-11-21 2022-07-08 深圳壹账通智能科技有限公司 区块链网络部署方法、电子装置及计算机可读存储介质
CN111930347A (zh) * 2020-07-24 2020-11-13 联想(北京)有限公司 一种网络创建方法及装置、电子设备
CN114253628A (zh) * 2021-12-22 2022-03-29 金蝶软件(中国)有限公司 一种中间件的自动部署装置及自动部署方法

Also Published As

Publication number Publication date
JP2020166817A (ja) 2020-10-08
KR102354536B1 (ko) 2022-01-21
CN110098954B (zh) 2022-06-28
US11307849B2 (en) 2022-04-19
US20200310789A1 (en) 2020-10-01
KR20200115020A (ko) 2020-10-07
SG10201910676VA (en) 2020-10-29
JP6928066B2 (ja) 2021-09-01

Similar Documents

Publication Publication Date Title
CN110098954A (zh) Hyperledger Fabric网络的创建方法、控制器及存储介质
US20130179858A1 (en) Framework for automated testing of mobile apps
CN109144511B (zh) 数值模拟图形用户界面自动生成方法及系统
CN109725911A (zh) 一种多环境项目部署方法、装置、存储介质及处理器
US9696971B1 (en) Method and apparatus for generating and packaging integration workflow activities
CN111399840B (zh) 一种模块开发方法及装置
CN106878363A (zh) 一种信息处理方法、装置及系统
US11431563B1 (en) Intelligent management of cloud infrastructures using a cloud management platform
CN109145055A (zh) 一种基于Flink的数据同步方法和系统
CN108733589A (zh) 分布式事务热部署的实现方法和装置
US11315208B2 (en) Conceptual representation of business processes for cross-domain mapping
CN117616395A (zh) 迁移期间应用的连续活跃度和完整性
US20140309970A1 (en) Managing a model having an object cycle
US20200274758A1 (en) Provisioning hybrid cloud resources in an operating environment
US20170364390A1 (en) Automating enablement state inputs to workflows in z/osmf
US20140019515A1 (en) Adaptive business logic configurator
KR20150133902A (ko) 소프트웨어 제품 라인에 기반한 서비스 개발 시스템 및 방법
Rodrigues et al. Adaptive multi-agent system for a washing machine production line
CN109933325A (zh) 一种dex文件构建方法、装置及系统
CN111176912A (zh) 一种继电保护装置硬件配置信息管理系统和方法
EP3674886B1 (en) Function block framework generation
Kiran et al. Model-based testing for composite web services in cloud brokerage scenarios
Almeida et al. A component-based adaptation approach for multi-cloud applications
CN113326117B (zh) 一种任务调度方法、装置及设备
Madushan Cloud Native Applications with Ballerina: A guide for programmers interested in developing cloud native applications using Ballerina Swan Lake

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