基于Fabric的区块链业务平台和运行方法与流程

文档序号:17441756发布日期:2019-04-17 04:51阅读:273来源:国知局
基于Fabric的区块链业务平台和运行方法与流程

本发明涉及计算机技术领域,特别是涉及一种基于fabric的区块链业务平台、运行方法、计算机设备和存储介质。



背景技术:

随着计算机技术的发展,区块链的应用的也越来越广泛。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。

在传统技术中,传统业务平台多采用集中式存储、部署的设计方式,存在直接篡改信息的可能,使得平台的可信度不高。也有不少区块链业务平台虽然具有分布式特性,但大多数缺少对业务数据进行监管,进行监控运维的配套模块。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种基于fabric的区块链业务平台、运行方法、计算机设备和存储介质。

一种基于fabric的区块链业务平台,所述平台包括:

业务平台前端,所述业务平台前端用于获取请求数据,并将所述请求数据发送至业务平台后端;

业务平台后端,所述业务平台后端用于接收业务平台前端发送的请求数据,并将所述请求数据按照相应格式要求进行封装处理,再把封装后的请求数据发送给fabricsdk;

fabricsdk,所述fabricsdk用于调用fabricsystemchaincode和业务平台智能合约,再返回所述请求数据的响应信息给业务平台后端;

其中,所述fabricsystemchaincode和业务平台智能合约运行于区块链网络中。

在其中一个实施例中,所述业务平台前端包括:

业务数据写入页面、业务数据查询页面、区块链数据监控页面、区块链网络监控运维页面;

其中,业务环节中的参与者只拥有操作所述业务数据写入页面和业务数据查询页面的权限,业务监管者和系统管理者拥有操作所述区块链数据监控页面的权限,系统管理者拥有操作所述区块链网络监控页面的权限;并通过采用页面权限与区块链网络通道的数据隔离相结合的方式,对数据权限进行控制。

在其中一个实施例中,所述区块链网络监控运维页面还包括:

区块链网络节点拓扑图,所述区块链网络节点拓扑图用于显示每个通道的区块链网络节点的拓扑图,并可只显示所述区块链网路中任一区块链网络节点的拓扑连线。

在其中一个实施例中,所述业务平台后端包括:业务数据读写与监控后端和区块链网络监控运维后端;

其中,所述业务数据读写与监控后端用于接收所述业务数据写入页面、业务数据查询页面和区块链数据监控页面发送过来的请求数据并返回处理结果。

在其中一个实施例中,所述区块链网络监控运维后端具体用于:

接收所述区块链网络监控运维页面发送的请求数据;

把所述请求数据封装为区块链网络节点所需的数据格式,以使所述数据格式适应区块链节点容器接口或区块链节点操作系统;

把封装后的数据发送给区块链网络节点容器或节点操作系统,并接收所述区块链网络节点容器或节点操作系统的响应信息。

在其中一个实施例中,所述fabricsdk为操作fabricsystemchaincode和业务平台智能合约的开源api接口;

其中,所述业务平台智能合约包括:业务数据写入合约、业务数据读取合约、区块链数据监控合约以及区块链网络监控合约。

在其中一个实施例中,所述区块链网络部署有多个peer节点、多个orderer节点、kafka集群和nginx集群;

其中,所有peer节点通过所述nginx集群把区块链数据分发到任一所述的orderer节点。

一种基于fabric的区块链业务平台运行方法,所述方法应用于上述的基于fabric的区块链业务平台中,所述方法包括:

业务平台前端获取请求数据,并将所述请求数据发送至业务平台后端;

业务平台后端接收所述业务平台前端发送的请求数据,并将所述请求数据按照相应格式要求进行封装处理,再把封装后的请求数据发送给fabricsdk;

fabricsdk调用fabricsystemchaincode和业务平台智能合约,再返回所述请求数据的响应信息给业务平台后端;

其中,所述fabricsystemchaincode和业务平台智能合约运行于区块链网络中。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。

上述基于fabric的区块链业务平台、运行方法、计算机设备和存储介质,通过业务平台前端用于获取请求数据,并将所述请求数据发送至业务平台后端;业务平台后端用于接收业务平台前端发送的请求数据,并将所述请求数据按照相应格式要求进行封装处理,再把封装后的请求数据发送给fabricsdk;fabricsdk用于调用fabricsystemchaincode和业务平台智能合约,再返回所述请求数据的响应信息给业务平台后端;其中,所述fabricsystemchaincode和业务平台智能合约运行于区块链网络中。本发明基于底层区块链技术,结合抽象出的区块链应用业务的特性,设计出监管者、参与者、系统管理者等各方都无法擅自篡改数据,并有配套监管、监控运维模块的区块链业务平台。使得区块链业务平台有较高的可信度和较为方便有效的监管、监控运维手段。

附图说明

图1为一个实施例中基于fabric的区块链业务平台的应用场景图;

图2为一个实施例中基于fabric的区块链业务平台的结构框图;

图3为一个实施例中基于fabric的区块链业务平台中业务平台前端的结构框图;

图4为一个实施例中基于fabric的区块链业务平台中业务平台后端的结构框图;

图5为一个实施例中基于fabric的区块链业务平台的监控运维步骤的流程示意图;

图6为一个实施例中基于fabric的区块链业务平台运行方法的流程示意图;

图7为一个实施例中计算机设备的内部结构图;

图8为一个实施例中基于fabric的区块链业务平台的系统构架图;

图9为一个实施例中业务数据写入逻辑的流程示意图;

图10为一个实施例中监控运维逻辑的流程示意图;

图11为一个实施例中区块链网络部署的示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

如图1所示,为本发明的基于fabric的区块链业务平台的应用场景图。其中,计算机设备110用于获取不同权限用户的操作请求,然后将该操作请求发送至业务平台120中的服务器121进行处理,服务器121与区块链网络130进行通信,区块链网络130判断当前peer节点是否已加入目标数据的数据通道,并对用户的操作请求进行响应,并将用户请求的响应结果返回给计算机设备110。

在一个实施例中,如图2所示,提供了一种基于fabric的区块链业务平台200,该平台包括:

业务平台前端201,用于获取请求数据,并将请求数据发送至业务平台后端202;

业务平台后端202,用于接收业务平台前端201发送的请求数据,并将请求数据按照相应格式要求进行封装处理,再把封装后的请求数据发送给fabricsdk203;

fabricsdk203,用于调用fabricsystemchaincode和业务平台智能合约,再返回请求数据的响应信息给业务平台后端;

其中,fabricsystemchaincode和业务平台智能合约运行于区块链网络中。

具体地,参考图8,图8为基于fabric的区块链业务平台的系统构架图,包括:业务平台前端、业务平台后端、fabricsdk、智能合约、区块链网络。其中业务平台前端为:业务平台web;业务平台后端包括:业务数据读写与监控后端和区块链网络监控运维后端;智能合约包括:fabricsystemchaincode和业务平台智能合约。

首先,业务平台前端可获取不同用户的请求,不同的用户具有不同权限,相应具有权限的用户的请求才可以被响应。该请求可以包括数据查询请求、运维请求等,业务平台前端并将请求数据发送至业务平台后端。业务平台后端,处于业务平台前端与fabricsdk之间,也处于业务平台前端与区块链网络之间,均起承上启下的作用。它包含业务数据读写与监控后端和区块链网络监控运维后端。业务平台后端根据不同的请求类型,按照fabricsdk或区块链网络节点操作系统的数据格式要求,对数据进行封装处理,再把封装后的数据传递给fabricsdk或传输到区块链网络节点。最后,fabricsdk调用fabricsystemchaincode或业务平台智能合约后返回响应信息给业务平台后端。其中,fabricsystemchaincode和业务平台智能合约运行于区块链网络中。

在本实施例中,通过业务平台前端用于获取请求数据,并将请求数据发送至业务平台后端;业务平台后端用于接收业务平台前端发送的请求数据,并将请求数据按照相应格式要求进行封装处理,再把封装后的请求数据发送给fabricsdk;fabricsdk用于调用fabricsystemchaincode和业务平台智能合约,再返回请求数据的响应信息给业务平台后端;其中,fabricsystemchaincode和业务平台智能合约运行于区块链网络中。本实施例基于底层区块链技术,结合抽象出的区块链应用业务的特性,设计出监管者、参与者、系统管理者等各方都无法擅自篡改数据,并有配套监管、监控运维模块的区块链业务平台。使得区块链业务平台有较高的可信度和较为方便有效的监管、监控运维手段。

在一个实施例中,参考图3,业务平台前端201包括:

业务数据写入页面201a、业务数据查询页面201b、区块链数据监控页面201c、区块链网络监控运维页面201d;

其中,业务环节中的参与者只拥有操作所述业务数据写入页面201a和业务数据查询页面201b的权限,业务监管者和系统管理者拥有操作区块链数据监控页面201c的权限,系统管理者拥有操作区块链网络监控页面201d的权限;并通过采用页面权限与区块链网络通道的数据隔离相结合的方式,对数据权限进行控制。

具体地,业务平台前端包含业务数据写入页面、业务数据查询页面、区块链数据监控页面、区块链网络监控运维页面。

业务环节中的参与者只拥有操作业务数据写入页面、业务数据查询页面的权限。使得各个业务环节的数据都能准确写入各自对应的区块链账本的存储位置。

业务监管者和系统管理者拥有操作区块链数据监控页面的权限。使得监管者能全面监管各个业务环节的真实情况。

系统管理者拥有操作区块链网络监控页面的权限。使得系统管理者能监控整个区块链网络的运行情况。

在数据权限控制方面,采用页面权限与区块链网络通道的数据隔离相结合的方式。通道的数据隔离是指当前连接的peer节点仅拥有操作其已加入的通道的权限,一个peer节点可加入一个或多个通道。比如:业务监管者需要监管所有通道的数据,则其连接的peer节点必须加入所有通道;业务环节中的其它参与者若只参与某项业务,则其连接的peer节点仅加入该项业务的通道。这种权限设计方式,不仅在业务平台有数据权限控制,在底层区块链也有数据权限控制,使得业务环节中的各个参与者都只拥有各自的数据权限,保证了业务平台的数据具有较高的可信度。

在本实施例中,通过根据不同的用户类型设定不同的操作权限,达到了监管者、参与者、系统管理者等各方都无法擅自篡改数据,并有配套监管、监控运维模块的区块链业务平台。使得区块链业务平台有较高的可信度和较为方便有效的监管、监控运维手段。

在一个具体的实施例中,区块链网络监控运维页面还包括:

区块链网络节点拓扑图,区块链网络节点拓扑图用于显示每个通道的区块链网络节点的拓扑图,并可只显示所述区块链网路中任一区块链网络节点的拓扑连线。

在本实施例中,区块链网络监控运维页面含有区块链网络节点拓扑图,它可显示每个通道的区块链网络节点的拓扑图,并可只显示某个节点的拓扑连线,避免当有很多节点时,节点之间的连线过于复杂的情况。

在一个实施例中,参考图4,业务平台后端202包括:业务数据读写与监控后端202a和区块链网络监控运维后端202b;

其中,业务数据读写与监控后端202a用于接收业务数据写入页面、业务数据查询页面和区块链数据监控页面发送过来的请求数据并返回处理结果。

具体地,业务数据读写与监控后端用于接收业务数据写入页面、业务数据查询页面和区块链数据监控页面发送过来的请求数据并返回处理结果。读取和监控的数据有通道、加入通道的节点、区块、交易和智能合约这些区块链网络底层数据,并且对这些数据进行统计分析形成区块链网络的区块增长速度、交易速度等性能指标。

业务数据读写与监控后端的流程逻辑是首先接收到业务平台前端的请求数据,然后把请求数据封装为fabricsdk所需的数据格式,最后把封装后的请求数据传递给fabricsdk并接收其响应信息。如图9所示是业务数据写入逻辑的流程示意图。

在本实施例中,通过业务数据读写与监控后端实现了对对业务数据的读写以及监控,保证了业务平台数据的可信度。

参考图5,区块链网络监控运维后端202b用于监控运维的步骤包括:

步骤502,接收区块链网络监控运维页面发送的请求数据;

步骤504,把请求数据封装为区块链网络节点所需的数据格式,以使数据格式适应区块链节点容器接口或区块链节点操作系统;

步骤506,把封装后的数据发送给区块链网络节点容器或节点操作系统,并接收区块链网络节点容器或节点操作系统的响应信息。

具体地,区块链网络监控运维后端用于接收区块链网络监控运维页面发送过来的请求数据,然后把请求数据封装为区块链网络节点所需的数据格式,数据格式适应区块链节点容器接口或区块链节点操作系统,最后把封装后的数据发送给区块链网络节点容器或节点操作系统,并接收其响应信息。监控方面有区块链账本数据和区块链节点容器运行状态,运维方面可启停区块链节点容器,停止后再次启动的区块链节点会自动同步最新区块链数据以保证所有节点的数据一致性。如图10所示是监控运维逻辑的流程示意图。

在本实施例中,通过区块链网络监控运维后端使得整个平台同时具有业务数据监管监控能力和业务平台的监控运维能力,使得整个区块链业务平台更加体系化。

在一个实施例中,所述fabricsdk为操作fabricsystemchaincode和业务平台智能合约的开源api接口;

其中,所述业务平台智能合约包括:业务数据写入合约、业务数据读取合约、区块链数据监控合约以及区块链网络监控合约。

具体地,fabricsdk是操作fabricsystemchaincode和业务平台智能合约的开源api接口,可使用fabric-sdk-java、fabric-sdk-node、fabric-sdk-go其中一个。

业务平台智能合约,包含有业务数据写入、业务数据读取、区块链数据监控、区块链网络监控等多个智能合约。

业务数据写入智能合约、业务数据读取智能合约、区块链数据监控智能合约、区块链网络监控智能合约,它们由fabricsdk调用,是读写、监控区块链网络账本数据和通道节点的核心代码。

在一个实施例中,所述区块链网络部署有多个peer节点、多个orderer节点、kafka集群和nginx集群;

其中,所有peer节点通过所述nginx集群把区块链数据分发到任一所述的orderer节点。

具体地,区块链网络基于开源hyperledgerfabric,部署有多个peer节点、多个orderer节点、kafka集群和nginx集群。如图11是区块链网络部署的示意图。

peer节点属于区块链网络中的org,org是区块链网络中的组织,它是一个逻辑概念,可对应到联盟链或私有链的现实物理组织机构,一般情况下,一个物理组织机构部署有两个以上的peer节点作为互备,当一个peer节点出现故障时,可直接使用另一个peer节点代替而不会导致业务中断。org同时也作为fabricca证书发放、公私钥生成的权威机构,对业务系统提供证书服务。证书、公私钥可与现实物理组织机构的权限控制建立联系,以保证业务系统的数据传输的保密性和不可抵赖性。

orderer节点属于排序节点,相当于共识机制,它是整个区块链网络运行的核心,所有peer节点都需与其数据通信,为了提高性能和避免单点故障,采用了kafka集群和nginx集群。这样,所有peer节点都通过nginx把区块链数据分发到某个orderer节点,每个orderer节点的账本数据可不一致,但每个peer节点的数据一致。

在区块链网络中创建多个通道,一个通道相当于一条独立完整的数据链,它具有数据隔离性,只有加入通道的节点才能看到本通道的数据。业务环节中的参与者所在的节点只加入与之相关的通道,从源头上保证了数据权限隔离,而监管者所在的节点则加入所有通道,从源头上保证监管者可监管所有数据链。

在本实施例中,由于具有底层区块链网络orderer节点的集群部署,可以有效避免orderer节点出现单点故障。此外,还建立fabric区块链网络org与现实物理组织机构的对应关系,使得联盟链或私有链的成员机构可有条理扩展,权限控制与业务系统的数据保密传输、数字签名也能清晰结合起来,业务系统也更深入融合区块链网络,体现了整个区块链业务平台的一体化。

在一个实施例中,如图6所示,提供了一种基于fabric的区块链业务平台运行方法,以该方法应用于上述实施例中的基于fabric的区块链业务平台中,包括:

步骤602,业务平台前端获取请求数据,并将请求数据发送至业务平台后端;

步骤604,业务平台后端接收业务平台前端发送的请求数据,并将请求数据按照相应格式要求进行封装处理,再把封装后的请求数据发送给fabricsdk;

步骤606,fabricsdk调用fabricsystemchaincode和业务平台智能合约,再返回请求数据的响应信息给业务平台后端;

其中,fabricsystemchaincode和业务平台智能合约运行于区块链网络中。

关于基于fabric的区块链业务平台运行方法的具体限定可以参见上文中对于基于fabric的区块链业务平台的限定,在此不再赘述。

应该理解的是,虽然图5、6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图5、6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,提供了一种计算机设备,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于fabric的区块链业务平台运行方法。

本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1