CN111901149B - 自动生成和检测Fabric网络配置文件的方法及系统 - Google Patents
自动生成和检测Fabric网络配置文件的方法及系统 Download PDFInfo
- Publication number
- CN111901149B CN111901149B CN202010618155.7A CN202010618155A CN111901149B CN 111901149 B CN111901149 B CN 111901149B CN 202010618155 A CN202010618155 A CN 202010618155A CN 111901149 B CN111901149 B CN 111901149B
- Authority
- CN
- China
- Prior art keywords
- organization
- node
- fabric network
- configuration file
- configuration
- 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
Links
Images
Classifications
-
- 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
-
- 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/0866—Checking the configuration
-
- 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/0866—Checking the configuration
- H04L41/0873—Checking configuration conflicts between network elements
-
- 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/0889—Techniques to speed-up the configuration process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于互联网及区块链技术领域,公开了一种自动生成和检测Fabric网络配置文件的方法及系统,该方法包括:获取Orderer组织与Peer组织的数量,生成组织配置文件;获取Fabric网络所的共识机制类型与服务器IP地址,向Fabric网络的各个节点分配服务地址;基于保存的组织配置信息和节点服务地址,生成Fabric网络的通道配置文件;生成Fabric网络的节点配置文件,配置Fabric网络的各个节点;对形成的所述各配置文件进行检测。本发明通过生成器与检测器配合实现Fabric网络配置文件的全自动生成并检测,确保使用人员可以简单的使用几个配置参数来生成用于搭建Fabric网络的所有配置文件,并同时实现对配置文件的快速检测。
Description
技术领域
本发明属于互联网及区块链技术领域,尤其涉及一种自动生成和检测 Fabric网络配置文件的方法及系统。
背景技术
Hyperledger Fabric(以下简称Fabric)是一个开源区块链项目,通常用于搭建企业级联盟链。在现有技术中必须使用配置文件来进行fabric网络的实际搭建,主要配置文件有组织配置文件crypto-config.yaml、通道配置文件configtx.yaml、网络节点配置文件docker-compose.yaml。现有技术的主要问题有:
一、这种配置方式非常复杂,尤其是在拥有几百个节点的大型区块链项目中,配置文件中将包含上万个配置项,开发人员需要花费大量时间对各个区块链组织、通道及节点进行配置,这导致对大型项目进行详细配置的成本过高,且严重拖慢了整个区块链项目的部署速度。
二、不同配置文件之间有许多相互关联的配置项,极易产生配置冲突,令联盟链无法正常运行,甚至可能导致服务宕机等后果,严重威胁到了区块链系统的整体安全性。为了减少此类关联配置项之间的冲突,测试人员往往需要耗费很多精力来检查不同配置文件之间的配置是否能够兼容,尤其在大型区块链项目中,Fabric网络配置文件将异常庞大,进行人工逐项核对与测试的成本过高且效果差。
如何使得不了解Fabric配置文件内容与机制的用户也能对Fabric网络进行配置,从而降低fabric网络的配置门槛,方便非技术人员也能快速上手,并对Fabric网络进行更灵活的应用配置,为了目前亟待解决的问题。
发明内容
本发明的目的是,提供一种自动生成和检测Fabric网络配置文件的方法和系统,以降低用户对fabric网络的配置门槛,方便非技术人员快速上手并可对Fabric网络进行更灵活的应用配置。
本发明的第一方面,提供了一种自动生成和检测Fabric网络配置文件的方法,所述方法包括:
获取Orderer组织数量与Peer组织数量,生成Fabric网络的组织配置文件并存储组织配置信息;
获取Fabric网络所采用的共识机制类型与将部署于Fabric网络的服务器 IP地址,向Fabric网络的各个节点分配服务地址并存储节点服务地址;
基于保存的所述组织配置信息和节点服务地址,生成Fabric网络的通道配置文件;
生成Fabric网络的节点配置文件,配置Fabric网络的各个节点;
对形成的所述组织配置文件、通道配置文件及节点配置文件进行检测。
进一步地,生成所述Fabric网络的组织配置文件包括如下步骤:
获取Orderer组织数量与Peer组织数量;
生成Fabric网络中所有Orderer组织与Peer组织的组织编号及每个组织的组织配置信息;
新建一个组织配置文件,并在新建的所述组织配置文件中,加入生成的所有的Orderer组织与Peer组织的组织配置信息,形成带有所述组织配置信息的所述Fabric网络的组织配置文件。
进一步地,生成所述Fabric网络中的组织配置信息包括如下步骤:
获取所述Orderer组织与Peer组织的域名后缀、组织名称及组织节点数量的默认值;
将先前生成的组织编号作为后缀或前缀编入默认的域名后缀以及组织名称中,从而生成一个组织的组织配置信息;
将组织编号以及组织配置信息作为键值对存入数据库中。
进一步地,向Fabric网络的各个节点分配服务地址包括如下步骤:
计算所述Fabric网络所需的空闲端口的数量;
从服务器上查找空闲的端口号;
将获取到的服务器的端口号分配给每个Fabric网络节点,并使用端口号与服务器IP地址来合成节点服务地址;
将所述Fabric网络节点与节点服务地址的对应关系作为键值对记录在数据库中。
进一步地,生成所述Fabric网络的通道配置文件包括如下步骤:
将数据库中每个组织的组织配置信息以及节点的服务地址来生成系统通道的创世区块配置信息与应用通道的初始交易配置信息;其中,所述创世区块配置信息包含Orderer节点的服务地址以及Orderer组织与Peer组织的成员管理配置信息,所述应用通道的初始交易配置包含Peer组织的成员管理配置信息;
新建一个通道配置文件,在新建的所述通道配置文件中加入所述创世区块配置信息与初始交易配置信息,形成最终的通道配置文件;
通过Fabric中的网络配置工具生成Fabric网络的系统通道创世区块文件与应用通道初始配置交易文件。
进一步地,生成所述Fabric网络的节点配置文件包括如下步骤:
通过数据库查询各个Orderer组织与Peer组织的域名后缀、成员管理配置信息以及各个Fabric网络节点所对应的服务地址;
新建一个节点配置文件,并根据所述数据库中的存储信息在新建的节点配置文件中加入整个Fabric网络中的Orderer节点、Peer节点以及配套节点的配置信息。
进一步地,查找所述空闲端口包括如下步骤:
调取系统中默认的端口号的取值范围以及步长,从端口取值范围中按照步长依次选取端口,并查询端口是否已被占用;
若被查询的端口未被占用,则保存于Fabric网络的服务端口集合中;
依次查看端口直至集合中的端口号数量等于计算出的Fabric网络所需服务端口数量。
进一步地,对形成的所述组织配置文件、通道配置文件及节点配置文件进行检测的过程包括:
读取所述组织配置文件,检测是否存在格式错误或配置冲突,如无误则将组织的配置信息存入数据库中;
读取所述通道配置文件,检测组织的域名及节点服务地址是否正确,检测通道配置文件是否存在格式错误或配置冲突,如无误,则将读取到的所述成员管理配置信息及节点服务地址存入至数据库中;
读取所述节点配置文件,检测组织的域名和成员管理配置信息是否正确,检测节点配置文件是否格式错误或配置冲突,如无误,则将读取到的所述节点服务地址存入至数据库中;
从数据库中获取组织的配置信息和节点服务地址,检查通道配置文件中的组织数量是否正确、服务器端口是否空闲,检测通道配置文件与节点配置文件是否存在配置冲突或端口被占用。
进一步地,生成所述系统通道的创世区块配置信息与所述应用通道的初始交易配置信息的过程包括:
通过数据库查询各个Orderer组织与Peer组织的域名后缀以及各个 Fabric网络节点所对应的服务地址;
使用Orderer组织的域名后缀与各个Orderer节点对应的服务地址中的端口号来生成每个Orderer节点的相对服务地址;
根据Orderer组织与Peer组织的域名后缀来生成各组织的成员管理配置信息,包括组织成员管理ID、名称以及文件目录;
将所述组织编号及成员管理配置信息作为键值对保存在数据库中。
本发明的另一方面,还提供了一种自动生成和检测Fabric网络配置文件的系统,所述系统包括:生成器和检测器,其中,
所述生成器包括:
组织配置文件生成单元,根据获取的Orderer组织数量与Peer组织数量,生成Fabric网络的组织配置文件;
端口分配单元,根据获取的Fabric网络所采用的共识机制与将部署于 Fabric网络的服务器IP地址,向Fabric网络的各个节点分配服务地址;
通道配置文件生成单元,根据保存的组织配置信息和节点服务地址,生成Fabric网络的通道配置文件;
节点配置文件生成单元,用于生成节点配置文件,配置Fabric网络的各个节点;
所述检测器,对所述生成器生成的所述组织配置文件、通道配置文件、节点配置文件分别进行检测。
进一步地,所述检测器包括:
组织配置文件检测单元,用于检测所述组织配置文件生成单元生成的组织配置文件是否正确;
端口检测单元,用于检测服务器的端口是否可用;
通道配置文件检测单元,用于检测所述通道配置文件生成单元生成的通道配置文件是否正确;
节点配置文件检测单元,用于检测所述节点配置文件生成单元生成的节点配置文件是否正确。
与现有技术相比,本发明所提供的一种自动生成和检测Fabric网络配置文件的方法及系统,具有如下技术效果:
1、本发明将配置文件简化为几个输入的参数,最少四个参数(Orderer 组织数量、Peer组织数量、共识机制、部署服务器地址四个方面的配置参数),便可自动化生成Fabric配置文件,减少了用户需要考虑的配置项,无需使用者对配置文件的格式以及内容进行学习,不仅降低了用户的使用门槛,还节省了项目开发应用的时间。
2、本发明可通过一种生成器与一种检测器来实现Fabric网络配置文件的全自动生成并检测,确保使用人员可以简单的使用几个配置参数来生成用于搭建Fabric网络的所有配置文件,并同时实现对配置文件的快速检测。在实际应用中,可以使用该系统对Fabric网络进行快速配置,加快开发进度,节省项目开发应用的成本。同时通过检测减低了配置文件存在配置错误或配置冲突的可能性,增强了Fabric框架下的区块链网络的系统安全性。
附图说明
图1是本发明实施例中的自动生成和检测Fabric网络配置文件的方法流程图。
图2是本发明实施例中的生成器的结构示意图。
图3是本发明实施例中的检测器的结构示意图。
图4是本发明实施例中的生成器与检测器自动生成与检测配置文件的流程示意图。
图5是本发明实施例中的生成器的各单元协同生成配置文件的流程示意图。
图6是本发明实施例中的检测器的各单元协同检测配置文件的流程示意图。
具体实施方式
以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。如在说明书及权利要求当中使用了某些词汇来指称特定部件。本领域技术人员应可理解,硬件或软件制造商可能会用不同名词来称呼同一个部件。本说明书及权利要求并不以名称的差异来作为区分部件的方式,而是以部件在功能上的差异来作为区分的准则。说明书后续描述为实施本发明的较佳实施方式,然所述描述乃以说明本发明的一般原则为目的,并非用以限定本发明的范围。本发明的保护范围当视所附权利要求所界定者为准。
在Fabric网络中,可通过多个配置文件对Fabric网络进行全面配置,每个配置文件中都包括大量的配置参数且相互关联,使用这种方式可以有效配置与管理有着复杂结构的Fabric网络。但是现有技术中在编写配置文件时,由于配置参数过多、参数间的关联过于复杂,开发者往往被迫选择采用默认配置,极大限制了区块链网络结构设计的多样化。在本发明实施例中,根据用户提供的少量配置参数,可通过组织配置文件、通道配置文件、网络节点配置文件生成单元、端口分配单元及对应的检测单元来自动生成并检测Fabric网络所需的全部配置文件,下面将详细描述具体的配置生成和检测过程。
图1是本发明实施例提供的一种自动生成和检测Fabric网络配置文件的方法的流程示意图。如无特别说明,本发明实施例中所述的Fabric网络为Hyperledger Fabric 1.0及其以上版本,其主要配置文件涵盖了组织、节点、通道等方面的配置信息。如图1所示,本发明实施例公开的一种自动生成和检测Fabric网络配置文件的方法,包括如下步骤:
步骤S1、根据获取的Orderer组织数量与Peer组织数量,生成Fabric网络的组织配置文件。
组织配置文件,用来创建orderer组件与peer组件的组织结构,下面来对生成Fabric网络的组织配置文件的具体过程作详细描述。
首先,从用户提供的配置参数中获取Orderer组织数量与Peer组织数量,根据用户提供的这两个参数来生成网络中所有Orderer组织与Peer组织的组织编号以及每个组织的组织配置信息。然后,使用生成器来新建一个组织配置文件,在新建的组织配置文件中加入生成的所有Orderer与Peer组织的配置信息,从而形成最终的组织配置文件,用户随后可根据该配置文件通过 Fabric中的crytogen工具来生成Fabric网络的组织关系和身份证书。
其中,生成的每个组织的配置信息包含三个基本项:组织名称、域名后缀与组织节点数量,具体生成过程如下:首先调取系统中域名后缀、组织名称以及节点数量的默认值;之后将先前生成的组织编号作为后缀或前缀编入默认的域名后缀以及组织名称中,从而生成一个组织的配置信息;最后将组织编号以及组织配置信息作为键值对存入数据库中。
另外,用户还可以通过提供更多的配置参数,对fabric网络中使用的组织信息进行更详细更独特的配置。比如,提供每个Orderer与Peer组织的组织名称、域名后缀、节点数量、用户数、CA信息以及组织下节点的域名前缀。其中,CA信息包含国家、省份、地区、街道、邮编等。
步骤S2、根据获取的Fabric网络所采用的共识机制类型与即将部署于 Fabric网络所用的服务器IP地址,向Fabric网络的各个节点分配服务地址。
首先,从用户提供的配置参数中获取Fabric网络所采用的共识机制与即将部署Fabric网络所用的服务器IP地址这两个配置参数。之后,使用端口分配单元来为即将创建的Fabric网络中的每个节点分配一个服务地址,并将这种对应关系存入数据库中。
其中,为Fabric网络中各节点分配服务地址的具体过程如下:
第一步,计算该Fabric网络所需空闲端口的数量。具体来说,调取系统中各种共识机制下的配套节点数量以及各类节点所需端口数量的默认值,并通过数据库查询各个Orderer组织与Peer组织的节点数量,从而计算出 Orderer节点、Peer节点以及其他配套节点总共需要的服务端口数量,即 Fabric网络服务端口总数。例如,在kafka共识机制下,Fabric网络所需的服务端口数量为上述orderer、peer、kafka与zookeeper节点数量之和。
第二步,在用户提供的服务器上查找空闲的端口号。将调取系统中默认的端口号的取值范围以及步长,从端口取值范围中按照步长依次选取端口,并查询端口是否已被占用。若被查询的端口未被占用,则保存于Fabric 网络的服务端口集合中,依次查看端口直至集合中的端口号数量等于计算出的Fabric网络所需服务端口数量。
第三步,将获取到的服务端口集合中的端口号根据一定规则(或随机) 分配给每个Fabric网络节点,并使用端口号与服务器IP地址来合成节点的服务地址,将Fabric网络节点与服务器地址的对应关系作为键值对记录在数据库中。
另外,用户还可以通过提供更多配置参数,为不同的Fabric网络节点选择不同的服务器IP地址以及端口数量。例如,在kafka共识机制下,用户可选择将多个zookeeper节点部署在不同服务器中,那么需要额外再分配给每个zookeeper节点两个端口用于选举leader和集群内机器通讯。用户也可以为 Peer节点添加其他需要对外服务的端口,如REST服务端口、peer CLI端口、peer事件服务端口等等。
步骤S3、基于配置好的组织配置信息和分配的节点服务地址,生成 Fabric网络的通道配置文件。
通道配置文件,主要用来生成创世区块以及应用通道中的初始交易。下面来对生成Fabric网络的通道配置文件的具体过程作如下详述。
首先,使用生成器来新建一个通道配置文件。之后,将数据库中的组织配置信息以及节点服务地址来生成系统通道的创世区块配置信息与应用通道的初始交易配置信息。然后,在新建的通道配置文件中加入上述两种配置信息,从而形成最终的通道配置文件,用户随后可根据该配置文件通过Fabric中的configtxgen工具来生成Fabric网络的系统通道创世区块文件与应用通道初始配置交易文件。
其中,系统通道的创世区块配置信息包含二个基本项:Orderer节点的相对服务地址以及Orderer组织与Peer组织的成员管理配置,此外在kafka共识机制下还需对kafka节点的相对服务地址进行配置。应用通道的初始交易配置则只需包含Peer组织的成员管理这一个基础项。这样,通道配置文件最少可包含三个基本项。
生成上述三个基本项的具体过程如下:首先,通过数据库查询各个 Orderer组织与Peer组织的域名后缀以及各个Fabric网络节点所对应的服务地址,使用Orderer组织的域名后缀与各个Orderer节点对应的服务地址中的端口号来生成每个Orderer节点的相对服务地址。在kafka共识机制下,将根据各个kafka节点对应的服务地址中的端口号生成每个kafka节点的相对服务地址。之后,根据Orderer组织与Peer组织的域名后缀来生成各组织的成员管理配置,包括组织成员管理ID、名称以及文件目录。最后将组织编号以及成员管理配置作为键值对保存在数据库中。
另外,用户还可以通过提供更多的配置参数,对fabric网络中的通道进行更详细的配置。比如,提供区块最大字节数、区块最大交易数、区块建议字节数、区块打包的超时时间、应用通道中包含的Peer组织等等。
步骤S4、生成Fabric网络的节点配置文件,配置Fabric网络的各节点。
节点配置文件,主要用来创建orderer组件与peer组件的节点,生成Fabric网络的节点配置文件的具体过程如下:
首先,通过数据库查询各个Orderer组织与Peer组织的域名后缀、成员管理配置以及各个Fabric网络节点所对应的服务地址。之后,使用生成器来新建一个节点配置文件,并根据上述数据库中的信息在新建的节点配置文件中加入整个Fabric网络中的Orderer节点、Peer节点以及配套节点的配置信息。例如,在kafka共识机制下,除Orderer节点与Peer节点外,还将包含kafka 节点与zookeeper节点。
另外,用户还可以通过该提供更多的配置参数,对fabric网络中的通节点进行更详细的配置。比如,提供Fabric网络中Orderer节点的日志级别、是否激活TLS、是否启用日志与kafka进行交互、连接的kafka节点、尝试重新连接kafka的详细配置,Peer节点所使用的日志级别、选择leader的方式、是否激活TLS,kafka节点的消息最大字节数、副本最大字节数、是否开启非一致性的Leader选举、压缩日志保存的最长时间、最小同步备份、默认同步备份等配置参数。
步骤S5、检测Fabric网络的各配置文件。
参照图6所示,对生成完的组织配置文件、通道配置文件、节点配置文件的检测过程包括如下:
步骤S51:读取待检测的组织配置文件,检测组织配置是否存在格式错误,如无误将组织配置信息存入数据库中,如检测有误则说明组织配置有误,结束检测。
步骤S52:读取待检测的通道配置文件,检查组织域名、节点服务地址是否正确,检测通道配置是否存在格式错误或配置冲突,并将读取到的成员管理配置信息和节其它点服务地址(主要是orderer节点与Kafka节点的服务地址)存入数据库中;如检测有误,则说明通道配置存在错误,结束检测。
步骤S53:读取待检测的节点配置文件,检查组织域名、成员管理配置信息是否正确,检测节点配置文件是否存在格式错误或配置冲突,如无误,则存入节点服务地址(主要是orderer节点与Kafka节点之外的其它节点服务地址)至数据库;如检测有误,则说明节点配置存在错误,结束检测。
步骤S54:从数据库中获取组织配置信息与节点服务地址,检查通道配置文件中的组织数量是否正确、服务端口是否空闲,检测通道配置文件与节点配置文件是否存在配置冲突或端口被占用,如检测配置冲突或被占用,则说明端口配置错误,结束检测。
通过本发明实施例所述的自动生成和检测Fabric网络配置文件的方法,能够实现Fabric网络配置文件的自动化生成,确保使用人员可以简单的使用几个配置参数来生成用于搭建Fabric网络的所有配置文件。其简化了搭建Fabric网络所需要提供的配置内容,不需要Fabric网络的使用者对项目内部的实现机制有深入了解。
参照图2~图5所示,本发明的另一实施例还提供了一种自动生成和检测Fabric网络配置文件的系统,所述系统包括:生成器20和检测器30,生成器20用于根据用户提供的配置参数自动生成符合Fabric网络框架与规范的区块链网络配置文件,检测器30则用于检测Fabric网络配置文件的合规性。
参照图2所示,所述生成器20包括:组织配置文件生成单元21、端口分配单元22、通道配置文件生成单元23、节点配置文件生成单元24及数据库单元25。
组织配置文件生成单元21,用于根据获取的Orderer组织数量与Peer 组织数量,生成Fabric网络的组织配置文件;配置orderer组件与peer组件使用的组织信息。组织配置文件生成单元21从用户提供的配置参数中获取 Orderer组织数量与Peer组织数量,生成网络中所有Orderer组织与Peer 组织的组织编号以及每个组织的配置信息。其中,每个组织的配置信息包含三个基本项:组织名称、域名后缀与组织节点数量。
端口分配单元22,端口分配单元22将从用户提供的配置参数中获取共识机制与服务器IP地址,并使用端口分配单元计算所需空闲端口的数量、在服务器上查找空闲的端口号,将获取到的端口号分配给每个Fabric网络节点。
通道配置文件生成单元23,用于根据组织配置信息和节点服务地址,生成Fabric网络的通道配置文件;通道配置文件是配置系统通道中创世区块与应用通道中初始交易。通道配置文件生成单元23使用数据库中的组织配置信息以及节点服务地址来生成系统通道的创世区块配置信息与应用通道的初始交易配置信息。
节点配置文件生成单元24,用于生成节点配置文件,配置Fabric网络的各个节点。节点配置文件生成单元24通过数据库查询各个Orderer组织与Peer组织的域名后缀、成员管理配置以及各个节点所对应的服务地址,从而生成整个Fabric网络中的Orderer节点、Peer节点以及配套节点的配置信息。
数据库单元25,用于存储相关的配置信息,供各生成单元调取使用。
本发明实施例的系统,采用了一种生成器来生成Fabric网络的三种配置文件,该生成器包括三个配置文件生成单元、一个端口分配单元与一个数据库,实现了通过极少量的参数(最少四个)来自动化生成Fabric配置文件,与现有技术相比,减少了用户需要考虑的配置项,将配置文件简化为几个输入参数,无需使用者对配置文件的格式以及内容进行学习,不仅降低了用户的使用门槛,还节省了项目开发应用的时间。本发明通过各个单元的协同工作,可实现最少通过四个参数就可以获取所有搭建Fabric网络所需的配置文件。
参照图3、图5所示,所述检测器30包括:组织配置文件检测单元31、端口检测单元32、通道配置文件检测单元33、节点配置文件检测单元34、数据库单元35。
组织配置文件检测单元31,主要为检测组织配置文件是否存在格式错误,如无误则将组织配置信息存入数据库单元35中,如有误则结束检测;
通道配置文件检测单元33,主要检查组织域名、节点服务地址是否正确,检测通道配置是否存在格式错误或配置冲突,并读取到的成员管理配置、节点服务地址存入数据库单元35中,如有误则结束检测;
节点配置文件检测单元34 ,主要检查组织域名、成员管理配置是否正确,检测节点配置是否存在格式错误或配置冲突,如有误则结束检测,如通过检测则可启动区块链网络;
端口检测单元32 ,从数据库单元35中获取组织配置与节点服务地址,检查通道配置文件中的组织数量是否正确、服务端口是否空闲,检测通道配置与节点配置是否存在配置冲突或端口被占用,如有误则结束检测。
本实施例中的系统用以执行上一实施例中的方法,未详尽之处,请参照方法实施例的描述,在此不再赘述。
通过本发明实施例所述的自动生成和检测Fabric网络配置文件的系统,通过生成器与检测器配合实现Fabric网络配置文件的全自动生成并检测,确保使用人员可以简单的使用几个配置参数来生成用于搭建Fabric网络的所有配置文件,并同时实现对配置文件的快速检测。在实际应用中,可以使用该系统对Fabric网络进行快速配置,加快开发进度,节省项目开发应用的成本。同时通过检测减低了配置文件存在配置错误或配置冲突的可能性,增强了Fabric框架下的区块链网络的系统安全性。
值得注意的是,以上所述仅为本发明的较佳实施例,并非因此限定本发明的专利保护范围,本发明还可以对上述各种零部件的构造进行材料和结构的改进,或者是采用技术等同物进行替换。故凡运用本发明的说明书及图示内容所作的等效结构变化,或直接或间接运用于其他相关技术领域均同理皆包含于本发明所涵盖的范围内。
Claims (10)
1.一种自动生成和检测Fabric网络配置文件的方法,其特征在于,所述方法包括:
获取Orderer组织数量与Peer组织数量,生成Fabric网络的组织配置文件并存储组织配置信息;
获取Fabric网络所采用的共识机制类型与将部署于Fabric网络的服务器IP地址,向Fabric网络的各个节点分配服务地址并存储节点服务地址;
基于保存的所述组织配置信息和节点服务地址,生成Fabric网络的通道配置文件;
生成Fabric网络的节点配置文件,配置Fabric网络的各个节点;
对形成的不同的配置文件分别进行检测。
2.如权利要求1所述的自动生成和检测Fabric网络配置文件的方法,其特征在于,生成所述Fabric网络的组织配置文件包括如下步骤:
获取Orderer组织数量与Peer组织数量;
生成Fabric网络中所有Orderer组织与Peer组织的组织编号及每个组织的组织配置信息;
新建一个组织配置文件,并在新建的所述组织配置文件中,加入生成的所有的Orderer组织与Peer组织的组织 配置信息,形成带有所述组织配置信息的所述Fabric网络的所述组织配置文件。
3.如权利要求2所述的自动生成和检测Fabric网络配置文件的方法,其特征在于,生成所述Fabric网络中的组织配置信息包括如下步骤:
获取所述Orderer组织与Peer组织的域名后缀、组织名称及组织节点数量的默认值;
将先前生成的组织编号作为后缀或前缀编入默认的域名后缀以及组织名称中,从而生成一个组织的组织配置信息;
将组织编号以及组织配置信息作为键值对存入数据库中。
4.如权利要求2或3所述的自动生成和检测Fabric网络配置文件的方法,其特征在于,向Fabric网络的各个节点分配服务地址包括如下步骤:
计算所述Fabric网络所需的空闲端口的数量;
从服务器上查找空闲的端口号;
将获取到的服务器的端口号分配给每个Fabric网络节点,并使用端口号与服务器IP地址来合成节点服务地址;
将所述Fabric网络节点与节点服务地址的对应关系作为键值对记录在数据库中。
5.如权利要求4所述的自动生成和检测Fabric网络配置文件的方法,其特征在于,生成所述Fabric网络的通道配置文件包括如下步骤:
将数据库中每个组织的组织配置信息以及节点的服务地址来生成系统通道的创世区块配置信息与应用通道的初始交易配置信息;其中,所述创世区块配置信息包含Orderer节点的服务地址以及Orderer组织与Peer组织的成员管理配置信息,所述应用通道的初始交易配置包含Peer组织的成员管理配置信息;
新建一个通道配置文件,在新建的所述通道配置文件中加入所述创世区块配置信息与初始交易配置信息,形成最终的通道配置文件;
通过Fabric中的网络配置工具生成Fabric网络的系统通道创世区块文件与应用通道初始配置交易文件。
6.如权利要求5所述的自动生成和检测Fabric网络配置文件的方法,其特征在于,生成所述Fabric网络的节点配置文件包括如下步骤:
通过数据库查询各个Orderer组织与Peer组织的域名后缀、成员管理配置信息以及各个Fabric网络节点所对应的服务地址;
新建一个节点配置文件,并根据所述数据库中的存储信息在新建的节点配置文件中加入整个Fabric网络中的Orderer节点、Peer节点以及配套节点的配置信息。
7.如权利要求4所述的自动生成和检测Fabric网络配置文件的方法,其特征在于,查找所述空闲端口包括如下步骤:
调取系统中默认的端口号的取值范围以及步长,从端口取值范围中按照步长依次选取端口,并查询端口是否已被占用;
若被查询的端口未被占用,则保存于Fabric网络的服务端口集合中;
依次查看端口直至集合中的端口号数量等于计算出的Fabric网络所需服务端口数量。
8.如权利要求6所述的自动生成和检测Fabric网络配置文件的方法,其特征在于,对形成的所述组织配置文件、通道配置文件及节点配置文件进行检测的过程包括:
读取所述组织配置文件,检测是否存在格式错误或配置冲突,如无误则组织配置信息存入数据库中;
读取所述通道配置文件,检测组织的域名及节点服务地址是否正确,检测通道配置文件是否存在格式错误或配置冲突,如无误,则将读取到的所述成员管理配置信息及Orderer节点的服务地址存入至数据库中;
读取所述节点配置文件,检测组织的域名和成员管理配置信息是否正确,检测节点配置文件是否格式错误或配置冲突,如无误,则将读取到的Orderer节点与peer节点外的服务地址存入至数据库中;
从数据库中获取组织的配置信息和节点服务地址,检查通道配置文件中的组织数量是否正确、服务器端口是否空闲,检测通道配置文件与节点配置文件是否存在配置冲突或端口被占用。
9.一种自动生成和检测Fabric网络配置文件的系统,其特征在于,所述系统包括:生成器和检测器,其中,
所述生成器包括:
组织配置文件生成单元,根据获取的Orderer组织数量与Peer组织数量,生成Fabric网络的组织配置文件;
端口分配单元,根据获取的Fabric网络所采用的共识机制与将部署于Fabric网络的服务器IP地址,向Fabric网络的各个节点分配服务地址;
通道配置文件生成单元,根据保存的组织配置信息和节点服务地址,生成Fabric网络的通道配置文件;
节点配置文件生成单元,用于生成节点配置文件,配置Fabric网络的各个节点;
所述检测器,对所述生成器生成的所述组织配置文件、通道配置文件、节点配置文件分别进行检测。
10.如权利要求9所述的自动生成和检测Fabric网络配置文件的系统 ,其特征在于,所述检测器包括:
组织配置文件检测单元,用于检测所述组织配置文件生成单元生成的组织配置文件是否正确;
端口检测单元,用于检测服务器的端口是否可用;
通道配置文件检测单元,用于检测所述通道配置文件生成单元生成的通道配置文件是否正确;
节点配置文件检测单元,用于检测所述节点配置文件生成单元生成的节点配置文件是否正确。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010618155.7A CN111901149B (zh) | 2020-06-30 | 2020-06-30 | 自动生成和检测Fabric网络配置文件的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010618155.7A CN111901149B (zh) | 2020-06-30 | 2020-06-30 | 自动生成和检测Fabric网络配置文件的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111901149A CN111901149A (zh) | 2020-11-06 |
CN111901149B true CN111901149B (zh) | 2022-09-06 |
Family
ID=73191138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010618155.7A Active CN111901149B (zh) | 2020-06-30 | 2020-06-30 | 自动生成和检测Fabric网络配置文件的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111901149B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113518126B (zh) * | 2021-06-30 | 2024-08-27 | 深圳市前海泽金产融科技有限公司 | 一种面向联盟链的交叉容错方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111343004A (zh) * | 2020-02-11 | 2020-06-26 | 苏宁金融科技(南京)有限公司 | 基于Docker的Fabric网络远程部署方法、装置和系统 |
-
2020
- 2020-06-30 CN CN202010618155.7A patent/CN111901149B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111343004A (zh) * | 2020-02-11 | 2020-06-26 | 苏宁金融科技(南京)有限公司 | 基于Docker的Fabric网络远程部署方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111901149A (zh) | 2020-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109857667B (zh) | 接口自动化测试方法、测试装置、测试设备及存储介质 | |
CN110912724B (zh) | 一种基于参数驱动的自动业务编排方法及装置 | |
CN109271170B (zh) | 一种分布式系统部署方法、系统、电子设备及存储介质 | |
US8122106B2 (en) | Integrating design, deployment, and management phases for systems | |
US7668831B2 (en) | Assigning unique identification numbers to new user accounts and groups in a computing environment with multiple registries | |
US20060034263A1 (en) | Model and system state synchronization | |
CN110647469A (zh) | 一种微服务的测试方法、装置、计算机设备和存储介质 | |
CN106326088B (zh) | 实现构建测试对象的方法、装置及业务配置测试的装置 | |
CN112291094B (zh) | 容器网络管理方法、装置、设备及存储介质 | |
CN108920139B (zh) | 一种程序生成方法、装置、系统、电子设备及存储介质 | |
CN108460271B (zh) | 终端识别方法及装置 | |
CN102760096A (zh) | 测试用数据的生成方法、单元测试方法以及单元测试系统 | |
US7302477B2 (en) | Administration tool for gathering information about systems and applications including the feature of high availability | |
CN112631614A (zh) | 应用部署方法、装置、计算机设备和存储介质 | |
CN107085613A (zh) | 入库文件的过滤方法和装置 | |
CN111901149B (zh) | 自动生成和检测Fabric网络配置文件的方法及系统 | |
CN114138402A (zh) | 一种容器集群部署平台 | |
CN111831567A (zh) | 应用的测试环境配置方法、装置、系统和介质 | |
CN112363997B (zh) | 数据版本管理方法、装置及存储介质 | |
CN113849196A (zh) | 一种基于多云管理平台的产品管理方法及相关组件 | |
CN111352668A (zh) | 基于插件的设备测试方法及装置、基于插件的测试系统 | |
CN114710350A (zh) | 一种可调用资源的分配方法和装置 | |
CN112988457A (zh) | 一种数据备份方法、装置、系统及计算机设备 | |
CN110727601A (zh) | 多平台程序的测试方法及相关装置 | |
CN115567444B (zh) | 一种控制器路由地址查找调用方法及系统 |
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 |