基于联盟链的请求处理方法、装置、设备和存储介质转让专利
申请号 : CN202111189947.8
文献号 : CN113626850B
文献日 : 2022-03-11
发明人 : 金彤
申请人 : 北京百度网讯科技有限公司
摘要 :
权利要求 :
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中任一项所述的方法。
说明书 :
基于联盟链的请求处理方法、装置、设备和存储介质
技术领域
背景技术
一个或多个节点。参与方可以具有区块链,并将自身数据存储在区块链上。
发明内容
的请求处理方法。
链的请求处理方法。
附图说明
具体实施方式
到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同
样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
由一种基于联盟链的请求处理装置来执行,该装置可采用硬件和/或软件的方式来实现,可
配置于电子设备中。参考图1a,该方法具体包括如下:
为出块节点,若任一区块链节点为任一区块链的出块节点,则该区块链节点与该区块链关
联;部分区块链节点可以仅为同步节点,也可以称为追块节点,而不参与共识。联盟链中彼
此独立、互不影响的区块链可以称为平行链,即平行链是区块链的一种,具有一般区块链的
所有属性。
参与共识,分别为区块链A和区块链B的出块节点,区块链节点F为同步节点,即联盟链网络
包括区块链a、区块链b,区块链a与区块链节点A关联,区块链b与区块链节点B关联。区块链
网络中各区块链节点均具有自身的账户信息,即具有自身的区块链账户公钥、区块链账户
私钥和区块链账户地址,账户信息可以由CA(Certificate Authority,证书颁发机构)服务
提供,CA服务还负责联盟链网络的初始组网和网络TLS(Transport Layer Security,安全
传输层协议)通信。需要说明的是,图1b仅作为一种示例,对联盟链网络中区块链节点的数
量和身份不做具体限定,对区块链的数量也不做具体限定,即联盟链还可以有其他组织形
式。
限代理服务FrontA、FrontB和FrontF。权限代理服务用于对网络消息的过滤、转发、加工。每
个区块链节点仅能和自身权限代理服务通信,禁止不同区块链节点之间直接通信。权限代
理服务作为本地连接的区块链节点的代理,对合法消息进行转发和广播,对非法消息进行
屏蔽过滤。
盟链网络,而不需要对区块链服务的网络消息进行改造开发。通过外置的权限代理服务对
区块链节点进行访问控制,权限代理服务可以独立于区块链服务,它与区块链服务分别运
行在不同进程中,可以将权限代理服务灵活地加载在已启动的区块链系统中。相比于相关
技术中将权限控制嵌入到区块链系统代码内部,避免了公有链和联盟链之间的界线,降低
联盟链网络的组建门槛、减少联盟链网络的组建工作量,从而提高联盟链网络的组件效率。
有第二方权限代理服务。本公开实施例对事务请求类型、第一方区块链节点身份、第二方区
块链节点身份均不做具体限定,第一方区块链节点、第二方区块链节点可以属于联盟链网
络中的任一区块链节点。
理服务,第二方权限代理服务对事务处理请求进行权限校验;若权限校验通过,则向所述第
二方区块链节点发送所述事务处理请求,由所述第二方区块链节点对所述事务处理请求进
行处理;若校验失败,则屏蔽事务处理请求,即拒绝向第二方区块链节点转发事务处理请
求。通过对权限校验识别的非法消息进行屏蔽,即通过权限代理服务过滤恶意区块链节点
的访问请求,能够避免恶意区块链节点造成区块链数据泄露,提高区块链数据的安全性。
平行链的权限控制数据,即各平行链将自身权限控制数据提交到权限控制区块链中。权限
控制区块链属于公开链,各参与方均可以访问,例如参与方均可以监听权限控制区块链,访
问自身权限数据、或确定自身权限数据是否更新。
块链记录各区块链的权限控制数据,能够保障权限控制数据、权限校验的可靠性。
通过自身权限代理服务对事务处理请求进行权限校验,能够提高请求处理的灵活性、便捷
性。
盟链的请求处理方法包括:
块链具有读权限的区块链节点,写节点可以称为管理员节点。图2b是根据本公开实施例提
供的一种权限数据的数据格式的示意图,参考图2b,key(键)字段表示区块链的链标识,
value(值)字段表示区块链的权限信息,admin(管理员)字段为区块链的管理员,该管理员
对区块链具有写权限,可以进行写操作,Identities(身份)列表包括对区块链拥有读权限
的节点,可以读取区块链上数据。具体的,hello链的写节点为区块链节点A,读节点包括区
块链节点B和区块链节点F。
发送给自身权限代理服务即第二方权限代理服务,第二方权限代理服务根据目标区块链的
权限控制数据,确定第二方区块链节点对目标区块链是否具有写权限,也就是说,第二方权
限代理服务确定第二方区块链节点是否为目标区块链的管理员节点;若是,则具有写权限,
可以控制权限控制区块链的出块节点将目标区块链的权限更新数据写入权限控制区块链,
以更新目标区块链的权限控制数据。其中,目标区块链可以为联盟链网络中具有权限更新
需求的任一区块链。
说明的是,权限控制区块链的出块节点根据权限控制区块链在构建过程中的配置信息确
定,可以为联盟链网络中的任意节点。若第二方区块链节点不为目标区块链的管理员节点,
则第二方区块链节点不具有写权限,过滤权限更新请求,以拒绝第二方区块链节点更新目
标区块链的权限控制数据。
出块节点发送未经权限校验的权限更新请求,由该出块节点确定第二方区块链节点对所述
目标区块链是否具有写权限;在有写权限的情况下,执行权限更新请求;在没有写权限的情
况下,拒绝权限更新请求。联盟链网络中任一区块链节点可以作为第二方区块链节点,即任
一区块链节点可以通过发起权限更新请求更新自身所关联的区块链的权限控制数据。
目标区块链的权限控制数据的更新,提高区块链权限控制的灵活性。例如,在前t时间段,区
块链节点F不属于第二方区块链的读节点,因此在前t时间段区块链节点F对第二方区块链
没有读权限;然而在t+1时间段,通过对第二方区块链的权限更新请求将区块链节点F作为
第二方区块链的新读节点,在区块链节点F作为新读节点之后,区块链节点F可以读取第二
方区块链中的数据。
以根据目标区块链的权限配置信息构建。在创建目标区块链的过程中,可以确定目标区块
链的权限配置信息,并根据目标区块链的权限配置信息构建目标区块链的权限控制智能合
约;在需要更新目标区块链权限信息的情况下,可以调用目标区块链的权限控制智能合约
发起对目标区块链的权限更新请求。目标区块链的权限配置信息可以根据目标区块链所属
参与方的个性化配置需求设置,即可以为个性化的权限控制规则。并且,仅需要对已启动的
区块链进行权限信息配置即可将区块链添加到联盟链网络中。通过根据目标区块链的权限
配置信息构建目标区块链的权限控制智能合约,能够提高目标区块链权限控制的灵活性。
性。
链的请求处理方法包括:
第二方权限代理服务还屏蔽数据查询请求。
二方权限代理服务发送该数据查询请求,由第二方权限代理服务确定第一方区块链节点是
否具有对第二方区块链的读权限;若有读权限,则权限校验通过,第二方权限代理服务可以
向第二方区块链节点发送该数据查询请求,由第二方区块链节点执行该数据查询请求得到
查询结果,并将查询结果反馈给第一方区块链节点;若没有读权限,则权限校验失败,第二
方权限代理服务屏蔽该数据查询请求。通过第二方权限代理服务进行权限校验,而不通过
第二方区块链节点进行鉴权,能够提高权限管理的灵活性、便捷性。
块链节点的权限缓存数据;其中,第二方区块链节点与所述第二方区块链关联。
限更新数据情况下,还根据第二方区块链的权限更新数据更新第二方区块链节点的权限缓
存数据。第二方区块链节点可以为联盟链网络中的任一区块链节点,也就是说,联盟链网络
中任一区块链节点还维护自身关联的区块链的权限缓存数据。通过监听权限控制区块链中
自身关联的区块链的权限数据是否发生更新;在发生更新的情况下,更新该区块链节点的
权限缓存数据。例如,第二方权限代理服务可以实时同步更新第二方区块链的读节点身份
列表,还可以实时更新第二方区块链具有读权限的区块链列表。通过实时更新第二方区块
链节点的权限缓存数据,使第二方权限代理服务可以采用自身权限缓存数据对事务处理请
求进行权限校验,相比于采用权限控制区块链中的权限控制数据对事务处理请求进行权限
校验,能够提高权限校验效率,进而提高事务处理请求的处理效率。需要说明的是,联盟链
网络中区块链节点均可以维护有自身权限缓存数据,并可以采用自身权限缓存数据进行鉴
权。
可以监听权限控制区块链中自身所关联区块链的权限更新数据;c.支持账户模型,可以采
用区块链节点地址对区块链节点进行区分命名。也就是说,可以基于上述原则,将已启动的
区块链引入联盟链网络。开发者可以使用现有的各种满足约束条件的区块链,进行较少的
开发配置例如构建区块链的权限控制智能合约,即可组装自己的联盟链系统。
括:确定所述第一方区块链节点是否具有对所述第二方区块链的读权限;若有,则权限校验
通过;否则,权限校验失败。
方区块链的新区块的情况下,第一方权限代理服务可以向第二方区块链节点的第二方权限
代理服务发送新区块的区块同步请求,第二方权限代理服务可以根据第一方区块链的权限
控制数据确定第二方区块链节点是否具有对第一方区块链的读权限。只有在权限校验通过
的情况下,第二方权限代理服务才向第二方区块链节点发送事务处理请求,由第二方区块
链节点同步第一方区块链的新区块。另外,第二方权限代理服务也可以根据第二方区块链
节点的权限缓存数据进行权限校验。通过第二方权限代理服务进行权限校验,而不通过第
二方区块链节点进行鉴权,能够提高权限管理的灵活性、便捷性。
块链节点通过同步更新自身区块链的权限缓存数据,还能够提高区块链节点的权限校验效
率。
于电子设备中,可实现本公开任意实施例所述的基于联盟链的请求处理方法。参考图4,该
基于联盟链的请求处理装置400具体包括如下:
权限缓存数据。
享权限控制策略,即权限代理服务可以复用,能够提高权限控制的灵活性;并且,权限控制
服务可以灵活地插拔,能够直接使用区块链服务的代码库组件联盟链网络,还降低了联盟
链组件门槛。
助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种
形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算
装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限
制本文中描述的和/或者要求的本公开的实现。
行各种适当的动作和处理。在RAM 503中,还可存储设备500操作所需的各种程序和数据。计
算单元501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至
总线504。
信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如
因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
智能(AI)计算芯片、各种执行机器学习模型算法的计算单元、数字信息处理器(DSP)、以及
任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,
例如基于联盟链的请求处理方法。例如,在一些实施例中,基于联盟链的请求处理方法可被
实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施
例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装
到设备500上。当计算机程序加载到RAM 503并由计算单元501执行时,可以执行上文描述的
基于联盟链的请求处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可
以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于联盟链的请求处理方
法。
的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实
现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算
机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器
可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出
装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至
少一个输出装置。
理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的
功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件
包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电
子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合
适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计
算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM
或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD‑ROM)、光学储存设备、磁储存设备、或
上述内容的任何合适组合。
器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来
将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的
反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用
任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界
面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部
件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数
字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网
(LAN)、广域网(WAN)、区块链网络和互联网。
算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或
云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在
的管理难度大,业务扩展性弱的缺陷。
要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。