基于联盟链的请求处理方法、装置、设备和存储介质转让专利

申请号 : CN202111189947.8

文献号 : CN113626850B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 金彤

申请人 : 北京百度网讯科技有限公司

摘要 :

本公开提供了基于联盟链的请求处理方法、装置、设备和存储介质,涉及计算机技术领域,尤其涉及区块链技术领域,可用于云计算和云服务。具体实现方案为:通过第二方区块链节点的第二方权限代理服务,从第一方区块链节点的第一方权限代理服务接收事务处理请求;对所述事务处理请求进行权限校验;在权限校验通过的情况下,向所述第二方区块链节点发送所述事务处理请求,由所述第二方区块链节点对所述事务处理请求进行处理。本公开实施例能够提高请求处理的灵活性、便捷性。

权利要求 :

1.基于联盟链的请求处理方法,包括:通过第二方区块链节点的第二方权限代理服务,从第一方区块链节点的第一方权限代理服务接收事务处理请求;所述事务处理请求为区块同步请求或数据查询请求;

采用联盟链网络中权限控制区块链所记录的区块链的权限控制数据,对所述事务处理请求进行权限校验;所述区块链的权限控制数据包括区块链的写节点身份和读节点身份,写节点用于更新区块链的权限控制数据,读节点对区块链具有读权限;

在权限校验通过的情况下,向所述第二方区块链节点发送所述事务处理请求,由所述第二方区块链节点对所述事务处理请求进行处理;在权限校验失败的情况下,拒绝向所述第二方区块链节点发送所述事务处理请求。

2.根据权利要求1所述的方法,还包括:通过第二方权限代理服务,获取第二方区块链节点发起的权限更新请求;其中,所述权限更新请求包括目标区块链和目标区块链的权限更新数据;

确定第二方区块链节点对所述目标区块链是否具有写权限;

在有写权限的情况下,控制将所述目标区块链的权限更新数据写入所述权限控制区块链。

3.根据权利要求2所述的方法,其中,所述权限更新请求调用目标区块链的权限控制智能合约发起;

所述权限控制智能合约根据目标区块链的权限配置信息构建。

4.根据权利要求1‑3中任一项所述的方法,其中,所述事务处理请求为第一方区块链节点所关联的第一方区块链的区块同步请求;

所述对所述事务处理请求进行权限校验,包括:确定所述第二方区块链节点是否具有对第一方区块链的读权限;若有,则权限校验通过;否则,权限校验失败。

5.根据权利要求1‑3中任一项所述的方法,其中,所述事务处理请求为第一方区块链节点对第二方区块链节点所关联的第二方区块链的数据查询请求;

所述对所述事务处理请求进行权限校验,包括:确定所述第一方区块链节点是否具有对所述第二方区块链的读权限;若有,则权限校验通过;否则,权限校验失败。

6.根据权利要求5所述的方法,还包括:通过第二方权限代理服务,监听所述权限控制区块链中第二方区块链的权限更新数据,并根据第二方区块链的权限更新数据更新第二方区块链节点的权限缓存数据。

7.基于联盟链的请求处理装置,包括:请求接收模块,用于通过第二方区块链节点的第二方权限代理服务,从第一方区块链节点的第一方权限代理服务接收事务处理请求;所述事务处理请求为区块同步请求或数据查询请求;

请求校验模块,用于采用联盟链网络中权限控制区块链所记录的区块链的权限控制数据,对所述事务处理请求进行权限校验;所述区块链的权限控制数据包括区块链的写节点身份和读节点身份,写节点用于更新区块链的权限控制数据,读节点对区块链具有读权限;

请求发送模块,用于在权限校验通过的情况下,向所述第二方区块链节点发送所述事务处理请求,由所述第二方区块链节点对所述事务处理请求进行处理;在权限校验失败的情况下,拒绝向所述第二方区块链节点发送所述事务处理请求。

8.根据权利要求7所述的装置,所述装置还包括权限更新模块,所述权限更新模块包括:

更新请求接收单元,用于通过第二方权限代理服务,获取第二方区块链节点发起的权限更新请求;其中,所述权限更新请求包括目标区块链和目标区块链的权限更新数据;

写权限校验单元,用于确定第二方区块链节点对所述目标区块链是否具有写权限;

权限更新单元,用于在有写权限的情况下,控制将所述目标区块链的权限更新数据写入所述权限控制区块链。

9.根据权利要求8所述的装置,其中,所述权限更新请求调用目标区块链的权限控制智能合约发起;

所述权限控制智能合约根据目标区块链的权限配置信息构建。

10.根据权利要求7‑9中任一项所述的装置,其中,所述事务处理请求为第一方区块链节点所关联的第一方区块链的区块同步请求;

所述请求校验模块用于:

确定所述第二方区块链节点是否具有对第一方区块链的读权限;若有,则权限校验通过;否则,权限校验失败。

11.根据权利要求7‑9中任一项所述的装置,其中,所述事务处理请求为第一方区块链节点对第二方区块链节点所关联的第二方区块链的数据查询请求;

所述请求校验模块用于:

确定所述第一方区块链节点是否具有对所述第二方区块链的读权限;若有,则权限校验通过;否则,权限校验失败。

12.根据权利要求11所述的装置,所述装置还包括:权限缓存模块,用于通过第二方权限代理服务,监听所述权限控制区块链中第二方区块链的权限更新数据,并根据第二方区块链的权限更新数据更新第二方区块链节点的权限缓存数据。

13.一种电子设备,其中,包括:至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1‑6中任一项所述的方法。

14.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1‑6中任一项所述的方法。

说明书 :

基于联盟链的请求处理方法、装置、设备和存储介质

技术领域

[0001] 本公开涉及计算机技术领域,尤其涉及区块链技术领域,可用于云计算和云服务,具体涉及基于联盟链的请求处理方法、装置、设备和存储介质。

背景技术

[0002] 联盟链是区块链系统的一种表现形式,与公有链不同。联盟链仅允许经授权的节点加入网络,可以指派若干个组织或者机构共同参与区块链的管理,每个参与方可以运行
一个或多个节点。参与方可以具有区块链,并将自身数据存储在区块链上。
[0003] 联盟链网络可以为各区块链赋予不同的权限控制,供不同的参与方进行访问。因此如何对联盟链网络进行访问控制十分重要。

发明内容

[0004] 本公开提供了一种用于基于联盟链的请求处理方法、装置、设备和存储介质。
[0005] 根据本公开的一方面,提供了一种基于联盟链的请求处理方法,包括:
[0006] 通过第二方区块链节点的第二方权限代理服务,从第一方区块链节点的第一方权限代理服务接收事务处理请求;
[0007] 对所述事务处理请求进行权限校验;
[0008] 在权限校验通过的情况下,向所述第二方区块链节点发送所述事务处理请求,由所述第二方区块链节点对所述事务处理请求进行处理。
[0009] 根据本公开的又一方面,提供了一种基于联盟链的请求处理装置,包括:
[0010] 请求接收模块,用于通过第二方区块链节点的第二方权限代理服务,从第一方区块链节点的第一方权限代理服务接收事务处理请求;
[0011] 请求校验模块,用于对所述事务处理请求进行权限校验;
[0012] 请求发送模块,用于在权限校验通过的情况下,向所述第二方区块链节点发送所述事务处理请求,由所述第二方区块链节点对所述事务处理请求进行处理。
[0013] 根据本公开的又一方面,提供了一种电子设备,包括:
[0014] 至少一个处理器;以及
[0015] 与所述至少一个处理器通信连接的存储器;其中,
[0016] 所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开任意实施例所提供的基于联盟链
的请求处理方法。
[0017] 根据本公开的又一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本公开任意实施例所提供的基于联盟
链的请求处理方法。
[0018] 根据本公开的又一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本公开任意实施例所提供的基于联盟链的请求处理方法。
[0019] 根据本公开的技术,能够提高联盟链网络中请求处理的灵活性、便捷性。
[0020] 应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

[0021] 附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0022] 图1a是根据本公开实施例提供的一种基于联盟链的请求处理方法的示意图;
[0023] 图1b是根据本公开实施例提供的一种联盟链网络的示意图;
[0024] 图1c是根据本公开实施例提供的另一种联盟链网络的示意图;
[0025] 图2a是根据本公开实施例提供的另一种基于联盟链的请求处理方法的示意图;
[0026] 图2b是根据本公开实施例提供的一种权限数据的数据格式的示意图;
[0027] 图3是根据本公开实施例提供的又一种基于联盟链的请求处理方法的示意图;
[0028] 图4是根据本公开实施例提供的一种基于联盟链的请求处理装置的示意图;
[0029] 图5是用来实现本公开实施例的基于联盟链的请求处理方法的电子设备的框图。

具体实施方式

[0030] 以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识
到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同
样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0031] 以下结合附图,对本公开实施例提供的该方案进行详细说明。
[0032] 图1a是根据本公开实施例提供的一种基于联盟链的请求处理方法的示意图,本公开实施例可适用于对联盟链网络中区块链的事务处理请求进行权限控制的情况。该方法可
由一种基于联盟链的请求处理装置来执行,该装置可采用硬件和/或软件的方式来实现,可
配置于电子设备中。参考图1a,该方法具体包括如下:
[0033] S110、通过第二方区块链节点的第二方权限代理服务,从第一方区块链节点的第一方权限代理服务接收事务处理请求;
[0034] S120、对所述事务处理请求进行权限校验;
[0035] S130、在权限校验通过的情况下,向所述第二方区块链节点发送所述事务处理请求,由所述第二方区块链节点对所述事务处理请求进行处理。
[0036] 其中,联盟链网络可以包括至少两个参与方,一个参与方代表一个组织、机构或个人。一个参与方可以管理至少一个区块链节点,部分区块链节点可以参与区块链的共识作
为出块节点,若任一区块链节点为任一区块链的出块节点,则该区块链节点与该区块链关
联;部分区块链节点可以仅为同步节点,也可以称为追块节点,而不参与共识。联盟链中彼
此独立、互不影响的区块链可以称为平行链,即平行链是区块链的一种,具有一般区块链的
所有属性。
[0037] 图1b是根据本公开实施例提供的一种联盟链网络的示意图,参考图1b,区块链网络可以包括区块链节点A、区块链节点B和区块链节点F,其中,区块链节点A和区块链节点B
参与共识,分别为区块链A和区块链B的出块节点,区块链节点F为同步节点,即联盟链网络
包括区块链a、区块链b,区块链a与区块链节点A关联,区块链b与区块链节点B关联。区块链
网络中各区块链节点均具有自身的账户信息,即具有自身的区块链账户公钥、区块链账户
私钥和区块链账户地址,账户信息可以由CA(Certificate Authority,证书颁发机构)服务
提供,CA服务还负责联盟链网络的初始组网和网络TLS(Transport Layer Security,安全
传输层协议)通信。需要说明的是,图1b仅作为一种示例,对联盟链网络中区块链节点的数
量和身份不做具体限定,对区块链的数量也不做具体限定,即联盟链还可以有其他组织形
式。
[0038] 在联盟链网络中,每个区块链节点前还部署有权限代理服务Front,各区块链节点的权限代理服务不同,参考图1b,区块链节点A、区块链节点B和区块链节点F分别部署有权
限代理服务FrontA、FrontB和FrontF。权限代理服务用于对网络消息的过滤、转发、加工。每
个区块链节点仅能和自身权限代理服务通信,禁止不同区块链节点之间直接通信。权限代
理服务作为本地连接的区块链节点的代理,对合法消息进行转发和广播,对非法消息进行
屏蔽过滤。
[0039] 通过为区块链节点部署权限代理服务,使得联盟链网络中权限控制服务与区块链服务之间解耦,权限控制服务可以灵活地插拔,能够直接使用区块链服务的代码库组件联
盟链网络,而不需要对区块链服务的网络消息进行改造开发。通过外置的权限代理服务对
区块链节点进行访问控制,权限代理服务可以独立于区块链服务,它与区块链服务分别运
行在不同进程中,可以将权限代理服务灵活地加载在已启动的区块链系统中。相比于相关
技术中将权限控制嵌入到区块链系统代码内部,避免了公有链和联盟链之间的界线,降低
联盟链网络的组建门槛、减少联盟链网络的组建工作量,从而提高联盟链网络的组件效率。
[0040] 其中,第一方区块链节点为事务处理请求的发送方,第二方区块链节点为事务处理请求的接收方,第一方区块链节点配置有第一方权限代理服务,第二方区块链节点配置
有第二方权限代理服务。本公开实施例对事务请求类型、第一方区块链节点身份、第二方区
块链节点身份均不做具体限定,第一方区块链节点、第二方区块链节点可以属于联盟链网
络中的任一区块链节点。
[0041] 具体的,第一方区块链节点发起事务处理请求,第一方区块链节点将事务处理请求发送给第一方权限代理服务,第一方权限代理服务将事务处理请求发送给第二方权限代
理服务,第二方权限代理服务对事务处理请求进行权限校验;若权限校验通过,则向所述第
二方区块链节点发送所述事务处理请求,由所述第二方区块链节点对所述事务处理请求进
行处理;若校验失败,则屏蔽事务处理请求,即拒绝向第二方区块链节点转发事务处理请
求。通过对权限校验识别的非法消息进行屏蔽,即通过权限代理服务过滤恶意区块链节点
的访问请求,能够避免恶意区块链节点造成区块链数据泄露,提高区块链数据的安全性。
[0042] 在一种可选实施方式中,所述第二方区块链节点和所述第一方区块链节点所属联盟链网络还包括权限控制区块链,用于记录联盟链网络中区块链的权限控制数据。
[0043] 图1c是根据本公开实施例提供的另一种联盟链网络的示意图,参考图1c,联盟链网络还可以包括权限控制区块链,可以称为主链(main chain),用于记录联盟链网络中各
平行链的权限控制数据,即各平行链将自身权限控制数据提交到权限控制区块链中。权限
控制区块链属于公开链,各参与方均可以访问,例如参与方均可以监听权限控制区块链,访
问自身权限数据、或确定自身权限数据是否更新。
[0044] 具体的,第二方权限代理服务可以从权限控制区块链获取联盟链网络中区块链的权限控制数据,并采用权限控制数据对事务处理请求进行权限校验。通过采用权限控制区
块链记录各区块链的权限控制数据,能够保障权限控制数据、权限校验的可靠性。
[0045] 本公开实施例提供的技术方案,通过为联盟链网络中各区块链节点部署权限代理服务,区块链节点仅与自身权限代理服务直接通信,而不与其他区块链服务节点直接通信,
通过自身权限代理服务对事务处理请求进行权限校验,能够提高请求处理的灵活性、便捷
性。
[0046] 图2a是根据本公开实施例提供的另一种基于联盟链的请求处理方法的示意图。本实施例是在上述实施例的基础上提出的一种可选方案。参见图2a,本实施例提供的基于联
盟链的请求处理方法包括:
[0047] S210、通过第二方权限代理服务,获取第二方区块链节点发起的权限更新请求;其中,所述权限更新请求包括目标区块链和目标区块链的权限更新数据;
[0048] S220、确定第二方区块链节点对所述目标区块链是否具有写权限;
[0049] S230、在有写权限的情况下,控制将所述目标区块链的权限更新数据写入权限控制区块链;
[0050] S240、通过第二方区块链节点的第二方权限代理服务,从第一方区块链节点的第一方权限代理服务接收事务处理请求;
[0051] S250、对所述事务处理请求进行权限校验;
[0052] S260、在权限校验通过的情况下,向所述第二方区块链节点发送所述事务处理请求,由所述第二方区块链节点对所述事务处理请求进行处理。
[0053] 其中,所述第二方区块链节点和所述第一方区块链节点所属联盟链网络还包括权限控制区块链,用于记录联盟链网络中区块链的权限控制数据。
[0054] 其中,区块链的权限控制数据可以包括区块链的链标识、区块链节点的写节点身份、区块链节点的读节点身份,写节点为对区块链具有写权限的区块链节点,读节点为对区
块链具有读权限的区块链节点,写节点可以称为管理员节点。图2b是根据本公开实施例提
供的一种权限数据的数据格式的示意图,参考图2b,key(键)字段表示区块链的链标识,
value(值)字段表示区块链的权限信息,admin(管理员)字段为区块链的管理员,该管理员
对区块链具有写权限,可以进行写操作,Identities(身份)列表包括对区块链拥有读权限
的节点,可以读取区块链上数据。具体的,hello链的写节点为区块链节点A,读节点包括区
块链节点B和区块链节点F。
[0055] 联盟链网络中的第二方区块链节点可以发起权限更新请求,权限更新请求可以包括待更新的目标区块链和目标区块链的权限更新数据,第二方区块链节点将权限更新请求
发送给自身权限代理服务即第二方权限代理服务,第二方权限代理服务根据目标区块链的
权限控制数据,确定第二方区块链节点对目标区块链是否具有写权限,也就是说,第二方权
限代理服务确定第二方区块链节点是否为目标区块链的管理员节点;若是,则具有写权限,
可以控制权限控制区块链的出块节点将目标区块链的权限更新数据写入权限控制区块链,
以更新目标区块链的权限控制数据。其中,目标区块链可以为联盟链网络中具有权限更新
需求的任一区块链。
[0056] 在有写权限的情况下,第二方权限代理服务可以向权限控制区块链的出块节点发送权限更新请求,由该出块节点将目标区块链的权限更新数据写入权限控制区块链。需要
说明的是,权限控制区块链的出块节点根据权限控制区块链在构建过程中的配置信息确
定,可以为联盟链网络中的任意节点。若第二方区块链节点不为目标区块链的管理员节点,
则第二方区块链节点不具有写权限,过滤权限更新请求,以拒绝第二方区块链节点更新目
标区块链的权限控制数据。
[0057] 还需要说明的是,也可以由权限控制区块链的出块节点所关联的权限代理服务对第二方区块链节点进行目标区块链的写权限校验。具体的,第二方权限代理服务可以向该
出块节点发送未经权限校验的权限更新请求,由该出块节点确定第二方区块链节点对所述
目标区块链是否具有写权限;在有写权限的情况下,执行权限更新请求;在没有写权限的情
况下,拒绝权限更新请求。联盟链网络中任一区块链节点可以作为第二方区块链节点,即任
一区块链节点可以通过发起权限更新请求更新自身所关联的区块链的权限控制数据。
[0058] 通过写权限校验,能够提高权限控制区块链的数据安全性;并且,通过对目标区块链具有写权限的区块链节点更新权限控制区块链中目标区块链的权限控制数据,能够支持
目标区块链的权限控制数据的更新,提高区块链权限控制的灵活性。例如,在前t时间段,区
块链节点F不属于第二方区块链的读节点,因此在前t时间段区块链节点F对第二方区块链
没有读权限;然而在t+1时间段,通过对第二方区块链的权限更新请求将区块链节点F作为
第二方区块链的新读节点,在区块链节点F作为新读节点之后,区块链节点F可以读取第二
方区块链中的数据。
[0059] 在一种可选实施方式中,所述权限更新请求调用目标区块链的权限控制智能合约发起;所述权限控制智能合约根据目标区块链的权限配置信息构建。
[0060] 在本公开实施例中,可以通过智能合约更新区块链的权限信息,联盟链网络中的各目标区块链可以分别具有自身的权限控制智能合约,目标区块链的权限控制智能合约可
以根据目标区块链的权限配置信息构建。在创建目标区块链的过程中,可以确定目标区块
链的权限配置信息,并根据目标区块链的权限配置信息构建目标区块链的权限控制智能合
约;在需要更新目标区块链权限信息的情况下,可以调用目标区块链的权限控制智能合约
发起对目标区块链的权限更新请求。目标区块链的权限配置信息可以根据目标区块链所属
参与方的个性化配置需求设置,即可以为个性化的权限控制规则。并且,仅需要对已启动的
区块链进行权限信息配置即可将区块链添加到联盟链网络中。通过根据目标区块链的权限
配置信息构建目标区块链的权限控制智能合约,能够提高目标区块链权限控制的灵活性。
[0061] 本公开实施例的技术方案,可以调用目标区块链的权限控制智能合约更新目标区块链的权限控制数据,可以灵活地配置权限控制智能合约,提高了区块链权限控制的灵活
性。
[0062] 图3是根据本公开实施例提供的又一种基于联盟链的请求处理方法的示意图。本实施例是在上述实施例的基础上提出的一种可选方案。参见图3,本实施例提供的基于联盟
链的请求处理方法包括:
[0063] S310、通过第二方区块链节点的第二方权限代理服务,从第一方区块链节点的第一方权限代理服务接收事务处理请求;
[0064] 所述事务处理请求为第一方区块链节点对第二方区块链节点所关联的第二方区块链的数据查询请求;
[0065] S320、确定所述第一方区块链节点是否具有对所述第二方区块链的读权限;若有,则权限校验通过;否则,权限校验失败;
[0066] S330、在权限校验通过的情况下,向所述第二方区块链节点发送所述事务处理请求,由所述第二方区块链节点对所述事务处理请求进行处理。
[0067] 其中,所述第二方区块链节点和所述第一方区块链节点所属联盟链网络还包括权限控制区块链,用于记录联盟链网络中区块链的权限控制数据。在权限校验失败的情况下,
第二方权限代理服务还屏蔽数据查询请求。
[0068] 在第一方区块链节点对第二方区块链有查询需求的情况下,第一方区块链节点可以发起对第二方区块链的数据查询请求,第一方区块链节点通过第一方权限代理服务向第
二方权限代理服务发送该数据查询请求,由第二方权限代理服务确定第一方区块链节点是
否具有对第二方区块链的读权限;若有读权限,则权限校验通过,第二方权限代理服务可以
向第二方区块链节点发送该数据查询请求,由第二方区块链节点执行该数据查询请求得到
查询结果,并将查询结果反馈给第一方区块链节点;若没有读权限,则权限校验失败,第二
方权限代理服务屏蔽该数据查询请求。通过第二方权限代理服务进行权限校验,而不通过
第二方区块链节点进行鉴权,能够提高权限管理的灵活性、便捷性。
[0069] 在一种可选实施方式中,还包括:通过第二方权限代理服务,监听所述权限控制区块链中第二方区块链的权限更新数据,并根据第二方区块链的权限更新数据更新第二方区
块链节点的权限缓存数据;其中,第二方区块链节点与所述第二方区块链关联。
[0070] 其中,权限控制区块链还支持数据监听,可以为事件监听,也可以为客户端SDK读接口访问。第二方权限代理服务还能够监听权限控制区块链,在监听到第二方区块链的权
限更新数据情况下,还根据第二方区块链的权限更新数据更新第二方区块链节点的权限缓
存数据。第二方区块链节点可以为联盟链网络中的任一区块链节点,也就是说,联盟链网络
中任一区块链节点还维护自身关联的区块链的权限缓存数据。通过监听权限控制区块链中
自身关联的区块链的权限数据是否发生更新;在发生更新的情况下,更新该区块链节点的
权限缓存数据。例如,第二方权限代理服务可以实时同步更新第二方区块链的读节点身份
列表,还可以实时更新第二方区块链具有读权限的区块链列表。通过实时更新第二方区块
链节点的权限缓存数据,使第二方权限代理服务可以采用自身权限缓存数据对事务处理请
求进行权限校验,相比于采用权限控制区块链中的权限控制数据对事务处理请求进行权限
校验,能够提高权限校验效率,进而提高事务处理请求的处理效率。需要说明的是,联盟链
网络中区块链节点均可以维护有自身权限缓存数据,并可以采用自身权限缓存数据进行鉴
权。
[0071] 另外需要说明的是,联盟链网络需要满足如下原则:a.支持平行链的功能,需要开放一条平行链的读写权限,将该平行链作为权限控制区块链;b.支持数据监听,区块链节点
可以监听权限控制区块链中自身所关联区块链的权限更新数据;c.支持账户模型,可以采
用区块链节点地址对区块链节点进行区分命名。也就是说,可以基于上述原则,将已启动的
区块链引入联盟链网络。开发者可以使用现有的各种满足约束条件的区块链,进行较少的
开发配置例如构建区块链的权限控制智能合约,即可组装自己的联盟链系统。
[0072] 在一种可选实施方式中,所述事务处理请求为第一方区块链节点对第二方区块链节点所关联的第二方区块链的数据查询请求;所述对所述事务处理请求进行权限校验,包
括:确定所述第一方区块链节点是否具有对所述第二方区块链的读权限;若有,则权限校验
通过;否则,权限校验失败。
[0073] 其中,第一方区块链节点可以为第一方区块链的出块节点,第二方区块链节点为联盟链网络中除第一方区块链节点之外的其他区块链节点。在第一方区块链节点产生第一
方区块链的新区块的情况下,第一方权限代理服务可以向第二方区块链节点的第二方权限
代理服务发送新区块的区块同步请求,第二方权限代理服务可以根据第一方区块链的权限
控制数据确定第二方区块链节点是否具有对第一方区块链的读权限。只有在权限校验通过
的情况下,第二方权限代理服务才向第二方区块链节点发送事务处理请求,由第二方区块
链节点同步第一方区块链的新区块。另外,第二方权限代理服务也可以根据第二方区块链
节点的权限缓存数据进行权限校验。通过第二方权限代理服务进行权限校验,而不通过第
二方区块链节点进行鉴权,能够提高权限管理的灵活性、便捷性。
[0074] 本公开实施例的技术方案,通过与区块链服务为松耦合关系的权限代理服务对数据查询请求、区块同步请求等进行鉴权,提高了联盟链网络中权限控制的灵活性;并且,区
块链节点通过同步更新自身区块链的权限缓存数据,还能够提高区块链节点的权限校验效
率。
[0075] 图4根据本公开实施例提供的一种基于联盟链的请求处理装置的示意图,本公开实施例可适用于对联盟链网络中区块链的事务处理请求进行权限控制的情况,该装置配置
于电子设备中,可实现本公开任意实施例所述的基于联盟链的请求处理方法。参考图4,该
基于联盟链的请求处理装置400具体包括如下:
[0076] 请求接收模块410,用于通过第二方区块链节点的第二方权限代理服务,从第一方区块链节点的第一方权限代理服务接收事务处理请求;
[0077] 请求校验模块420,用于对所述事务处理请求进行权限校验;
[0078] 请求发送模块430,用于在权限校验通过的情况下,向所述第二方区块链节点发送所述事务处理请求,由所述第二方区块链节点对所述事务处理请求进行处理。
[0079] 在一种可选实施方式中,所述第二方区块链节点和所述第一方区块链节点所属联盟链网络还包括权限控制区块链,用于记录联盟链网络中区块链的权限控制数据。
[0080] 在一种可选实施方式中,该基于联盟链的请求处理装置400还包括权限更新模块,所述权限更新模块包括:
[0081] 更新请求接收单元,用于通过第二方权限代理服务,获取第二方区块链节点发起的权限更新请求;其中,所述权限更新请求包括目标区块链和目标区块链的权限更新数据;
[0082] 写权限校验单元,用于确定第二方区块链节点对所述目标区块链是否具有写权限;
[0083] 权限更新单元,用于在有写权限的情况下,控制将所述目标区块链的权限更新数据写入所述权限控制区块链。
[0084] 在一种可选实施方式中,所述权限更新请求调用目标区块链的权限控制智能合约发起;
[0085] 所述权限控制智能合约根据目标区块链的权限配置信息构建。
[0086] 在一种可选实施方式中,所述事务处理请求为第一方区块链节点所关联的第一方区块链的区块同步请求;
[0087] 所述请求校验模块420用于:
[0088] 确定所述第二方区块链节点是否具有对第一方区块链的读权限;若有,则权限校验通过;否则,权限校验失败。
[0089] 在一种可选实施方式中,所述事务处理请求为第一方区块链节点对第二方区块链节点所关联的第二方区块链的数据查询请求;
[0090] 所述请求校验模块420用于:
[0091] 确定所述第一方区块链节点是否具有对所述第二方区块链的读权限;若有,则权限校验通过;否则,权限校验失败。
[0092] 在一种可选实施方式中,该基于联盟链的请求处理装置400还包括:
[0093] 权限缓存模块,用于通过第二方权限代理服务,监听所述权限控制区块链中第二方区块链的权限更新数据,并根据第二方区块链的权限更新数据更新第二方区块链节点的
权限缓存数据。
[0094] 本公开实施例的技术方案,区块链服务与权限代理服务为松耦合关系,两个进程相互独立,通过独立的权限代理服务对区块链服务进行权限控制,不同区块链节点可以共
享权限控制策略,即权限代理服务可以复用,能够提高权限控制的灵活性;并且,权限控制
服务可以灵活地插拔,能够直接使用区块链服务的代码库组件联盟链网络,还降低了联盟
链组件门槛。
[0095] 本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
[0096] 根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0097] 图5示出了可以用来实施本公开的实施例的示例电子设备500的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字
助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种
形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算
装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限
制本文中描述的和/或者要求的本公开的实现。
[0098] 如图5所示,设备500包括计算单元501,其可以根据存储在只读存储器(ROM)502中的计算机程序或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序,来执
行各种适当的动作和处理。在RAM 503中,还可存储设备500操作所需的各种程序和数据。计
算单元501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至
总线504。
[0099] 设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通
信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如
因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0100] 计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工
智能(AI)计算芯片、各种执行机器学习模型算法的计算单元、数字信息处理器(DSP)、以及
任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,
例如基于联盟链的请求处理方法。例如,在一些实施例中,基于联盟链的请求处理方法可被
实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施
例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装
到设备500上。当计算机程序加载到RAM 503并由计算单元501执行时,可以执行上文描述的
基于联盟链的请求处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可
以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于联盟链的请求处理方
法。
[0101] 本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统
的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实
现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算
机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器
可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出
装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至
少一个输出装置。
[0102] 用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处
理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的
功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件
包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0103] 在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可
读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电
子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合
适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计
算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM
或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD‑ROM)、光学储存设备、磁储存设备、或
上述内容的任何合适组合。
[0104] 为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视
器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来
将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的
反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用
任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0105] 可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算
系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界
面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部
件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数
字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网
(LAN)、广域网(WAN)、区块链网络和互联网。
[0106] 计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上执行并且彼此具有客户端‑服务器关系的计
算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或
云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在
的管理难度大,业务扩展性弱的缺陷。
[0107] 应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只
要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0108] 上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开
的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。