CN111324599A - 一种区块链实验系统及管理方法 - Google Patents

一种区块链实验系统及管理方法 Download PDF

Info

Publication number
CN111324599A
CN111324599A CN202010064737.5A CN202010064737A CN111324599A CN 111324599 A CN111324599 A CN 111324599A CN 202010064737 A CN202010064737 A CN 202010064737A CN 111324599 A CN111324599 A CN 111324599A
Authority
CN
China
Prior art keywords
block chain
experiment
container
network
subsystem
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
CN202010064737.5A
Other languages
English (en)
Other versions
CN111324599B (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.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN202010064737.5A priority Critical patent/CN111324599B/zh
Publication of CN111324599A publication Critical patent/CN111324599A/zh
Application granted granted Critical
Publication of CN111324599B publication Critical patent/CN111324599B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • 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
    • 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/0889Techniques to speed-up the configuration process

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供种区块链实验系统,包括管理服务器、一台或多台实验服务器以及用于为所述区块链实验系统提供容器镜像的容器镜像仓库,其中,所述管理服务器上配置有监控子系统,用于负责对应区块链实验网络的部署、停止、清理以及实验数据收集与处理;所述实验服务器基于所述监控子系统的控制,根据区块链实验需求自动部署有一个或多个代理机,其中,每个代理机包括一个代理子系统对应的容器和一个区块链节点对应的容器,所述代理子系统对区块链节点进行动作控制和实验数据的采集。本发明其采用主从架构和容器虚拟化技术,能够在区块链新技术的实验管理过程中自动化进行并行快速部署、减少运维工作、进行实验数据采集收集、进行全网监控,具有通用性、平台无关性和可扩展性等优点。

Description

一种区块链实验系统及管理方法
技术领域
本发明涉及区块链技术领域,具体来说,涉及区块链扩展性研究技术领域,更具体地说,涉及一种用于区块链投入生产之前对其进行实验验证的区块链实验系统及管理方法。
背景技术
区块链是一种以密码学算法为基础的分布式账本技术,相对于传统的中心化存储方式,它使用共识算法保证节点间数据的一致性;相对于分布式数据库,它利用基于密码学算法、哈希链及时间戳机制保证数据的可追溯、不可篡改的特性,保证“价值”在公共网络上安全转移。
区块链作为热点技术被多个领域研究和实践,但是研究结果需要经过多节点实验验证其正确性以及其他各项指标才能投入生产。区块链作为一个拜占庭容错的系统,其依赖的不仅仅是其块链结构和密码学原理,同时也因为其作为一个多节点的分布式系统,所有全节点都可以对接收到的区块进行验证。全节点对接收到的区块的区块头的时间戳、默克尔树根、块头哈希进行检查,对区块体中的交易执行合法性验证,只有检查和验证全部通过的区块才会被接受。另外,轻节点也使用默克尔路径验证交易的存在性。正是因为多方的诚实节点可以对收到的区块进行验证,区块链达成共识,区块链系统的交易历史才不会被轻易篡改。在节点少、参与方少的区块链系统中,共识链很容易能被某一方的恶意节点们从某个历史区块分叉,从而将已经存在的交易历史覆盖。因此对于区块链新技术的研究过程中,仅进行单节点的实验或者少量节点的实验是不充分的,即使这种区块链上线初期能够正常运转,但是长期来看,随着系统规模不断增大,程序错误和安全攻击的风险会与日俱增。所以,在区块链投入生产前进行大规模多节点的实验,以更加接近生产环境的方式验证区块链新技术的功能、性能、安全性和可靠性是必须的。
现有技术下,并没有一套成熟的区块链实验系统能够完成在区块链大规模多节点实验过程中的部署、监控等自动化实验管理功能,大部分区块链实验中,实验人员一般都是手动部署区块链节点。因此,在区块链的研究和实践中,迫切需要一套能进行大规模多节点区块链网络部署和实验管理的自动化系统。
目前区块链大规模多节点实验管理中遇到的问题主要包括以下几个方面:
首先,在区块链实验网络多节点自动化部署和实验数据采集收集上缺少相关成体系的方法。不同实验人员负责的不同课题针对不同类型区块链会采用不同的方式部署,其中,针对复杂和大规模部署方案,实验人员会编写一些脚本和程序进行部署,但是这些脚本和程序面对实验任务变化或者被实验的区块链种类发生变化都无法快速应对,有时候甚至需要重写。因此需要一套更通用的流程来覆盖区块链实验的全生命周期。
其次,不同实验机器的操作系统发行版本和内部运行环境不同导致运维工作过多,因为不同的实验机器的系统时间需要保持一致。同时对于运行不同操作系统发行版本的远程物理服务器(例如CentOS、Debian或者视窗操作系统),为了编译和运行区块链节点(例如C++版本的以太坊),需要给它们安装不同的适配操作系统的依赖(例如对于其中之一的 openssl-devel,Debian系Linux系统需要使用“apt install–y openssl libssl-dev”命令,而CentOS系Linux系统需要使用“yum install-y openssl-devel”命令,视窗操作系统需要下载安装包并运行安装。),且由于依赖经常不止一项,如果全部机器需要根据服务器操作系统安装上对应依赖,运维成本将急剧提高。
针对上述问题,现在的Hyperledger项目下的子项目Hyperledger Cello实现了一种以中心化方式在裸机群或者虚拟化云平台上进行区块链创建、启动、停止、删除和健康监控的方式,然而它只能支持同在 Hyperledger项目下的Hyperledger Fabric区块链的管理,通用性差。实验人员可以使用Hyperledger Cello来辅助进行实验管理,但是由于Hyperledger Cello只能支持Hyperledger Fabric区块链和封装较多的特点,在实验管理的领域的限制也非常多,无法实现快速大规模区块链节点的实验网络自动部署。
发明内容
因此,本发明的目的在于克服上述现有技术的缺陷,提供一种新的能够进行快速大规模节点部署的区块链实验系统及管理方法。
根据本发明的第一方面,本发明提供一种区块链实验系统,用于构建区块链实验网络,包括管理服务器、受管理服务器控制的一台或多台实验服务器,所述区块链实验系统还包括:容器镜像仓库,用于为所述区块链实验系统提供容器镜像,根据本发明的一些实施例,所述容器镜像仓库被配置在管理服务器或可被监控子系统访问的其他服务器上。其中,所述管理服务器上配置有监控子系统,用于负责对应区块链实验网络的部署、停止、清理以及实验数据收集与处理;所述实验服务器基于所述监控子系统的控制,根据区块链实验需求自动部署有一个或多个代理机,其中,每个代理机包括一个代理子系统对应的容器和一个区块链节点对应的容器,所述代理子系统对区块链节点进行动作控制和实验数据的采集。具体的,在实施过程中,所述监控子系统将与代理子系统相关的程序模块和区块链节点制作成容器镜像并上传到容器镜像仓库,并控制区块链实验网络中的所有代理机拉取镜像并实例化为容器运行。
在本发明的一些实施例中,所述监控子系统包括:部署模块,用于控制区块链实验系统在就绪、运行、停止三种工作状态之间进行转换以及完成不同状态对应的网络操作;监控模块,用于监控区块链实验系统中各个代理子系统和区块链节点的状态;实验数据处理模块,用于处理收集到的实验数据;用户接口模块,用于提供用户接口以使用户接入监控子系统对区块链实验系统进行配置和管理。其中,所述部署模块被配置为完成以下网络操作:部署实验网络操作,将区块链节点和与代理子系统相关的程序模块制作成容器镜像上传到容器仓库并加上工具包分发给实验服务器,实验服务器中的代理机将容器镜像实例化为容器并启动以使系统从就绪状态进入运行状态;停止实验网络操作,将所有运行的区块链节点和代理子系统对应的容器挂起,使系统从运行状态进入停止状态;收集实验数据操作,在系统停止状态时,收集实验数据;清理实验网络操作,将被挂起的所有区块链节点和代理子系统对应的容器清理以使系统从停止状态进入就绪状态。
在本发明的一些实施例中,所述代理子系统包括:控制模块、节点状态记录模块、资源使用记录模块、节点日志过滤模块,这些模块分别对应一个容器,四个容器并行独立运行。其中,控制模块用于区块链节点的动作控制;节点状态记录模块用于记录区块链节点的状态数据;资源使用记录模块用于记录区块链节点的资源使用数据;节点日志过滤模块用于过滤区块链节点的日志信息。
根据本发明的第二方面,提供一种区块链实验管理方法,采用本发明第一方面所述的区块链实验系统部署区块链实验网络,包括如下步骤:
将区块链节点、用于区块链节点动作控制和实验数据采集的程序分别制作成容器镜像;
响应于区块链实验的需求部署区块链实验网络,由监控子系统控制一台或多台实验服务器部署符合区块链实验网络规模的代理机,并统一将区块链节点以及用于区块链节点动作控制和实验数据采集的程序的容器镜像下发这些实验服务器,并实例化为容器运行;
通过客户端接入管理服务器以通过监控子系统监控区块链节点的运行状态;
响应于区块链节点停止运行的状态,收集实验数据并进行处理;
响应于结束区块链实验的需求,由监控子系统控制,统一清理所有区块链节点和用于区块链节点动作控制和实验数据采集的程序对应的容器。
与现有技术相比,本发明的优点在于:针对当前主流的部署方法效率低、容易出错并且通用性差的问题,本发明可实现区块链实验网络多节点并行快速部署、实验网络监控、实验数据采集收集、实验数据处理。本发明使用容器虚拟化技术,减少了部署大量相似区块链节点的工作,具有一定通用性、平台无关性和可扩展性的特点。至此,本发明的技术方案解决了区块链新技术实验过程的自动化实验管理问题。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1为根据本发明实施例的一种区块链实验系统框架示意图;
图2为根据本发明实施例的一种区块链实验系统中控制关系示意图;
图3为根据本发明实施例的一种区块链实验系统中容器镜像分发示意图;
图4为根据本发明实施例的一种区块链实验系统中收集实验数据示意图;
图5为根据本发明实施例的一种区块链实验系统中监控子系统对应的各个子操作关系示意图;
图6为根据本发明实施例的一种区块链实验管理方法流程示意图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
发明人经研究发现,现有技术下区块链实验系统无法实现快速自动的大规模节点部署,是因为部署节点过程中均采用手动方式且在不同的服务器操作系统版本之间的部署模式不可复制。因此,发明人将容器应用于区块链实验系统中,利用容器内的环境相似、与平台无性、可扩展性等特点来实现区块链网络的自动一体化部署,使得实验管理系统更具有通用性,实现在不同服务器的不同操作系统发行版本上实现统一部署。
具体地说,本发明的主要目的在于围绕区块链实验过程中如何进行并行快速部署、如何减少运维工作、如何进行实验数据采集收集、如何从本地进行全网监控、如何兼容多种区块链从而进行比较实验等关键问题,基于容器虚拟化技术,采用主从架构的方案,提出了一个具有一定通用性、平台无关性和可扩展性的自动化区块链实验管理系统的设计。为了实现区块链实验网络的从部署运行到停止清理的全生命周期的实验管理,本发明主要解决以下四项管理需求:
对主机分配的管理:配置区块链节点运行在哪些实验机器上,并将区块链节点部署到这些机器上,在实验过程中增加启动或者清理部分节点。对于不同的区块链网络实验,节点需求是不一样的,在实际部署过程中,运行区块链节点的实验服务器也不尽相同;
对实验过程的管理:配置在实验过程中区块链节点需要完成哪些动作、配置在实验过程中要收集哪些实验数据、在实验结束后收集实验数据;
对实验数据的管理:对收集到的实验数据进行可视化处理;以及
其他非功能性需求,包括:
通用性:能够对多种区块链的实验进行管理;
平台无关性:使用跨平台技术从而能够运行在多种操作系统发行版上;以及
可扩展性:允许用户根据实验任务在系统内添加具体实验内容。
图1示出根据本发明的一个实施例的区块链实验系统,其包括一台管理服务器、受管理服务器控制的多台实验服务器。其中,所述管理服务器上配置有监控子系统(Master机),用于负责对应区块链实验网络的部署、停止、清理以及实验数据收集与处理;所述实验服务器基于所述监控子系统的控制,根据区块链实验需求自动部署有一个或多个代理机(Worker 机),其中,每个代理机包括一个代理子系统(Worker)对应的容器和一个区块链节点对应的容器,所述代理子系统对区块链节点进行动作控制和实验数据的采集;所述容器镜像仓库用于为所述区块链实验系统提供容器镜像,其被配置在管理服务器或可被监控子系统访问的其他服务器上。如图1所示,在区块链实验网络部署过程中,监控子系统控制系统中的某些实验服务器根据区块链实验网络的需求部署一个或多个代理机(Worker 机)。系统在运行时由Master部分和多个Worker部分组成,Master运行在Master机上,系统运行时只有一个Master实例,用户可以在不同地方通过不同方式连接到Master,实现对区块链网络的操作。Worker作为区块链实验管理在Worker机上的代理,在实验进行过程中,完成部分对区块链节点的实验功能,在不同的区块链实验中,需要部署的区块链节点数目不一样,在实验系统中体现的就是部署的Worker机数量不一样,即实例化为容器运行的Worker和区块链节点数目不一样。Master会主动发起请求,并行控制所有Worker和对应的区块链节点,Worker不会主动联系 Master,如图2所示,Master直接通过Worker机监控所有区块链节点的运行状态。
根据本发明的一个实施例,如图3所示,所述监控子系统Master将与代理子系统Worker相关的程序模块和区块链节点制作成容器镜像并上传到容器镜像仓库,在部署区块链实验网络过程中,控制容器镜像仓库将容器镜像分发到各个实验服务器上的代理机,并控制所有代理机拉取镜像并实例化为容器运行。
本发明的区块链实验系统中以Master为主,Master能够同时监控和控制所有Worker机,了解区块链网络的运行状况甚至是健康状况。用户可以使用命令行或者图形用户接口(C/S或者B/S模式)登陆到Master机上操作,只要在Master机上就可以完成对实验过程的配置和对所有区块链节点的批量操作,不需要频繁登录到Worker机上查看区块链节点的运行状况或者操作区块链节点。
其中,本发明通过本发明的区块链实验系统部署的区块链网络包含三种工作状态:
就绪状态:表示所有Worker机上没有区块链节点和Worker运行;
运行状态:表示所有Worker机上区块链节点和Worker正常运行;
停止状态:表示所有Worker机上区块链节点和Worker被挂起,整个网络停止,但实验数据还没有被清理,处于这种状态是为了收集实验数据。
根据本发明的一个实施例,Master包括下面四个模块:
部署模块:负责系统三种工作状态的转换操作及其他操作。其中,其他操作包括:部署实验网络操作,即将区块链节点和Worker制作成容器镜像,加上工具包发送到实验机器,并将这些容器镜像实例化并启动。系统从就绪状态进入运行状态;停止实验网络操作,即将所有区块链节点和 Worker挂起,系统从运行状态进入停止状态;收集实验数据操作,如图4 所示,即在停止状态时,收集实验数据;清理实验网络操作,即将所有区块链节点和Worker清理,系统从停止状态进入就绪状态。
监控模块:负责在区块链实验网络运行时监控远程Worker机及其中 Worker、区块链节点的状态。
实验数据处理模块:负责处理收集到的实验数据。
用户接口模块:负责以脚本的方式提供命令行接口,或者以Web服务器的方式提供C/S或B/S的图形用户接口。
在本发明的区块链实验系统中,在部署Master并启动前应该先在 Master可访问的机器上启动容器镜像仓库。Master向容器镜像仓库上传 Worker和区块链节点的容器镜像,并控制所有Worker机拉取容器镜像并实例化为容器运行。其中,Master和Worker通信的原理是,Master使用通信协议(例如SSH、远程调用协议等)将生成的脚本发送到Worker机执行并根据输出判断执行结果。
Master的用户接口模块通过检查监控模块是否正在运行获得目前系统的工作状态,并提示用户可以执行的状态转换操作。用户选择状态转换操作后,用户接口模块调用部署模块进行相应操作,各个操作分别调用如图5所示的对应的子操作。其中,预检查子操作的功能是检查Worker机的内部运行环境,它依次检查远程机器的容器引擎设置,检查容器引擎、容器编排工具是否安装、容器镜像仓库是否启动并且监听正确的端口,并执行用户配置的其他检查内容。准备子操作功能是为各个Worker机设置变量以及其他准备工作。构建推送镜像子操作是根据容器镜像构建配置文件和其他源文件构建区块链节点和Worker的容器镜像,并推送到容器镜像仓库。启动实验网络子操作是将容器编排文件模板和工具脚本模板使用模板引擎生成容器编排文件和工具脚本并分发到所有Worker机;容器编排文件包含Worker机上应该运行的区块链节点和Worker模块的清单和其他配置,工具脚本用于自动化实验过程中的一些运维操作;接着Master 控制Worker机按容器编排文件的要求从容器镜像仓库拉取对应的容器镜像并实例化为容器运行;然后启动Master程序的监控模块;最后执行用户配置的其他动作。停止实验网络子操作是根据留存在Worker机上的容器编排文件的信息将Worker和区块链节点挂起,并挂起Master的监控模块,同时执行用户配置的其他动作。收集实验数据子操作是从所有Worker 上读取日志信息并作为实验数据编号后存储到本地Master的本地文件系统,以待分析和处理。清理实验网络子操作是根据留存在Worker机上的容器编排文件的信息将Worker和区块链的进程和日志清理,并结束Master的监控模块,并执行其他用户配置的动作。
根据本发明的一个实施例,Worker部分作为系统在实验机器上的代理,能够对区块链节点进行动作控制,在最为接近实验数据的一侧探查和接收数据,不会干扰实验过程中实验网络的网络环境。其包括四个模块,每个模块都作为一个容器进程运行,以和实验机器运行环境(操作系统和运行库)隔离,以增加平台无关性。四个模块分别为:
控制模块:负责区块链节点的动作控制,例如控制区块链节点进行发送转账交易、创建/调用智能合约、创建/关闭链下支付通道、加入分片、向链下支付通道发送交易、开始/停止挖矿、创建分片等操作,并使用远程过程调用的方式调用区块链节点,控制区块链节点的动作,以定时任务和条件触发的方式支持多个动作的控制。
节点状态记录模块:负责记录区块链节点的各项状态数据,例如区块链节点的交易池状态、区块链节点判断的共识链的区块高度、区块链节点的邻居节点列表、区块链节点持有的账户、区块链节点发送交易数量、区块链节点的挖矿状态等,并使用远程过程调用的方式调用区块链节点获得区块链节点各项状态信息,并以某种固定格式携带时间戳信息的方式输出到模块日志中,以定时任务和条件触发的方式支持多个动作的控制。
资源使用记录模块:负责记录区块链节点的资源使用数据,例如某个时刻区块链节点的内存使用量、一段时间内区块链节点通过网络收发的数据量、一段时间内区块链节点的CPU使用率、一段时间区块链节点的对磁盘写入和读出的数据量等,并通过与容器引擎主进程沟通从而从操作系统中读出区块链节点的系统资源使用量,并以某种固定格式携带时间戳信息的方式输出到模块日志中,以定时任务和条件触发的方式支持多个动作的控制。
节点日志过滤模块日志:负责过滤区块链节点的日志以获取关键信息并使用正则表达式过滤等方式从区块链日志中筛选关键信息,并以某种固定格式携带时间戳信息的方式输出到模块日志中。
根据本发明的一个实施例,如图6所示,本发明的一种区块链实验系统工作流程,包括如下步骤:
S1、响应于区块链实验的需求,开始区块链网络构建;
S2、基于区块链实验的需求,确定网络规模,进行程序参数配置,在实验服务器上部署网络所需数量的远程代理Worker机;
S3、获取远程代理Worker机清单;
S4、区块链实验系统进入就绪状态;
S5、部署实验网络,控制容器镜像仓库分发容器镜像到代理机并实例化为容器运行;
S6、区块链实验系统进入运行状态;
S7、区块链实验系统运行结束,停止实验网络,进入停止状态,收集实验数据。
其中,在区块链试验系统运行状态或停止状态时,清理实验网络,则系统进入就绪状态。
采用本发明的区块链试验系统机及管理方法可以避免手动部署区块链网络的繁琐,实现自动化部署;使用容器虚拟化技术实现在不同操作系统发行版上相同流程部署,抹平不同实验机器运行环境的差异,减少针对不同发行版平台个性化的操作;可以进行大规模多节点部署,从而更加接近真实生产环境。
本发明通过采用容器的实现方式,可以统一依赖安装的方法,将区块链节点包裹在容器中,从而统一在不同操作系统发行版上的部署流程,实现一体化部署,使得实验管理系统更具有通用性。使用Master-Worker架构,Master部分负责进行区块链实验网络部署、停止、清理、监控以及实验数据收集与处理,Worker部分作为系统的代理,负责近距离对区块链节点进行动作控制和实验数据采集,并提供接口方便针对不同试验任务进行扩展,从而实现区块链实验管理的自动化。利用本发明系统为不可知的但有各种可能的区块链新技术的研发提供大规模节点实验管理的实验管理系统,使得研究过程中能够做到快速验证、快速查错,为研究过程中提供持续集成和持续交付的工具,加速区块链新技术的研制和孵化。本发明系统既能运行在一组服务器上,也可以运行在有实验资源虚拟化的实验平台上,从而能够服务于设备厂家、运营商、互联网服务提供商、专业应用单位、高校和研究机构等,带动和引领区块链核心技术的发展,大幅提升区块链的研究水平与产业化创新能力,为中国占领未来区块链领域制高点提供重要支撑。
需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (10)

1.一种区块链实验系统,用于构建区块链实验网络,包括管理服务器、受管理服务器控制的一台或多台实验服务器,其特征在于,所述区块链实验系统还包括:
容器镜像仓库,用于为所述区块链实验系统提供容器镜像;
其中,所述管理服务器上配置有监控子系统,用于负责对应区块链实验网络的部署、停止、清理以及实验数据收集与处理;
所述实验服务器基于所述监控子系统的控制,根据区块链实验需求自动部署有一个或多个代理机,其中,每个代理机包括一个代理子系统对应的容器和一个区块链节点对应的容器,所述代理子系统对区块链节点进行动作控制和实验数据的采集。
2.根据权利要求1所述的一种区块链实验系统,其特征在于,所述容器镜像仓库被配置在管理服务器或可被监控子系统访问的其他服务器上。
3.根据权利要求2所述的一种区块链实验系统,其特征在于,所述监控子系统将与代理子系统相关的程序模块和区块链节点制作成容器镜像并上传到容器镜像仓库,并控制区块链实验网络中的所有代理机拉取镜像并实例化为容器运行。
4.根据权利要求1所述的一种区块链实验系统,其特征在于,所述监控子系统包括:
部署模块,用于控制区块链实验系统在就绪、运行、停止三种工作状态之间进行转换以及完成不同状态对应的网络操作;
监控模块,用于监控区块链实验系统中各个代理子系统和区块链节点的状态;
实验数据处理模块,用于处理收集到的实验数据;
用户接口模块,用于提供用户接口以使用户接入监控子系统对区块链实验系统进行配置和管理。
5.根据权利要求4所述的一种区块链实验系统,其特征在于,所述部署模块被配置为完成以下网络操作:
部署实验网络操作,将区块链节点和与代理子系统相关的程序模块制作成容器镜像上传到容器仓库并加上工具包分发给实验服务器,实验服务器中的代理机将容器镜像实例化为容器并启动以使系统从就绪状态进入运行状态;
停止实验网络操作,将所有运行的区块链节点和代理子系统对应的容器挂起,使系统从运行状态进入停止状态;
收集实验数据操作,在系统停止状态时,收集实验数据;
清理实验网络操作,将被挂起的所有区块链节点和代理子系统对应的容器清理以使系统从停止状态进入就绪状态。
6.根据权利要求1所述的一种区块链实验系统,其特征在于,所述代理子系统包括:
控制模块,用于区块链节点的动作控制;
节点状态记录模块,用于记录区块链节点的状态数据;
资源使用记录模块,用于记录区块链节点的资源使用数据;
节点日志过滤模块,用于过滤区块链节点的日志信息。
7.根据权利要求6所述的区块链实验系统,其特征在于,所述控制模块、节点状态记录模块、资源使用记录模块、节点日志过滤模块分别对应一个容器,四个容器并行独立运行。
8.一种区块链实验管理方法,其特征在于,采用如权利要求1至7任一所述的区块链实验系统部署区块链实验网络,包括如下步骤:
将区块链节点、用于区块链节点动作控制和实验数据采集的程序分别制作成容器镜像;
响应于区块链实验的需求部署区块链实验网络,由监控子系统控制一台或多台实验服务器部署符合区块链实验网络规模的代理机,并统一将区块链节点以及用于区块链节点动作控制和实验数据采集的程序的容器镜像下发这些实验服务器,并实例化为容器运行;
通过客户端接入管理服务器以通过监控子系统监控区块链节点的运行状态。
9.根据权利要求8所述的区块链实验管理方法,其特征在于,所述区块链实验管理方法还包括:
响应于区块链节点停止运行的状态,收集实验数据并进行处理。
10.根据权利要求8所述的区块链实验管理方法,其特征在于,所述区块链实验管理方法还包括:
响应于结束区块链实验的需求,由监控子系统控制,统一清理所有区块链节点和用于区块链节点动作控制和实验数据采集的程序对应的容器。
CN202010064737.5A 2020-01-20 2020-01-20 一种区块链实验系统及管理方法 Active CN111324599B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010064737.5A CN111324599B (zh) 2020-01-20 2020-01-20 一种区块链实验系统及管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010064737.5A CN111324599B (zh) 2020-01-20 2020-01-20 一种区块链实验系统及管理方法

Publications (2)

Publication Number Publication Date
CN111324599A true CN111324599A (zh) 2020-06-23
CN111324599B CN111324599B (zh) 2023-04-07

Family

ID=71170932

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010064737.5A Active CN111324599B (zh) 2020-01-20 2020-01-20 一种区块链实验系统及管理方法

Country Status (1)

Country Link
CN (1) CN111324599B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112419820A (zh) * 2020-11-04 2021-02-26 武汉大学 一种区块链攻防虚拟仿真实验教学系统及方法
CN113239118A (zh) * 2021-05-31 2021-08-10 广州宏算信息科技有限公司 一种区块链实训系统和方法
CN113438287A (zh) * 2021-06-17 2021-09-24 杭州宇链科技有限公司 一种区块链部署系统及方法
CN115550375A (zh) * 2022-08-31 2022-12-30 云南电网有限责任公司信息中心 基于容器化技术实现区块链轻量化的系统、方法及设备

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160072800A1 (en) * 2014-09-03 2016-03-10 Nantomics, Llc Synthetic genomic variant-based secure transaction devices, systems and methods
CN107294772A (zh) * 2017-05-23 2017-10-24 甘肃万维信息技术有限责任公司 一种结合Docker实现动态管理监控服务系统
CN107528886A (zh) * 2017-07-25 2017-12-29 中国科学院计算技术研究所 区块链全网拆分方法与系统
CN107579931A (zh) * 2017-09-08 2018-01-12 杭州云象网络技术有限公司 一种基于Kubernetes的区块链即服务资源适配方法
CN109194506A (zh) * 2018-08-16 2019-01-11 北京京东尚科信息技术有限公司 区块链网络部署方法、平台及计算机存储介质
US20190102409A1 (en) * 2017-09-29 2019-04-04 Oracle International Corporation System and method for managing a blockchain cloud service
CN109698752A (zh) * 2018-11-29 2019-04-30 南京南瑞信息通信科技有限公司 一种基于区块链的企业资源管理系统
CN109800056A (zh) * 2019-01-16 2019-05-24 杭州趣链科技有限公司 一种基于容器的区块链部署方法
CN109976774A (zh) * 2019-04-11 2019-07-05 北京启迪区块链科技发展有限公司 区块链节点部署方法、装置、设备和存储介质
CN110417896A (zh) * 2019-07-31 2019-11-05 中国工商银行股份有限公司 基于云的区块链动态组网的系统及方法
CN110543326A (zh) * 2019-08-27 2019-12-06 山东浪潮人工智能研究院有限公司 一种基于区块链的DevOps智能运维方法
CN110622129A (zh) * 2016-12-21 2019-12-27 奥恩全球运营有限公司,新加坡分公司 使用软件容器用于加速数据分析应用程序开发和部署的各方面的方法、系统和门户
CN110661842A (zh) * 2019-08-12 2020-01-07 广州亦云信息技术股份有限公司 一种资源的调度管理方法、电子设备和存储介质

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160072800A1 (en) * 2014-09-03 2016-03-10 Nantomics, Llc Synthetic genomic variant-based secure transaction devices, systems and methods
CN110622129A (zh) * 2016-12-21 2019-12-27 奥恩全球运营有限公司,新加坡分公司 使用软件容器用于加速数据分析应用程序开发和部署的各方面的方法、系统和门户
CN107294772A (zh) * 2017-05-23 2017-10-24 甘肃万维信息技术有限责任公司 一种结合Docker实现动态管理监控服务系统
CN107528886A (zh) * 2017-07-25 2017-12-29 中国科学院计算技术研究所 区块链全网拆分方法与系统
CN107579931A (zh) * 2017-09-08 2018-01-12 杭州云象网络技术有限公司 一种基于Kubernetes的区块链即服务资源适配方法
US20190102409A1 (en) * 2017-09-29 2019-04-04 Oracle International Corporation System and method for managing a blockchain cloud service
CN109194506A (zh) * 2018-08-16 2019-01-11 北京京东尚科信息技术有限公司 区块链网络部署方法、平台及计算机存储介质
CN109698752A (zh) * 2018-11-29 2019-04-30 南京南瑞信息通信科技有限公司 一种基于区块链的企业资源管理系统
CN109800056A (zh) * 2019-01-16 2019-05-24 杭州趣链科技有限公司 一种基于容器的区块链部署方法
CN109976774A (zh) * 2019-04-11 2019-07-05 北京启迪区块链科技发展有限公司 区块链节点部署方法、装置、设备和存储介质
CN110417896A (zh) * 2019-07-31 2019-11-05 中国工商银行股份有限公司 基于云的区块链动态组网的系统及方法
CN110661842A (zh) * 2019-08-12 2020-01-07 广州亦云信息技术股份有限公司 一种资源的调度管理方法、电子设备和存储介质
CN110543326A (zh) * 2019-08-27 2019-12-06 山东浪潮人工智能研究院有限公司 一种基于区块链的DevOps智能运维方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A. BRINCKMAN等: ""A Comparative Evaluation of Blockchain Systems for Application Sharing Using Containers"", 《2017 IEEE 13TH INTERNATIONAL CONFERENCE ON E-SCIENCE (E-SCIENCE)》 *
Y. SUN等: """Privacy protection for blockchains with account and multi-asset model"", 《CHINA COMMUNICATIONS》 *
孙毅等: ""区块链技术发展及应用:现状与挑战"", 《中国工程科学》 *
王湘渝: ""Docker技术在构建Linux实验平台中的应用"", 《教育现代化》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112419820A (zh) * 2020-11-04 2021-02-26 武汉大学 一种区块链攻防虚拟仿真实验教学系统及方法
CN113239118A (zh) * 2021-05-31 2021-08-10 广州宏算信息科技有限公司 一种区块链实训系统和方法
CN113438287A (zh) * 2021-06-17 2021-09-24 杭州宇链科技有限公司 一种区块链部署系统及方法
CN113438287B (zh) * 2021-06-17 2022-07-01 杭州宇链科技有限公司 一种区块链部署系统及方法
CN115550375A (zh) * 2022-08-31 2022-12-30 云南电网有限责任公司信息中心 基于容器化技术实现区块链轻量化的系统、方法及设备
CN115550375B (zh) * 2022-08-31 2024-03-15 云南电网有限责任公司信息中心 基于容器化技术实现区块链轻量化的系统、方法及设备

Also Published As

Publication number Publication date
CN111324599B (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
CN111324599B (zh) 一种区块链实验系统及管理方法
US10725769B2 (en) Automated deployment and servicing of distributed applications
CN110704164A (zh) 一种基于Kubernetes技术的云原生应用平台构建方法
CN101411123B (zh) 用于分布式数据处理系统端点上的集中式系统管理的方法、系统和计算机程序
CN112667362B (zh) Kubernetes上部署Kubernetes虚拟机集群的方法与系统
CN107220100A (zh) 一种开发运维方法、装置及云计算PaaS平台
WO2016053518A1 (en) Methods and systems for portably deploying applications on one or more cloud systems
CN108243012B (zh) 在线计费系统ocs中计费应用处理系统、方法及装置
TW201301027A (zh) 藉由提供預先建立環境之即時有效性來部署用於測試之環境
CN113434158B (zh) 一种大数据组件的自定义管理方法、装置、设备及介质
CN112486466B (zh) 一种基于微服务架构的快速通用基础框架实现方法
CN111930465A (zh) 一种基于Kubernetes的达梦主从集群部署方法和装置
CN107797914A (zh) 代码处理方法、装置及代码发布系统
CN115292026A (zh) 容器集群的管理方法、装置、设备及计算机可读存储介质
CN112596779A (zh) 兼容双版本的依赖包生成方法、装置、设备及存储介质
CN113778486A (zh) 一种代码流水线的容器化处理方法、装置、介质及设备
CN113127009A (zh) 大数据管理平台的自动化部署方法和装置
US11539612B2 (en) Testing virtualized network functions
CN116643950B (zh) 一种基于FaaS的云原生应用自动化运维方法
CN113050929A (zh) 一种基于Hyperledger Fabric的智能合约开发运维一体化平台
CN114787836A (zh) 用于远程执行一个或更多个任意定义的工作流的系统和方法
CN113986714A (zh) 一种基于容器化的自动化持续测试方法及装置
US20230409568A1 (en) Monitoring metadata synchronization and aggregation
Ma et al. Design and Implementation of Operating Management Platform of Dispatching and Control Cloud Application based on Container Technology
CN113918175A (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