本发明涉及一种区块链部署管理系统和方法,特别涉及一种多类型区块链部署管理系统和方法。
技术背景
区块链技术目前被广泛应用到金融、物流以及供应链领域,由于区块链不可篡改、去中心化和无信任关系的特点,使得区块链还应用于合约管理,可使合约的执行更加安全和便捷,目前区块链技术对于合约的管理通常只单一类型区块链的管理,比如私有链、联盟链和公有链通常都由各自的管理者分配管理,不同链之间具有较大的技术壁垒,难以对各种类型的链条做统一的管理和分配。
技术实现要素:
本发明其中一个发明目的在于提供一种多类型区块链部署管理系统和方法,所述系统和方法可对多类型区块链进行管理,统一化管理可使得区块链管理更加规范。
本发明另一个发明目的在于提供一种多类型区块链部署管理系统和方法,所述系统和方法采用对区块链通用功能进行sdk统一适配封装,在资源调配的过程中通过api(调用接口)统一从物理机器或云服务器调配资源,从而可以提高资源调配效率。
本发明另一个发明目的在于提供一种多类型区块链部署管理系统和方法,所述系统和方法可对不同区块链之间的合约进行统一管理,以提高合约管理效率。
本发明另一个发明目的在于提供一种多类型区块链部署管理系统和方法,所述系统和方法对资源进行集中化管理,用于多类型区块链的统一分配,以提高资源分配效率。
本发明另一个发明目的在于提供一种多类型区块链部署管理系统和方法,所述系统和方法可使得当在部署之前区分区块链类型和需要部署的资源数,可智能地分配需要部署的资源。
本发明另一个发明目的在于提供一种多类型区块链部署管理系统和方法,所述系统和方法可记载不同区块链自身的基础信息,基础信息包括区块链网络信息和区块链证书信息。区块链网络信息将提供区块链各个节点的网络配置信息和区块链节点间网络通信的配置信息,区块链证书信息包括区块链节点证书信息和区块链网络通信证书信息,通过对上述区块链基础信息的集中获取和监控可提高对区块链自身的管理效果。
为了实现至少一个上述发明目的,本发明进一步提供一种多类型区块链部署管理系统,包括:
合约管理模块;
区块链管理模块;所述区块链管理模块包括资源调配模块;
sdk统一适配模块;
其中所述区块链管理模块用于生成一种或多种区块链网络,sdk统一适配模块用于封装区块链sdk基本功能提供api调用接口,所述资源调配模块用于调配物理机器资源或云服务器资源,并分配对应的api调用接口;
所述区块链管理模块用于生成区块链网络,并记录区块链网络节点信息以及证书信息,所述合约管理模块用于生成、查阅、冻结或销毁合约信息。
根据本发明一个较佳实施例,所述合约管理模块用于记录不同区块链之间的合约信息,并统一以图表的方式可视化显示。
根据本发明一个较佳实施例,所述合约管理模块还用于记录相同区块链的不同合约信息,并统一以图表的方式可视化显示。
根据本发明一个较佳实施例,所述区块链管理模块管理包括共有链和联盟链,用于查看所述共有链和联盟链的网络信息和配置信息。
根据本发明一个较佳实施例,所述资源调配模块根据不同链调用不同机器资源,其中所述机器资源包括物理机器资源和云机资源。
为了解决至少一个发明目的,本发明进一步提供一种多类型区块链快速部署方法,包括:
统一管理机器资源;
根据区块链类型分配机器资源;
在分配的机器资源上构建区块链网络;
获取并管理区块链网络信息证书信息;
根据封装的sdk统一适配模块获取和区块链区块链合约信息;
其中所述区块链网络信息包括区块链节点网路配置和各个节点之间的通信配置,所述网络证书信息包括区块链网络节点证书和区块链通信证书。
根据本发明一个较佳实施例,统一管理机器资源包括管理物理机器资源和云服务器资源,其中对物理机器资源管理包括创建、查看、编辑和删除物理机器的ip信息、域名信息、端口信息,并获取物理机器节点部署信息。
根据本发明另一个较佳实施例,所述统一管理机器资源包括管理物理机器资源和云服务器资源,其中对云服务器资源管理包括提供一云服务器接口,并获取云服务器ip、端口、域名和部署信息。
根据本发明另一个较佳实施例,所述统一管理机器资源还包括搭建k8s集群对区块链进行管理,方法包括如下步骤:
在物理机器上搭建k8s集群,通过k8s集群调度区块链节点部署和管理,并获区块链网络信息和部署信息。
根据本发明另一较佳实施例,包括服务器下发license证书,通过license证书验证软件使用权限。
根据本发明另一较佳实施例,对合约的操作包括对合约部署,升级,合约查看、合约生命周期管理。
根据本发明另一较佳实施例,包括根据区块链类型构建区块链网络,其中区块链类型包括开源联盟链、自有联盟链和公有链。
附图说明
图1显示的是本发明一种多类型区块链快速部署一种流程示意图;
图2显示的是本发明一种多类型区块链快速部署方法步骤示意图;
图3显示的是本发明一种多类型区块链快速部署的自有联盟链部署示意图。
具体实施方式
以下描述用于揭露本发明以使本领域技术人员能够实现本发明。以下描述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。在以下描述中界定的本发发明的基本原理可以应用于其他实施方案、变形方案、改进方案、等同方案以及没有背离本发明的精神和范围的其他技术方案。
本领域技术人员应理解的是,在本发明的揭露中,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系是基于附图所示的方位或位置关系,其仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此上述术语不能理解为对本发明的限制。
可以理解的是,术语“一”应理解为“至少一”或“一个或多个”,即在一个实施例中,一个元件的数量可以为一个,而在另外的实施例中,该元件的数量可以为多个,术语“一”不能理解为对数量的限制。
需要说明的是本发明中第一图像特征和第二图像特征可根据目标选择而更改,比如为了获取目标手掌特征,可设定第二图像特征为手掌特征,第一图像特征为人体或人脸图像,可以理解的是本发明中人脸和人体仅仅作为举例说明而不是本发明限制。
请参考图1-3,本发明提供一种多类型区块链部署管理系统和方法,所述系统包括:
合约管理模块;
区块链管理模块,所述区块链管理模块包括资源调配模块;
sdk统一适配模块;
其中所述合约管理模块用于管理合约生成、升级、调用、冻结、合约查看、合约历史版本管理以及合约销毁等功能,需要说明的是,所述合约管理模块管理不同区块链合约。具体地,通过sdk统一适配模块生成具体的合约功能,sdk统一适配模块封装于网络应用层,并提供扩展接口,sdk统一适配模块提供sdk基本功能,基本功能包括:合约部署、合约调用、合约升级以及合约冻结等。其中资源调用模块用于分配资源,分配的资源分别包括物理机器资源和云服务器资源,根据区块链种类以分配不同资源。
进一步地,所述多类型区块链部署管理系统还包括区块链管理模块,可针对多种区块链进行生成、管理、查阅和销毁等,其中对自有联盟链hyperchain网络的部署、生成、管理、查阅,具体方法如下:
区块链管理模块部署区块链基础资源,所述基础资源包括:ip地址、端口信息、网络节点的tls(安全传输协议)证书和msp(联盟链成员管理证书);
所述资源调配模块根据区块链类型分配资源机器ip和端口;
根据用户请求,下发license(软件许可证书);
生成每个节点peer的启动文件,配置启动脚本;
通过启动脚本启动每个节点,构建区块链网络。
其中msp证书包括:rca根证书、ica中间证书、ou组织单位,管理员证书,rcl吊销证书列表、密匙库keystore以及节点上的具体证书,每个区块链网络上包含通道信息、ca证书、pki加密算法等,其中资源机器包括物理机器和云服务器。
需要进一步说明的是,各个网络节点之间msp证书可以是不同的,可通过msp证书隔离通道channel中不同组织参与者,所述区块链管理模块通过对区块链节点的阅读获取组织者身份信息,并加以存储,其中msp证书还可以由多个组织者共同参与。
用户从区块链管理模块获取license证书后可通过sdk统一适配模块的api调用接口调用合约功能,由于license证书对用户起到身份识别以及鉴权的功能,获得license证书的用户才能获取软件使用权或部分功能使用权,自有联盟链hyperchain可通过对不同的用户下发license证书,可实现自有联盟链hyperchain在特定范围和特定成员内开展合约功能,其中所述区块链管理模块包括至少一服务器,用于下发license证书。
由于区块链节点和节点之间具有通信功能,因此,所述区块链管理模块可获取每一节点信息,其中所述节点信息包括:网络信息和证书信息,其中网络信息包括区块链节点网络配置和各个节点之间的通信配置,以及所述区块链节点网络配置和通信配置生成的具体时间和被操作的时间,其中所述操作包括更改、查看和销毁等。
在自有联盟链hyperchain中,所述sdk统一适配模块通过api调用接口调用具体的合约内容,并将合约内容以订阅的方式发送给sdk统一适配模块和合约管理模块。
进一步地,本发明提供一种开源联盟链hyperledgerfabric的区块链网络部署和生成方法,包括如下步骤:
区块链管理模块部署区块链基础资源,所述基础资源包括:ip地址、端口信息、网络节点的tls证书和msp(联盟链成员管理证书);
每个区块链节点生成docker(容器)启动文件;
根据区块链类型分配机器ip和端口;
启动tlsca节点为hyperledgerfabric节点申请tls证书;
启动ca节点为hyperledgerfabric节点申请msp证书;
生成hyperledgerfabric区块链网络的网络配置文件和节点启动配置文件;
启动docker节点,以生成hyperledgerfabric区块链网络。
需要说明的是,所述机器包括物理机器和云服务器。
所述sdk统一适配模块兼容地将sdk封装于所述hyperledgerfabric区块链网络,用于提供api调用接口,sdk统一适配模块调用合约并和api调用接口对接可实现对hyperledgerfabric区块链网络上的合约创建、升级、管理和销毁等合约生命周期的管理,设置sdk的订阅功能,可将节点上合约信息订阅发送给所有参与合约的节点,并通过所述合约管理模块统一管理合约信息。
需要说明的是,在上述两种联盟链的部署和生成方式可根据资源调配模块对云服务器或物理机器进行管理,对物理机器的管理包括直接在物理机器上构建区块链网络的管理,方法包括如下步骤:
登记物理机器资源,
分类管理物理机器资源;
根据区块链类型选择物理机器;
在选择的物理机器资源上进行资源部署。
需要说明的是,用户可登录区块链管理系统平台选择已经创建好的物理机器,并且可直接通过区块链管理模块直接选择物理机器的类型,并对物理进行包括但不仅限于创建、查看、编辑和删除物理机器的ip,域名,端口等操作,并进一步对物理机器进行资源部署。
进一步地,本发明提供一种云服务器资源接口,所述云服务器资源接口对接各种云服务器,用户登录平台可获取云服务器的ip、域名、端口等信息,所述区块链管理模块将用户在云平台上的ip、域名、端口以及节点部署信息记录于所述区块链管理模块。
进一步地,本发明进一步提供一种通过k8s集群部署和管理区块链网,方法包括如下步骤:
在物理机器上创建至少一master节点,并创建至少一node节点;
控制master节点对资源进行调配,并通过node节点部署具体资源;
node节点通过kubelet进程汇报配置和操作信息。
通过k8s集群可实现对资源的间接调度,所述区块链管理模块通过节点之间的通讯获取节点的部署信息,并保存供用户查阅。
进一步地,合约管理模块对接区块链应用层,由于区块链自身具有时钟和不可更改的特性,因此每次合约的执行都将在区块链上留下操作痕迹,所述合约管理模块通过sdk统一适配模块对合约进行部署、查看、升级、添加子合约、冻结或销毁等,需要说明的是,sdk统一适配模块可适配封装包括开源联盟链、自有联盟链和公有链。
所述合约管理模块和区块链管理模块统一进行管理,通过可视化的方式输出和输入,其中可视化包括通过建立图表或列表的方式显示并控制合约或区块链的生成操作,以及区块链的生成和操作。需要说明的是,本发明通过对合约以及区块链信息的集中获取和操作可大幅提高资源的利用效率,详而言之,通过对区块链和合约的双重管理,可以对合约进行有效地分类和组合,提高区块链的使用效率。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(cpu)执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域的技术人员应理解,上述描述及附图中所示的本发明的实施例只作为举例而并不限制本发明,本发明的目的已经完整并有效地实现,本发明的功能及结构原理已在实施例中展示和说明,在没有背离所述原理下,本发明的实施方式可以有任何变形或修改。
1.一种多类型区块链部署管理系统,包括:
合约管理模块;
区块链管理模块;所述区块链管理模块包括资源调配模块;
sdk统一适配模块;
其中所述区块链管理模块用于生成一种或多种区块链网络,sdk统一适配模块用于封装区块链sdk基本功能并提供api调用接口,所述资源调配模块用于调配物理机器资源或云服务器资源,并分配对应的区块链api调用接口;
所述区块链管理模块用于生成区块链网络,并记录区块链网络节点信息以及证书信息,所述合约管理模块用于生成、查阅、冻结或销毁合约信息。
2.根据权利要求1所述的一种多类型区块链部署管理系统,其特征在于,所述合约管理模块用于记录不同区块链之间的合约信息,并统一以图表的方式可视化显示。
3.根据权利要求1或2中任意一项权利要求所述的一种多类型区块链部署管理系统,其特征在于,所述合约管理模块还用于记录相同区块链的不同合约信息,并统一以图表的方式可视化显示。
4.根据权利要求1所述的一种多类型区块链部署管理系统,其特征在于,所述区块链管理模块管理用于管理联盟链,其中联盟链包括开源联盟链和自有联盟链。
5.根据权利要求1所述的一种多类型区块链部署管理系统,其特征在于,所述资源调配模块根据不同区块链调用不同机器资源,其中所述机器资源包括物理机器资源和云机资源。
6.一种多类型区块链快速部署方法,包括:
统一管理机器资源;
根据区块链类型分配机器资源;
在分配的机器资源上构建区块链网络;
获取并管理区块链网络信息证书信息;
根据封装的sdk统一适配模块获取和操作区块链合约信息;
其中所述区块链网络信息包括区块链节点网路配置和各个节点之间的通信配置,所述网络证书信息包括区块链网络节点证书和区块链通信证书。
7.根据权利要求6所述的一种多类型区块链快速部署方法,其特征在于,统一管理机器资源方法包括管理物理机器资源和云服务器资源,其中对物理机器资源管理包括创建、查看、编辑和删除物理机器的ip信息、域名信息、端口信息,并获取物理机器节点部署信息。
8.根据权利要求7所述的一种多类型区块链快速部署方法,其特征在于,所述统一管理机器资源方法包括管理物理机器资源和云服务器资源,其中对云服务器资源管理包括提供一云服务器接口,并获取云服务器ip、端口、域名和部署信息。
9.根据权利要求7或8所述的一种多类型区块链快速部署方法,其特征在于,所述统一管理机器资源还包括搭建k8s集群对区块链进行管理,方法包括如下步骤:
在物理机器上搭建k8s集群,通过k8s集群调度区块链节点部署和管理,并获区块链网络信息和部署信息。
10.根据权利要求6所述的一种多类型区块链快速部署方法,其特征在于,对合约的操作包括对合约部署,升级,合约查看、合约生命周期管理。
11.根据权利要求6所述的一种多类型区块链快速部署方法,其特征在于,包括根据区块链类型构建区块链网络,其中区块链类型包括开源联盟链、自有联盟链和公有链。
技术总结