一种联盟链搭建方法、装置、计算机设备及存储介质与流程

文档序号:22627652发布日期:2020-10-23 19:36阅读:169来源:国知局
一种联盟链搭建方法、装置、计算机设备及存储介质与流程

本发明涉及区块链技术领域,尤其涉及一种联盟链搭建方法、装置、计算机设备及存储介质。



背景技术:

现有的联盟链搭建平台baas(blockchainasaservice),“区块链即服务”,其数据存储于传统的数据库中(mysql等),并且现有的baas平台的数据基本只存储于联盟发起方的数据库中,这样从实际上来看依然是一个中心化的baas平台,联盟方共享的数据都是从联盟发起方获取的,实际的数据控制权依然存在于联盟发起方,对于联盟方来说依然无法实现数据的公平共享。



技术实现要素:

本发明的目的是提供一种联盟链搭建方法、装置、计算机设备及存储介质,旨在解决现有联盟链上共享的数据不透明,数据安全性不高的问题。

第一方面,本发明实施例提供了一种联盟链搭建方法,其包括:

联盟方响应联盟发起方发起构建联盟链的请求,搭建自身的区块链节点;

联盟方根据联盟发起方提供的密钥工具生成公钥和私钥,并将所述公钥发送至所述联盟发起方,使所述联盟发起方信任联盟方的区块链节点,并使自身的区块链节点加入区块链并构建联盟链,以及将所述联盟链中所有成员的区块链节点进行通信连接;

联盟链成员搭建自身的baas服务,并将baas服务运行时的数据通过编码的形式上传至各自的区块链节点上;

联盟链成员将各自的操作数据通过区块链网络广播到所述联盟链所有成员的区块链节点,然后由所述区块链节点同步到各自的数据库中,完成联盟链搭建。

第二方面,本发明实施例提供了一种联盟链搭建装置,其包括:

响应单元,用于联盟方响应联盟发起方发起构建联盟链的请求,搭建自身的区块链节点;

构建单元,用于联盟方根据联盟发起方提供的密钥工具生成公钥和私钥,并将所述公钥发送至所述联盟发起方,使所述联盟发起方信任联盟方的区块链节点,并使自身的区块链节点加入区块链并构建联盟链,以及将所述联盟链中所有成员的区块链节点进行通信连接;

搭建单元,用于联盟链成员搭建自身的baas服务,并将baas服务运行时的数据通过编码的形式上传至各自的区块链节点上;

同步单元,用于联盟链成员将各自的操作数据通过区块链网络广播到所述联盟链所有成员的区块链节点,然后由所述区块链节点同步到各自的数据库中,完成联盟链搭建;

查询单元,用于联盟链成员需要查询操作数据时,通过自身的baas服务访问各自的数据库,完成联盟链搭建。

第三方面,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的联盟链搭建方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的联盟链搭建方法。

本发明公开了一种联盟链搭建方法、装置、计算机设备及存储介质。其中,该方法包括联盟方响应联盟发起方发起构建联盟链的请求,然后搭建自身的区块链节点并使自身的区块链节点加入区块链并构建联盟链,然后将所述联盟链中所有成员的区块链节点进行通信连接;联盟链成员搭建自身的baas服务,并将baas服务运行时的数据通过编码的形式上传至各自的区块链节点上;联盟链成员将各自的操作数据通过区块链网络广播到所述联盟链所有成员的区块链节点,然后由所述区块链节点同步到各自的数据库中,完成联盟链搭建。本发明实施例解决了区块链搭建平台的联盟发起方对平台数据拥有绝对的控制权限弊端,实现了区块链中所有成员的数据实时共享,不可篡改,提高了数据的安全性。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的联盟链搭建方法的流程示意图;

图2为本发明实施例提供的联盟链搭建方法的又一流程示意图;

图3为本发明实施例提供的联盟链搭建方法的又一流程示意图;

图4为本发明实施例提供的联盟链搭建方法的又一流程示意图;

图5为本发明实施例提供的联盟链搭建方法的又一流程示意图;

图6为本发明实施例提供的搭建的区块链服务的框架图;

图7为本发明实施例提供的新成员加入联盟链的流程框图;

图8为本发明实施例提供的创建贷款业务通道及操作授权的流程框图;

图9为本发明实施例提供的联盟链搭建装置的示意性框图;

图10为本发明实施例提供的计算机设备的示意性框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

请参阅图1,图1为本发明实施例提供的联盟链搭建方法的流程示意图;

如图1所示,该方法包括步骤s101~s105。

s101、联盟方响应联盟发起方发起构建联盟链的请求,搭建自身的区块链节点。

本实施例中,所述联盟发起方在baas平台上发起构建联盟链的请求并搭建区块链平台和自身的区块链节点,所述联盟方响应构建联盟链的请求并搭建自身的区块链节点;所述区块链节点用于将联盟链成员自身的操作数据上链,对联盟链成员的操作数据进行记录,这样可以解决操作数据完全存储在联盟发起方的弊端,防止联盟发起方对数据进行篡改,保证了数据的安全性。

进一步的,联盟方响应联盟发起方发起构建联盟链的请求,搭建自身的多个区块链节点。这样可以实现数据的多机备份,在自身的某一区块链节点遭到攻击或者出现故障导致数据丢失时,可以从其他正常的区块链节点的备份中找回,防止了单点故障的发生,进一步提高了数据的安全性。

s102、联盟方根据联盟发起方提供的密钥工具生成公钥和私钥,并将所述公钥发送至所述联盟发起方,使所述联盟发起方信任联盟方的区块链节点,并使自身的区块链节点加入区块链并构建联盟链,以及将所述联盟链中所有成员的区块链节点进行通信连接。

本实施例中,所述联盟发起方提供用于加入联盟链的密钥工具于联盟方,所述联盟方根据密钥工具生成公钥和私钥,并将所述公钥发送至所述联盟发起方,使所述联盟发起方信任联盟方的区块链节点,并在所述联盟发起方信任联盟方的区块链节点后,所述联盟方通过私钥启用自身的区块链节点并加入区块链平台,并构建联盟链;然后再将所述联盟链中所有成员的区块链节点进行通信连接,这样联盟链中所有成员的操作数据可以实现共享。

s103、联盟链成员搭建自身的baas服务,并将baas服务运行时的数据通过编码的形式上传至各自的区块链节点上。

结合图6所示,本实施例中,在构建联盟链后,联盟链中的所有成员都会搭建自身的区块链节点和baas服务,这样联盟链中的所有成员都不再使用中心化的baas服务,而是使用自身的baas服务,联盟链成员的所有操作都会通过各自的baas服务以编码的形式上传到各自的区块链节点上,也就是说,联盟链成员的所有操作都会上链,这样可以保证数据不可篡改,进一步提高了数据的真实性。

s104、联盟链成员将各自的操作数据通过区块链网络广播到所述联盟链所有成员的区块链节点,然后由所述区块链节点同步到各自的数据库中,完成联盟链搭建。

本实施例中,当联盟链成员使用自身的baas服务进行操作时,该联盟链成员的操作数据不单上传到自身的区块链节点,还会通过区块链网络广播到其他联盟链成员的区块链节点上,并且由各自的所述区块链节点同步到各自的数据库(如mysql数据库)中,这样若联盟链中的某一成员想要私自篡改自身本地的数据,那么,区块链的特性会使其留下无法抹去的痕迹,从而使得共享的数据具有公平、透明的优点。

在一实施例中,如图2所示,所述联盟链成员将各自的操作数据通过区块链网络广播到所述联盟链所有成员的区块链节点,然后由所述区块链节点同步到各自的数据库中,完成联盟链搭建之后,包括:

s201、将每一申请加入联盟链的成员的申请操作进行上链,并通过区块链网络广播到联盟链各个成员进行审核并得到审核结果;

s202、判断审核结果是否有半数以上成员同意,若是则加入成功,并由联盟发起方为新加入成员生成令牌,作为该成员加入联盟链的凭证。

本实施例中,所述联盟链在新增成员时,需要通过现有成员进行审核并在审核通过后才能完成新增成员,这样可以对联盟链成员的资质进行把控,保持联盟链的稳定。

结合图7,举例来说,联盟链成员a为申请加入联盟链的新成员,联盟链成员b、联盟链成员c以及联盟链成员d为联盟链现有成员。

具体的,将所述联盟链成员a申请加入联盟链的申请操作上链,并由所述区块链网络广播到联盟链成员b、联盟链成员c以及联盟链成员d,所述联盟链成员b、联盟链成员c以及联盟链成员d收到加入联盟链的申请操作后进行审核并投票,根据投票情况得到的审核结果,再由所述区块链网络将审核结果广播到联盟链成员b、联盟链成员c以及联盟链成员d,若审核结果中投票通过数过半则表示联盟链成员a成功加入联盟链,并由所述联盟发起方为联盟链成员a生成令牌,作为所述联盟链成员a加入联盟链的凭证;若审核结果中投票通过数没有过半,则表示所述联盟链成员a加入联盟链失败。

在一实施例中,如图3所示,所述联盟链成员将各自的操作数据通过区块链网络广播到所述联盟链所有成员的区块链节点,然后由所述区块链节点同步到各自的数据库中,完成联盟链搭建之后,包括:

s301、将每一申请退出联盟链的成员的申请操作进行上链,并通过区块链网络广播到各个联盟链成员进行审核并得到审核结果;

s302、判断审核结果是否有半数以上成员同意,若是则退出成功。

本实施例中,所述成员在退出联盟链时,也需要通过现有成员进行审核并在审核通过后才能成功退出联盟链。

举例来说,联盟链成员a、联盟链成员b、联盟链成员c以及联盟链成员d组成联盟链,所述联盟链成员a申请退出联盟链。

具体的,将所述联盟链成员a申请退出联盟链的申请操作上链,并由所述区块链网络广播到联盟链成员b、联盟链成员c以及联盟链成员d,所述联盟链成员b、联盟链成员c以及联盟链成员d收到退出联盟链的申请操作后进行审核并投票,根据投票情况得到的审核结果,再由所述区块链网络将审核结果广播到联盟链成员b、联盟链成员c以及联盟链成员d,若审核结果中投票通过数过半则表示联盟链成员a成功退出联盟链;若审核结果中投票通过数没有过半,则表示联盟链成员a退出联盟链失败。

进一步的,在正常的申请加入和申请退出联盟链的操作中,所述联盟链中所有成员的投票数都计入区块链节点中,保证数据的不可篡改和安全性,同时防止所述联盟发起方拥有过大的权限,随意修改数据,随意删除联盟链成员,保证所述联盟链中所有成员拥有同等的权限,实现去中心化管理。

在一实施例中,所述联盟链成员将各自的操作数据通过区块链网络广播到所述联盟链所有成员的区块链节点,然后由所述区块链节点同步到各自的数据库中,完成联盟链搭建之后,包括:

当联盟链成员的指定服务无法访问并且无法访问的时长达到预设的时长时,自动将该成员从联盟链中踢出。

本实施例中,当所述联盟链成员的指定服务在联盟链中长时间没有发生运行且无法进行访问,并且无法访问的时长达到预设的时长时,自动将该成员从联盟链中踢出,这里预设的时长可以是一个月、两个月或者是其他时间,具体根据实际业务场景而定;比如说作为供应商的联盟链成员a的供应服务,联盟链中成员无法访问该联盟链成员a的供应服务,所述联盟链成员a也不再提供供应服务,并且该情况达到预设的两个月时长,则自动将所述联盟链成员a从联盟链中踢出。

在一实施例中,如图4所示,所述联盟链成员将各自的操作数据通过区块链网络广播到所述联盟链所有成员的区块链节点,然后由所述区块链节点同步到各自的数据库中,完成联盟链搭建之后,包括:

s401、当联盟链中的成员创建公共业务通道时,选择普通表操作,并将创建公共业务通道的操作进行上链;

s402、然后通过区块链网络将创建公共业务通道的操作广播到联盟链的每一成员;

s403、最后授权联盟链的每一成员加入公共业务通道的权限,并在公共业务通道内实现业务交互。

所述联盟链搭建成功后,联盟链中的成员可以创建业务通道,所述业务通道是联盟链成员之间业务往来的通道,智能合约也是基于业务通道来运行的;也就是说,联盟链成员之间想要通过联盟链做交易,就必须先加入到同一个业务通道中,并在该业务通道中完成交易。

本实施例中,联盟链成员根据业务需求创建公共业务通道,所述公共业务通道用于联盟链成员之间进行公共业务往来,选择普通表操作(无需加密)即可,然后将创建公共业务通道的操作进行上链,上链后通过所述区块链网络将创建公共业务通道的操作广播到联盟链的每一成员,这样联盟链中的所有成员都收到了其中一成员创建公共业务的操作数据,并且获得加入公共业务通道的权限,并在加入公共业务通道后实现各成员之间的业务交互。

在一实施例中,如图5所示,所述联盟链成员将各自的操作数据通过区块链网络广播到所述联盟链所有成员的区块链节点,然后由所述区块链节点同步到各自的数据库中,完成联盟链搭建之后,包括:

s501、当联盟链中的每一成员创建特殊业务通道时,选择加密表操作,并将创建特殊业务通道的操作进行上链;

s502、然后通过区块链网络将创建特殊业务通道的操作广播到联盟链的每一成员;

s503、最后授权联盟链中参与特殊业务的成员加入特殊业务通道的权限,并在特殊业务通道内实现业务交互。

本实施例中,联盟链成员根据业务需求创建特殊业务通道,所述特殊业务通道用于联盟链成员之间进行特殊业务往来,需要选择加密表操作(需要加密),提高业务的安全性,将创建特殊业务通道的操作进行上链,上链后通过区块链网络将创建特殊业务通道的操作广播到联盟链的每一成员,这样所述联盟链中的所有成员都收到了包含密文交易的区块,但因为创建的业务通道为特殊业务通道,故此时联盟链中的所有成员都没有加入特殊业务通道权限,然后由创建特殊业务通道的联盟链成员授权联盟链中参与特殊业务的成员加入特殊业务通道的权限,并将授权操作上链,通过区块链网络将授权操作广播到联盟链的每一成员,此时联盟链成员可查看自身是否有加入特殊业务通道的权限,若是则将授权操作解析成明文并存入自身的数据库,并加入特殊业务通道中进行业务交互,若否则与自身无关,不做处理。

具体的,如图8所示,以联盟链成员a、联盟链成员b、联盟链成员c以及联盟链成员d组成联盟链,其中联盟链成员a和联盟链成员b之间做贷款业务为例。

所述联盟链成员a创建贷款业务通道,选择加密表操作,并将操作进行上链,通过区块链网络将创建贷款业务通道的操作广播到联盟链成员b、联盟链成员c以及联盟链成员d,所述联盟链成员b、联盟链成员c以及联盟链成员d收到包含密文交易的区块,但没有读取该区块的权限,然后由联盟链成员a授权联盟链中参与贷款业务的联盟链成员b加入贷款业务通道的权限,并将授权操作上链,通过区块链网络将授权操作广播到联盟链成员b、联盟链成员c以及联盟链成员d,此时联盟链成员b可读取区块并解析到和自身有关的授权交易,并将授权操作解析成明文并存入自身的数据库,并加入贷款业务通道中进行贷款业务,所述联盟链成员c和联盟链成员d则读取到该区块与自身无关,无需处理。

在一实施例中,所述联盟链成员将各自的操作数据通过区块链网络广播到所述联盟链所有成员的区块链节点,然后由所述区块链节点同步到各自的数据库中,完成联盟链搭建之后,包括:

联盟链成员需要查询操作数据时,通过自身的baas服务访问各自的数据库。

本实施例中,联盟链成员需要查询操作数据时,通过自身的baas服务连接到本地的数据库,即可访问自身的数据库并进行查询。

本发明实施例还提供一种联盟链搭建装置,该联盟链搭建装置用于执行前述联盟链搭建方法的任一实施例。具体地,请参阅图9,图9是本发明实施例提供的联盟链搭建装置的示意性框图。

如图9所示,联盟链搭建装置900,包括:响应单元901、构建单元902、搭建单元903以及同步单元904。

响应单元901,用于联盟方响应联盟发起方发起构建联盟链的请求,搭建自身的区块链节点;

构建单元902,用于联盟方根据联盟发起方提供的密钥工具生成公钥和私钥,并将所述公钥发送至所述联盟发起方,使所述联盟发起方信任联盟方的区块链节点,并使自身的区块链节点加入区块链并构建联盟链,以及将所述联盟链中所有成员的区块链节点进行通信连接;

搭建单元903,用于联盟链成员搭建自身的baas服务,并将baas服务运行时的数据通过编码的形式上传至各自的区块链节点上;

同步单元904,用于联盟链成员将各自的操作数据通过区块链网络广播到所述联盟链所有成员的区块链节点,然后由所述区块链节点同步到各自的数据库中,完成联盟链搭建。

该装置解决了区块链搭建平台的联盟发起方对平台数据拥有绝对的控制权限弊端,实现了区块链中所有成员的数据实时共享,不可篡改,提高了数据的安全性。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

上述联盟链搭建装置可以实现为计算机程序的形式,该计算机程序可以在如图10所示的计算机设备上运行。

请参阅图10,图10是本发明实施例提供的计算机设备的示意性框图。该计算机设备1000是服务器,服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。

参阅图10,该计算机设备1000包括通过系统总线1001连接的处理器1002、存储器和网络接口1005,其中,存储器可以包括非易失性存储介质1003和内存储器1004。

该非易失性存储介质1003可存储操作系统10031和计算机程序10032。该计算机程序10032被执行时,可使得处理器1002执行联盟链搭建方法。

该处理器1002用于提供计算和控制能力,支撑整个计算机设备1000的运行。

该内存储器1004为非易失性存储介质1003中的计算机程序10032的运行提供环境,该计算机程序10032被处理器1002执行时,可使得处理器1002执行联盟链搭建方法。

该网络接口1005用于进行网络通信,如提供数据信息的传输等。本领域技术人员可以理解,图10中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备1000的限定,具体的计算机设备1000可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

本领域技术人员可以理解,图10中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图10所示实施例一致,在此不再赘述。

应当理解,在本发明实施例中,处理器1002可以是中央处理单元(centralprocessingunit,cpu),该处理器1002还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现本发明实施例的联盟链搭建方法。

所述存储介质为实体的、非瞬时性的存储介质,例如可以是u盘、移动硬盘、只读存储器(read-onlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的实体存储介质。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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