首页 / 专利库 / 软件 / 命令行界面 / 基于Kubernetes平台的联盟区块链系统

基于Kubernetes平台的联盟链系统

阅读:544发布:2020-05-17

专利汇可以提供基于Kubernetes平台的联盟链系统专利检索,专利查询,专利分析的服务。并且本 发明 实施例 提供了一种基于Kubernetes平台的联盟 区 块 链 系统,通过将联盟区块链的底层服务部署在Kubernetes集群的容器载体中,将联盟区块链系统容器镜像化,从而可以利用Kubernetes对于容器化的应用程序模块的调度和管理功能较为便利地实现横向扩展和程序模块的插拔。从而增强了联盟区块链系统部署和维护的灵活性,便于其 支撑 不同需求的业务系统。,下面是基于Kubernetes平台的联盟链系统专利的具体信息内容。

1.一种基于Kubernetes平台的联盟链系统,其特征在于,所述联盟区块链系统包括:
身份认证服务单元,用于提供联盟区块链身份认证服务;
命令行界面服务单元,用于提供基于命令行界面的联盟区块链命令交互服务;
分布式消息订阅服务单元,用于提供联盟区块链中排序节点(Orderer)的区块更新订阅服务;
排序服务单元,用于提供联盟区块链中的排序节点的交易排序服务;
背书服务单元,用于提供联盟区块链中对等节点的背书服务;
提交服务单元,用于提供联盟区块链中对等节点的交易提交服务;以及
分布式协调服务单元,用于为排序服务单元和分布式消息订阅服务单元提供协调服务;
其中,所述身份认证服务单元、命令行界面服务单元、分布式消息订阅服务单元、排序服务单元、背书服务单元、提交服务单元和分布式协调服务单元在Kubernetes集群中配置有对应的多个容器载体(POD)。
2.根据权利要求1所述的系统,其特征在于,所述系统包括多组组织服务单元集合,每组组织节点服务单元集合提供所述联盟区块链系统的其中一个组织的所有对等节点的服务,所述组织服务单元集合包括所述身份认证服务单元、命令行界面服务单元和所述背书及提交服务单元。
3.根据权利要求1所述的系统,其特征在于,所述分布式消息订阅服务单元利用KAFKA平台实现。
4.根据权利要求1所述的系统,其特征在于,所述分布式协调服务单元利用ZooKeeper平台实现。
5.根据权利要求1所述的系统,其特征在于,所述Kubernetes集群配置有多个主节点和多个工作节点。
6.根据权利要求1所述的系统,其特征在于,所述系统还包括:联盟区块链业务系统单元,通过调用所述身份认证服务单元、所述命令行界面服务单元、所述分布式消息订阅服务单元、所述排序服务单元、所述背书服务单元、所述提交服务单元和所述分布式协调服务单元实现联盟区块链的业务逻辑。
7.根据权利要求6所述的系统,其特征在于,所述系统还包括:
Kubernetes客户端,用于连接所述联盟区块链业务系统单元和所述Kubernetes集群。
8.根据权利要求7所述的系统,其特征在于,所述Kubernetes客户端通过应用程序接口访问所述Kubernetes集群。
9.根据权利要求1所述的系统,其特征在于,所述系统还包括:
日志管理单元,用于对所述Kubernetes集群各节点的容器服务日志进行获取、存储和查询;以及
监控单元,用于监控所述Kubernetes集群各节点容器服务的状态。
10.根据权利要求9所述的系统,其特征在于,所述日志管理单元通过elasticsearch、logstash和kibana平台实现;
所述监控单元通过Prometheus容器监控平台和Grafana数据可视化平台实现。

说明书全文

基于Kubernetes平台的联盟链系统

技术领域

[0001] 本发明涉及区块链技术,具体涉及一种基于Kubernetes平台的联盟区块链系统。

背景技术

[0002] 区块链技术也称为分布式账本技术,其特点是去中心化、公开透明、不可篡改、可信任。基于区块链技术,可以组建区块链网络。区块作为区块链网络中的一种逻辑上的数据结构,可用于存储业务数据。
[0003] 联盟区块链系统是指其共识过程受到授权可信节点控制的区块链。也就是说,联盟区块链系统中的客户端(未获得联盟许可的节点)可以查阅和交易,但是不能验证交易,也不能部署智能合约。只有拥有一定的信誉和被联盟授予证书的节点才能够进行验证交易以及参与部署智能合约。与传统中心化交易系统相比,这样能够有效解决多方互信问题,并且交易记录安全、不可篡改。
[0004] 但是,目前对于联盟区块链的部署并没有统一管理和维护的方式。

发明内容

[0005] 有鉴于此,本发明实施例提供一种基于Kubernetes平台的联盟区块链系统,以提供高效的联盟区块链系统部署。
[0006] 本发明实施例的基于kubernetes平台的联盟区块链系统包括:
[0007] 身份认证服务单元,用于提供联盟区块链身份认证服务;
[0008] 命令行界面服务单元,用于提供基于命令行界面的联盟区块链命令交互服务;
[0009] 分布式消息订阅服务单元,用于提供联盟区块链中排序节点(Orderer)的区块更新订阅服务;
[0010] 排序服务单元,用于提供联盟区块链中的排序节点的交易排序服务;
[0011] 背书服务单元,用于提供联盟区块链中对等节点的背书服务;
[0012] 提交服务单元,用于提供联盟区块链中对等节点的交易提交服务;以及[0013] 分布式协调服务单元,用于为排序服务单元和分布式消息订阅服务单元提供协调服务;
[0014] 其中,所述身份认证服务单元、命令行界面服务单元、分布式消息订阅服务单元、排序服务单元、背书服务单元、提交服务单元和分布式协调服务单元在所述Kubernetes集群中配置有对应的多个容器载体(POD)。
[0015] 进一步地,所述系统包括多组组织服务单元集合,每组组织服务单元集合提供所述联盟区块链系统的其中一个组织的所有对等节点的服务,所述组织服务单元集合包括所述身份认证服务单元、命令行界面服务单元和所述背书及提交服务单元。
[0016] 进一步地,所述分布式消息订阅服务单元利用KAFKA平台实现。
[0017] 进一步地,所述分布式协调服务单元利用ZooKeeper平台实现。
[0018] 进一步地,所述Kubernetes集群配置有多个主节点和多个工作节点。
[0019] 进一步地,所述系统还包括:联盟区块链业务系统单元,通过调用所述身份认证服务单元、所述命令行界面服务单元、所述分布式消息订阅服务单元、所述排序服务单元、所述背书服务单元、所述提交服务单元和所述分布式协调服务单元实现联盟区块链的业务逻辑。
[0020] 进一步地,所述系统还包括:
[0021] Kubernetes客户端,用于连接所述联盟区块链业务系统单元和所述Kubernetes集群。
[0022] 进一步地,所述Kubernetes客户端通过应用程序接口访问所述Kubernetes集群。
[0023] 进一步地,所述系统还包括:
[0024] 日志管理单元,用于对所述Kubernetes集群各节点的容器服务日志进行获取、存储和查询;以及
[0025] 监控单元,用于监控所述Kubernetes集群各节点容器服务的状态。
[0026] 进一步地,所述日志管理单元通过elasticsearch、logstash和kibana平台实现;
[0027] 所述监控单元通过Prometheus容器监控平台和Grafana数据可视化平台实现。
[0028] 本发明实施例提供了一种基于Kubernetes平台来部署联盟区块链系统的方案,通过将联盟区块链的底层服务部署在Kubernetes集群的容器载体中,将联盟区块链系统容器镜像化,从而可以利用Kubernetes对于容器化的应用程序模块的调度和管理功能较为便利地实现横向扩展和程序模块的插拔。从而增强了联盟区块链系统部署和维护的灵活性,便于其支撑不同需求的业务系统。附图说明
[0029] 通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
[0030] 图1是本发明实施例的联盟区块链系统的部署框图
[0031] 图2是本发明实施例的联盟区块链系统的逻辑示意图;
[0032] 图3是本发明实施例的联盟区块链系统进行交易的流程图
[0033] 图4是本发明实施例的联盟区块链系统的部署流程图。

具体实施方式

[0034] 以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
[0035] 此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
[0036] 除非上下文明确要求,否则整个说明书权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
[0037] 在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0038] 图1是本发明实施例的联盟区块链系统的框图。如图1所示,本发明实施例的联盟区块链系统基于Kubernetes集群部署。Kubernetes是Docker生态圈中重要一员,是一种容器集群管理系统,其提供应用部署、维护、扩展机制等功能,利用Kubernetes集群能方便地管理跨以及跨主机运行容器化的应用。利用Kubernetes可以方便地实现使用Docker对应用程序包装(package)、实例化(instantiate)、运行(run)。同时,Kubernetes支持以集群的方式运行、管理跨云以及跨主机的容器,并可以较好地解决Docker跨机器容器之间的通讯问题。Kubernetes通常以Kubernetes集群的方式部署,其包括至少一个主节点(Master Node)和多个工作节点(Work Node)。每个节点可以是运行Kubernetes平台的物理服务器或者虚拟机。主节点提供集群的独特视,并且拥有一系列组件,提供对外的应用程序接口。主节点同时还运行组件对于容器载体(POD)进行实施的管理。容器载体是Kubernetes平台基于容器提出的概念,其设置在工作节点上,包含一组容器和卷。同一个POD里的容器共享同一个网络命名空间,可以在本节点上(localhost)互相通信。容器载体不是持续性实体。
容器载体中的容器中运行通过Kubernetes集群部署的程序。同时,容器载体中的程序以提供可调用服务的方式对其上层的程序提供交互和支持从而实现业务系统的功能。
[0039] 如图2所示,在联盟区块链系统中,设置多个对等节点21(Peer)和排序节点22(Orderer)以及联盟链客户端23。其中,联盟链客户端23可以发起的对区块链账本的查询或发起区块链交易。但是,联盟链客户端23并不保存联盟区块链的账本。对等节点(Peer)通过点对点通信连接形成一个对等网络,其用于对所述的联盟区块链中的查询请求或交易提案进行背书(Endorsing)和确认提交(Committing)。每个对等节点存储联盟区块链的一份完整的账本,并根据接收自排序节点的打包区块,更新账本中的状态数据。排序节点用于对经过背书的交易提案进行排序,并打包为区块,发送给链内所有的对等节点进行交易确认。排序节点的作用在于保证每个对等节点按照相同的顺序接收到内容相同的打包区块。不同联盟区块链中的对等节点从不同的通道获取其所属的联盟区块链的打包区块。
[0040] 在联盟区块链系统中,不同的联盟链客户端23进行数字资产的交易的流程如图3所示。在步骤S310、发起交易的联盟链客户端23根据预先配置的背书策略,向一个或多个对等节点发送交易提案。
[0041] 在步骤S320、接收到交易提案的对等节点对交易提案进行背书。背书的过程实际上是对等节点基于其自身存储的账本对交易提案进行交易模拟,并将模拟获得的交易输出加上自身签名作为背书。模拟的交易输出可能是交易可以通过或者交易不可通过。
[0042] 在步骤S330、联盟链客户端23将经过一个或多个对等节点背书的交易提案以广播方式发送给排序节点。
[0043] 在步骤S340、排序节点持续地收集所有的联盟链客户端23广播的经过背书的交易提案,并排序后打包为区块。
[0044] 此时,经过背书的交易提案还并未获得联盟区块链上其它对等节点的确认,因此并非生效的交易。
[0045] 在步骤S350、排序节点将排序打包后的区块发送给联盟区块链中的所有确认节点(被指定为进行交易确认的对等节点)进行确认。
[0046] 在步骤S360、每个确认节点根据接收到的打包区块修改其记录的区块链数据结构,并验证区块中的交易,根据确认生效的交易来更新状态数据的状态。
[0047] 由此,有效的交易提案可以通过背书的筛选并通过最后的确认被记录在联盟区块链的账本中。交易提案生效会改变状态数据的状态。同时,无效的交易提案也可以被记录在区块中。
[0048] 为了支撑业务系统,联盟区块链系统需要从底层提供排序服务、消息订阅服务、背书服务和提交服务(Committer)。
[0049] 同时,为了管理不同的联盟链客户端23以及对等节点在所属的区块链中的访问权限问题,需要设置身份认证系统,对每个入链的客户端或对等节点进行身份认证和登录管理。
[0050] 同时,为了实现对于联盟链区块链系统的底层人机交互,还需要提供命令行界面服务。
[0051] 进一步地,为了适应分布式部署的场景,还需在底层提供分布式协调服务。
[0052] 如图1所示,本实施例的基于Kubernetes平台的联盟区块链系统包括身份认证服务单元11、命令行界面服务单元12、分布式消息订阅服务单元13、排序服务单元14、背书服务单元15、提交服务单元16和分布式协调服务单元17。上述各服务单元在Kubernetes集群中配置有对应的多个容器载体(POD)。通过容器载体中镜像化、容器化运行的程序实例来提供上述不同服务单元的服务供上层的业务系统调用。
[0053] 其中,身份认证服务单元11用于提供联盟区块链身份认证服务,其可以基于PKI(Public Key Infrastructure,公钥基础设施)技术的CA(Certificate Authority,认证中心)证书来进行身份认证服务。
[0054] 命令行界面服务单元12用于提供基于命令行界面的联盟区块链命令交互服务。
[0055] 背书服务单元15用于提供联盟区块链中对等节点的背书服务。提交服务单元16用于提供联盟区块链中对等节点的交易提交服务。
[0056] 身份认证服务单元11、命令行界面服务单元12、背书服务单元15和提交服务单元16构成一组组织服务单元集合。由于联盟区块链中的不同组织可能采用独立的身份认证方式以及背书和确认策略。因此,需要为每个联盟区块链的组织配置对应的服务。每组组织服务单元集合提供所述联盟区块链系统的其中一个组织(Organization)的所有对等节点的服务,提供该组织中对等节点所需的服务。
[0057] 同时,分布式消息订阅服务单元13用于提供联盟区块链中排序节点(Orderer)的区块更新订阅服务。优选地,分布式消息订阅服务单元13利用KAFKA平台实现。具体地,将KAFKA应用实例程序部署在Kubernetes集群的工作节点的分布式消息订阅服务单元13对应的一个或多个容器载体中,以提供分布式消息订阅服务。KAFKA平台是一种高吞吐量的分布式发布订阅消息系统。KAFKA平台可以构建实时的流数据管道,可靠地获取系统和应用程序之间的数据。KAFKA系统提供消息队列,让生产者单往队列的末尾添加数据,让多个消费者从队列里面依次读取数据然后自行处理。同时,KAFKA系统可以提供海量消息处理的能,并以高容错的方式存储海量数据流,同时保证数据流的顺序。这些属性使得KAFKA系统尤其适于应用在本发明实施例的联盟区块链系统中进行区块的订阅,以使得联盟区块链内所有的对等节点可以对区块内的交易提案进行验证确认以获得共识。
[0058] 在本实施例中,分布式协调服务单元17用于为排序服务单元14和分布式消息订阅服务单元13提供协调服务。优选地,分布式协调服务单元17利用ZooKeeper平台实现。ZooKeeper平台是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。基于ZooKeeper可以提供高效的分布式协调服务,这可以为在Kubernetes集群中调度和管理镜像容器载体的一致性获得较好的效果。
[0059] 如图1所示,本实施例的联盟区块链系统还包括业务系统单元2,其位于各服务单元的上层,通过调用所述身份认证服务单元11、所述命令行界面服务单元12、所述分布式消息订阅服务单元13、所述排序服务单元14、所述背书服务单元15、所述提交服务单元16和所述分布式协调服务单元17提供的服务来实现联盟区块链的业务逻辑。在一个可选实现方式中,如图1所示,业务系统单元2通过Kubernetes客户端3连接到Kubernetes集群1。其中,Kubernetes集群1上部署有上述各服务单元。其配置多个主节点和多个工作节点。通过开发一个软件开发工具包(Software Development Kit,SDK)提供访问Kubernetes客户端3,并进而调用上述各服务单元的应用程序接口。也就是说,业务系统单元2通过应用程序接口访问Kubernetes客户端3,进而通过Kubernetes客户端3访问所述Kubernetes集群1上配置的应用程序实例,调用服务。
[0060] 如图1所示,本实施例的联盟区块链系统还配置有日志管理单元18和监控单元19。日志管理单元18和监控单元19可以配置在Kubernetes集群以外。
[0061] 其中,日志管理单元18用于对所述Kubernetes集群各节点的容器服务日志进行获取、存储和查询。日志管理单元18通过Elasticsearch、Logstash和Kibana平台实现。ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Logstash是一个开源的数据收集引擎,它具有备实时数据传输能力。它可以统一过滤来自不同源的数据,并按照开发者的制定的规范输出到目的地。Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。
可以用Kibana搜索、查看、交互存放在Elasticsearch索引里的数据,使用各种不同的图表、表格、地图等。Kibana能够很轻易地展示高级数据分析与可视化。由此,通过Logstash平台收集日志信息,通过Elasticsearch平台搜索日志信息,并通过Kibana进行可视化呈现,可以有效地实现对于日志的管理。
[0062] 监控单元19用于监控所述Kubernetes集群各节点的容器服务状态。监控单元19可以通过Prometheus容器监控平台和Grafana数据可视化平台实现。Promethus容器监控平台是系统监控、报警、时序数据库组合。Prometheus基本原理是通过HTTP协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供HTTP接口就可以接入监控系统,不需要任何SDK或者其他的集成过程。这样做非常适合虚拟化环境。Grafana数据可视化平台则将Promethus容器监控平台获得信息可视化,呈现给用户。
[0063] 图4是本发明实施例的联盟区块链系统的部署流程图。本发明实施例的联盟区块链系统可以通过如下步骤部署:
[0064] 步骤S1000、构建跨云网络环境。
[0065] 步骤S2000、创建多套Kubernetes集群环境。将所述集群环境设置为多主节点和多工作节点的形式。
[0066] 步骤S3000、预生成或动态地创建联盟区块链系统所有需要的证书、密钥、配置区块等,并使用NFS(Network File System,网络文件系统)服务来存储联盟区块链系统中的MSP(Membership Service Provider,成员关系服务提供者)。
[0067] 步骤S4000、为对等节点、排序节点(也可称为共识节点)、身份认证节点、分布式消息订阅节点、分布式服务节点的数据做持久化存储。
[0068] 步骤S5000、启动部署程序,对联盟区块链业务系统进行部署。
[0069] 步骤S6000、启动测试程序进行验证。
[0070] 本发明实施例通过将联盟区块链的底层服务部署在Kubernetes集群的容器载体中,将联盟区块链系统容器镜像化,从而可以利用Kubernetes对于容器化的应用程序模块较为便利地实现横向扩展和程序模块的插拔。从而增强了联盟区块链系统部署和维护的灵活性,便于其支撑不同需求的业务系统。
[0071] 基于Kubernetes平台的部署使得整个联盟区块链的前后端较好地分离,也即,使得业务系统和底层的联盟区块链服务单元较好地分离,从而有利于开发具有不同业务逻辑的联盟区块链业务系统。
[0072] 以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈