事务请求的处理方法、装置、设备和存储介质制造方法及图纸

技术编号:21899204 阅读:18 留言:0更新日期:2019-08-17 18:32
本发明专利技术实施例公开了一种事务请求的处理方法、装置、设备和存储介质。该方法应用于区块链节点,包括:获取基于应用智能合约发起的事务请求,及事务请求的预执行结果;根据预执行结果以及应用智能合约的权限控制表,分别对事务请求的执行过程进行系统级及合约级处理权限的验证;若各项权限的验证通过,则调用应用智能合约执行事务请求,以获取验证执行结果,并与预执行结果进行匹配验证;结果匹配验证通过后,确定事务请求预执行结果的有效性。本发明专利技术实施例的技术方案通过在对事务请求的处理过程中嵌入权限管理机制,实现了事务请求处理和权限管理的同步执行,从而强化了事务请求处理过程的权限管理的系统性、通用性以及易执行性。

Processing methods, devices, devices and storage media for transaction requests

【技术实现步骤摘要】
事务请求的处理方法、装置、设备和存储介质
本专利技术实施例涉及区块链权限管理技术,尤其涉及一种事务请求的处理方法、装置、设备和存储介质。
技术介绍
现有区块链可大致分为公有链、联盟链和私有链。公有链系统主要有比特币、以太坊和EOS(EnterpriseOperationSystem,商用操作系统)。在区块链系统的权限管理方面,一般不同系统的权限管理方式都不同。比特币系统中没有设计权限管理系统。以太坊系统中引入了智能合约,以太坊系统对于智能合约没有进行权限控制的手段,需要通过在智能合约内硬编码方式来确定权限控制方案。EOS系统中为智能合约提供了基于RBAC(基于角色的权限访问控制,Role-BasedAccessControl)的权限控制方案。但是,上述不同区块链系统中的权限管理方案,通用性较差,在去中性化为特点的区块链系统中,权限的配置和升级均不方便。由此导致事务请求处理过程中的权限控制通用性差。
技术实现思路
本专利技术实施例提供一种事务请求的处理方法、装置、设备和存储介质,以强化区块链中事务请求处理过程的权限管理的系统性、通用性、以及易执行性。第一方面,本专利技术实施例提供了一种事务请求的处理方法,应用于区块链节点,所述方法包括:获取基于应用智能合约发起的事务请求,以及所述事务请求的预执行结果;根据所述事务请求的预执行结果,对所述事务请求的执行过程进行系统级处理权限的验证;根据所述事务请求的预执行结果,并基于所述应用智能合约的权限控制表,对所述事务请求的执行过程进行合约级处理权限的验证;如果各项权限的验证通过,则调用所述应用智能合约执行所述事务请求,以获取验证执行结果,并与所述预执行结果进行匹配验证;结果匹配验证通过后,确定所述事务请求预执行结果的有效性。第二方面,本专利技术实施例还提供了一种事务请求的处理装置,配置于区块链节点,所述装置包括:事务请求获取模块,用于获取基于应用智能合约发起的事务请求,以及所述事务请求的预执行结果;系统级验证模块,用于根据所述事务请求的预执行结果,对所述事务请求的执行过程进行系统级处理权限的验证;合约级验证模块,用于根据所述事务请求的预执行结果,并基于所述应用智能合约的权限控制表,对所述事务请求的执行过程进行合约级处理权限的验证;执行结果验证模块,用于在各项权限的验证通过时,调用所述应用智能合约执行所述事务请求,以获取验证执行结果,并与所述预执行结果进行匹配验证;有效性确定模块,用于在结果匹配验证通过后,确定所述事务请求预执行结果的有效性。第三方面,本专利技术实施例还提供了一种电子设备,所述电子设备包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面实施例所提供的一种事务请求的处理方法。第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面实施例所提供的一种事务请求的处理方法。本专利技术实施例通过引入基于应用智能合约的事务请求对应的预执行结果以及应用智能合约的权限控制表,分别对事务请求的执行过程进行系统级以及合约级处理权限的验证;在系统级和合约级处理权限的验证通过后,通过调用应用智能合约执行事务请求得到验证执行结果,进一步验证预执行结果的正确性,从而实现对事务请求预执行结果的有效性的验证。上述技术方案通过在对事务请求的处理过程中嵌入权限管理机制,实现了事务请求处理和权限管理的同步执行,从而强化了事务请求处理过程的权限管理的系统性、通用性以及易执行性。附图说明图1A是本专利技术实施例所采用的一种智能合约账户模型的结构示意图;图1B是本专利技术实施例所采用的一种合约账户的结构示意图;图2是本专利技术实施例一中的一种事务请求的处理方法的流程图;图3是本专利技术实施例二中的一种事务请求的处理方法的流程图;图4是本专利技术实施例三中的一种事务请求的处理方法的流程图;图5是本专利技术实施例四中的一种事务请求的处理方法的流程图;图6是本专利技术实施例五中的一种事务请求的处理装置的结构图;图7是本专利技术实施例六提供的一种电子设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。为了清楚地介绍本专利技术各实施例的技术方案,首先参见图1A所示的智能合约账户模型的结构示意图和图1B所示的合约账户的结构示意图,对系统账户、合约账户和用户账户进行详细说明。系统账户,是为区块链系统对应创建的系统级账户,一般可以在创建区块链时创建,该系统账户绑定有一个基础智能合约(Kernel合约),是专用于为合约账户生成权限控制数据的智能合约,通常完成系统级别的功能管理。合约账户,是为智能合约账户模型中的智能合约所分配的合约级账户,由需要部署智能合约的一个或多个用户账户,调用基础智能合约来创建,用于对智能合约进行部署和/或管理。合约账户可以由基础智能合约对其进行管理。在合约账户中配置有权限控制数据,用于作为对合约账户的账户操作进行鉴权的参照依据;在合约账户中部署有至少一个应用智能合约,用于供用户账户进行调用,以通过执行应用智能合约实现各种所需的具体应用功能;合约账户还可以持有区块链系统中任何应用智能合约发行时的资产,用于在参与应用智能合约时实现账户资产的转移;合约账户中还配置有权限控制表,用于控制用户账户调用应用智能合约中的子程序(method)的调用权限。用户账户,通常由个人或企业所有,用于作为用户在区块链中的唯一标识。每个用户账户可以分配有非对称的公钥和私钥,由用户管理私钥,可以将公钥作为用户账户的地址。在智能合约账户模型中,通常包括一个系统账户和至少一个合约账户。本专利技术各实施例的技术方案基于上述智能合约账户模型加以实现。实施例一图2是本专利技术实施例一中的一种事务请求的处理方法的流程图。本专利技术实施例适用于区块链节点对事务请求进行处理的情况,该方法由事务请求的处理装置执行,该装置由软件和/或硬件实现,并具体配置于承载有区块链节点的电子设备中。如图2所示的一种事务请求的处理方法,应用于区块链节点,包括:S110、获取基于应用智能合约发起的事务请求,以及所述事务请求的预执行结果。其中,应用智能合约包含有至少一个子程序,用于通过调用应用智能合约的子程序实现相应的应用功能,例如转账交易、数据分析等任何需要完成的功能。其中,预执行结果可以理解为用户账户直接调用应用智能合约处理事务请求所得到的执行结果。预执行结果通常包括调用应用智能合约执行过程所需使用到的读取数据、写入数据,以及执行过程中调用的程序、接口等各种资源,还可以包括该事务请求执行所需的签名信息,例如,发起用户提供的授权签名等。具体的,用户账户具备某一应用需求时,将会基于该应用需求对应的应用智能合约发起事务请求,并将事务请求以及调用应用智能合约得到的预执行结果在区块链网络中进行广播;区块链节点接收该事务请求以及事务请求的与执行结果,进行后续处理。可选的,基于应用智能合约发起的事务请求的获取,可以是以常规事务请求的获取方式进行当前事务请求的获取;解析获取的当前事务请求,以确定当前事务请求是否本文档来自技高网...

【技术保护点】
1.一种事务请求的处理方法,其特征在于,应用于区块链节点,所述方法包括:获取基于应用智能合约发起的事务请求,以及所述事务请求的预执行结果;根据所述事务请求的预执行结果,对所述事务请求的执行过程进行系统级处理权限的验证;根据所述事务请求的预执行结果,并基于所述应用智能合约的权限控制表,对所述事务请求的执行过程进行合约级处理权限的验证;如果各项权限的验证通过,则调用所述应用智能合约执行所述事务请求,以获取验证执行结果,并与所述预执行结果进行匹配验证;结果匹配验证通过后,确定所述事务请求预执行结果的有效性。

【技术特征摘要】
1.一种事务请求的处理方法,其特征在于,应用于区块链节点,所述方法包括:获取基于应用智能合约发起的事务请求,以及所述事务请求的预执行结果;根据所述事务请求的预执行结果,对所述事务请求的执行过程进行系统级处理权限的验证;根据所述事务请求的预执行结果,并基于所述应用智能合约的权限控制表,对所述事务请求的执行过程进行合约级处理权限的验证;如果各项权限的验证通过,则调用所述应用智能合约执行所述事务请求,以获取验证执行结果,并与所述预执行结果进行匹配验证;结果匹配验证通过后,确定所述事务请求预执行结果的有效性。2.根据权利要求1所述的方法,其特征在于,获取基于应用智能合约发起的事务请求之后,还包括:根据所述应用智能合约所属的合约账户,识别所述事务请求是否为合约账户的账户操作;如果所述事务请求为账户操作,则基于所述合约账户的权限控制数据,对所述账户操作的处理权限进行验证。3.根据权利要求2所述的方法,其特征在于,权限验证的执行顺序从前至后依次包括:所述系统级处理权限的验证、所述账户操作的处理权限的验证、以及所述合约级处理权限的验证。4.根据权利要求3所述的方法,其特征在于,所述系统级处理权限的验证、所述账户操作的处理权限的验证、以及所述合约级处理权限的验证通过调用基础智能合约来实现。5.根据权利要求1所述的方法,其特征在于,结果匹配验证通过后,确定所述事务请求执行结果的有效性之后,还包括:将所述预执行结果封装到所述事务请求中,向区块链网络中传输,以请求其他区块链节点验证所述事务请求;或将包括所述预执行结果的事务请求,作为事务数据,存储到区块中。6.根据权利要求1所述的方法,其特征在于,根据所述事务请求的预执行结果,对所述事务请求的执行过程进行系统级处理权限的验证包括:确定所述事务请求获得预执行结果中所使用的系统接口;根据为所述应用智能合约配置的系统接口调用权限表,验证所述应用智能合约是否有权限调用所述系统接口,以进行系统级处理权限的验证。7.根据权利要求1所述的方...

【专利技术属性】
技术研发人员:郑旗肖伟
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1