CN111682945B - 一种区块链的权限控制方法、装置、设备和介质 - Google Patents
一种区块链的权限控制方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN111682945B CN111682945B CN202010473350.5A CN202010473350A CN111682945B CN 111682945 B CN111682945 B CN 111682945B CN 202010473350 A CN202010473350 A CN 202010473350A CN 111682945 B CN111682945 B CN 111682945B
- Authority
- CN
- China
- Prior art keywords
- plug
- transaction request
- signature
- node
- authority control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请公开了一种区块链的权限控制方法、装置、设备和介质,涉及区块链技术领域。具体实现方案为:获取用户发起的事务请求;对所述事务请求中的插件签名进行验证;其中,所述插件签名为所述事务请求经过插件的权限控制处理后由所述插件添加的;如果所述事务请求通过插件签名的验证,则将所述事务请求向区块链网络发起上链操作。本申请实施例实现了对区块链系统中各个节点的个性化的权限控制,提高了权限控制的灵活性,同时兼顾了权限控制的通用性。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及区块链技术。
背景技术
区块链系统是去中心化的网络系统,可区分为公链、联盟链和私有链。在区块链系统所包括的多个节点中,每个节点均基于区块链的系统程序执行事务请求并进行区块数据的存储。
区块链系统属于网络底层基础设施,能够支持各种应用层业务。当区块链系统应用于实际业务环境时,需要和业务的应用系统进行对接。由于实际业务环境的需求复杂性,所以往往需要各个节点能够按需实施不同的、个性化的权限控制,而不止是区块链系统的统一权限控制。
发明内容
本申请实施例提供了一种兼备通用性和灵活性的区块链的权限控制方法、装置、设备和介质。
根据本申请的一方面,提供了一种区块链的权限控制方法,由区块链的节点执行,所述方法包括:
获取用户发起的事务请求;
对所述事务请求中的插件签名进行验证;其中,所述插件签名为所述事务请求经过插件的权限控制处理后由所述插件添加的;
如果所述事务请求通过插件签名的验证,则将所述事务请求向区块链网络发起上链操作。
根据本申请的另一方面,提供了一种区块链的权限控制方法,由区块链的轻量级节点执行,所述方法包括:
获取用户发起的事务请求;
根据关联全节点配置的插件权限控制规则中所规定的至少一个插件,向所述至少一个插件发起针对所述事务请求的权限控制处理请求;其中,所述插件权限控制规则为所述关联全节点规定的所述事务请求应通过至少一个插件的权限控制;
将所述插件基于所述权限控制处理请求反馈的插件签名添加至所述事务请求中;
将所述事务请求发送给所述关联全节点,以请求所述关联全节点通过所述插件签名的验证后,将所述事务请求向区块链网络发起上链操作。
根据本申请的另一方面,提供了一种区块链的权限控制方法,由区块链的插件服务器执行,所述方法包括:
获取区块链节点向应通过权限控制的至少一个插件发起的,针对事务请求的权限控制处理请求;
响应于所述权限控制处理请求,对所述事务请求进行权限控制处理;
若权限控制处理通过,则向所述区块链节点反馈插件签名,以使所述区块链节点将所述插件签名添加至所述事务请求;其中,所述插件签名用于对所述事务请求进行权限验证。
根据本申请的另一方面,提供了一种区块链的权限控制装置,由区块链的节点执行,所述装置包括:
事务请求获取模块,用于获取用户发起的事务请求;
插件签名验证模块,用于对所述事务请求中的插件签名进行验证;其中,所述插件签名为所述事务请求经过插件的权限控制处理后由所述插件添加的;
上链操作发起模块,用于如果所述事务请求通过插件签名的验证,则将所述事务请求向区块链网络发起上链操作。
根据本申请的另一方面,提供了一种区块链的权限控制装置,由区块链的轻量级节点执行,所述装置包括:
事务请求获取模块,用于获取用户发起的事务请求;
权限控制处理请求发起模块,用于根据关联全节点配置的插件权限控制规则中所规定的至少一个插件,向所述至少一个插件发起针对所述事务请求的权限控制处理请求;其中,所述插件权限控制规则为所述关联全节点规定的所述事务请求应通过至少一个插件的权限控制;
插件签名添加模块,用于将所述插件基于所述权限控制处理请求反馈的插件签名添加至所述事务请求中;
事务请求发送模块,用于将所述事务请求发送给所述关联全节点,以请求所述关联全节点通过所述插件签名的验证后,将所述事务请求向区块链网络发起上链操作。
根据本申请的另一方面,提供了一种区块链的权限控制装置,由区块链的插件服务器执行,所述装置包括:
权限控制处理请求发起模块,用于获取区块链节点向应通过权限控制的至少一个插件发起的,针对事务请求的权限控制处理请求;
权限控制处理模块,用于响应于所述权限控制处理请求,对所述事务请求进行权限控制处理;
插件签名反馈模块,用于若权限控制处理通过,则向所述区块链节点反馈插件签名,以使所述区块链节点将所述插件签名添加至所述事务请求;其中,所述插件签名用于对所述事务请求进行权限验证。
根据本申请的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请实施例提供的任意一种区块链的权限控制方法。
根据本申请的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本申请实施例提供的任意一种区块链的权限控制方法。
本申请实施例通过区块链的节点获取用户发起的事务请求;对事务请求中的插件签名进行验证;其中,插件签名为事务请求经过插件的权限控制处理后由插件添加的;若果事务请求通过插件签名的验证,则将事务请求向区块链网络发起上链操作。本申请实施例实现了对区块链系统中各个节点的个性化的权限控制,提高了权限控制的灵活性,同时兼顾了权限控制的通用性。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请实施例提供的一种区块链系统的结构图;
图2是本申请实施例提供的一种区块链的权限控制方法的流程图;
图3是本申请实施例提供的另一种区块链的权限控制方法的流程图;
图4是本申请实施例提供的另一种区块链的权限控制方法的流程图;
图5是本申请实施例提供的另一种区块链的权限控制方法的流程图;
图6是本申请实施例提供的一种区块链的权限控制装置的结构图;
图7是本申请实施例提供的另一种区块链的权限控制装置结构图;
图8是本申请实施例提供的另一种区块链的权限控制装置结构图;
图9是用来实现本申请实施例的一种区块链的权限控制方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
为了清楚的介绍本申请实施例的技术方案,首先对本申请所涉及的区块链系统的整体架构进行说明。
参见图1所示的一种区块链系统的结构图,该区块链系统包括全节点101、轻量级节点102和插件服务器103。
其中,全节点101,可以理解为区块链系统中的常规节点,用于完整存储所述有区块链的数据,并能够独立进行区块链中事务请求的广播、处理和验证等操作。
其中,轻量级节点102,区别于常规节点,并不完全存储所有区块链的数据。当轻量级节点需要完整区块链、或需要新增一个或多个区块链数据、或需要查询历史区块数据时,可以通过向全节点发起事务请求的方式进行数据获取。
其中,插件服务器103,用于存储至少一个插件;不同插件用于对事务请求进行不同类型的权限控制处理,并在权限控制处理通过后反馈插件签名,用于添加至事务请求中,以便区块链中的节点对事务请求进行权限验证。例如,权限控制处理可以包括黄反检测、费用检测和发起方权限等权限类型中的至少一种。
可选的,插件服务器103可以是中心化的服务器,用于为区块链系统中的节点提供权限控制处理服务;还可以是区块链系统中的插件节点,用于通过接收并处理事务请求的方式,向区块链系统中的节点提供权限控制处理服务。其中,插件节点可以是仅用于提供权限控制处理服务的专属区块链节点,还可以是存储有至少一个插件的常规区块链节点。
需要说明的是,一个区块链系统中可以设置至少一个插件服务器103;一个插件服务器中可以存储至少一个用于提供权限控制处理服务的插件;一个插件针对至少一个节点提供权限控制处理服务;一个节点可以配置有至少一个插件,提供相应类型的权限控制处理服务。
其中,插件服务器103可以通过插件注册的方式进行插件的添加和服务配置。
本申请实施例提供的各区块链的权限控制方法和区块链的权限控制装置,适用于对图1所示的区块链系统中的区块链节点之间的交互过程,进行权限控制的情况。本申请实施例的各区块链的权限控制方法,可以由区块链的权限控制装置执行,该装置采用软件和/或硬件实现,并具体配置与承载有区块链节点的电子设备中。
图2是本申请实施例提供的一种区块链的权限控制方法的流程图,该方法由区块链的节点执行,包括:
S201、获取用户发起的事务请求。
当用户具备业务需求时,用户可以通过承载有区块链节点的电子设备,执行事务请求发起操作,从而生成与业务需求相关联的事务请求,并将所生成的事务请求发送至区块链节点。相应的,区块链节点获取该事务请求。
在一种可选实施方式中,可以获取用户通过全节点发起的事务请求,用于对全节点在区块链中所传输的事务请求进行权限控制,也即实现对全节点之间传输的内部流量的权限控制。
在另一可选实施方式中,还可以获取用户通过轻量级节点传输给区块链节点的事务请求,用于对轻量级节点向区块链节点所传输的事务请求进行权限控制,也即实现对轻量级节点与全节点之间传输的外部流量的权限控制。
需要说明的是,通常情况下全节点在区块链系统中的活跃度较高、自身公信力也较高、自身作恶成本也较高;而轻量级节点参与制区块链网络的频率较低、在区块链系统中的活跃度也较低、其自身公信力有限、自身作恶成本也较低。为了减少区块链系统进行数据处理的数据运算量,同时实现对区块链系统的有效监控,通常仅会对轻量级节点与全节点之间传输的外部流量,进行权限控制。
其中,事务请求中包含由插件添加的插件签名,用于后续对事务请求进行权限验证。
示例性地,第一区块链节点在向其他区块链节点发送事务请求之前,会由插件服务器中的至少一个插件对事务请求进行权限控制处理,并在权限控制处理通过时,由插件反馈插件签名,并添加至事务请求中;第一区块链节点将添加有插件签名的事务请求发送至第二区块链节点;该第二区块链节点获取由第一区块链节点发送的添加有插件签名的事务请求。其中,第二区块链节点相当于本申请中的区块链节点,也即本机节点。
为了避免由于网络故障或高并发等因素的影响,导致第一区块链节点无法与插件服务器正常通信,或第一区块链节点不具备插件服务器访问权限时,为了保证权限控制方案的正常运行,还可以直接由第一区块链节点将未添加插件签名的事务请求发送至第二区块链节点,由第二区块链节点向事务请求应通过权限控制的至少一个插件,发起权限控制处理请求;将从插件反馈获取的插件签名添加至事务请求中。其中,第二区块链节点相当于本申请中的区块链节点,也即本机节点。
示例性地,本机节点根据需求可以预先从插件服务器中配置至少一个插件,用于对接收的事务请求的发起方进行权限控制,并基于所配置的插件的权限控制,生成插件权限控制规则。相应的,根据插件权限控制规则,向事务请求应通过权限控制的至少一个插件,进行权限控制处理请求的发起操作。
为了便于插件权限控制规则的获取,通常会将插件权限控制规则在区块链节点中本地存储。为了便于插件权限控制规则能够基于区块链节点需求动态调整,还可以将插件权限控制规则,通过应用程序软件进行配置或更新。相应的,根据本机节点配置的插件权限控制规则,向事务请求应通过权限控制的至少一个插件,进行权限控制处理请求的发起操作。
S202、对所述事务请求中的插件签名进行验证;其中,所述插件签名为所述事务请求经过插件的权限控制处理后由所述插件添加的。
其中,区块链节点在获取到事务请求之后,对事务请求中的插件签名进行验证,从而对事务请求发起者进行权限控制。
示例性地,插件签名可以是由插件服务器中注册插件时,基于插件标识所生成的非对称密钥中的插件私钥,以便后续通过非对称密钥中的插件公钥,进行插件签名验证。
在一种可选实施例中,可以将事务请求中的插件签名,基于插件公钥进行验证,其中,插件签名为基于插件私钥的签名。可选的,插件公钥可以由本机节点在进行签名验证时,从插件服务器中实时获取得到。为了减少签名验证时区块链系统中的数据传输量,同时提高签名验证效率,可选的,本机节点还可以在从插件服务器进行需求插件的配置时,进行插件公钥的获取,并本地存储,从而通过本机节点本地存储的插件公钥进行插件签名验证。
在另一可选实施例中,为了保证插件签名验证结果的有效性和准确性,避免区块链节点出现恶意验证的情况,还可以将事务请求中的插件签名发送至插件服务器,以请求插件服务器对插件签名进行验证。
在又一可选实施例中,为了避免服务器中心化对插件签名验证结果的影响,还可以将事务请求中的插件签名发送至插件节点,以请求插件节点对插件签名进行验证。
为了保证数据传输的规范性和安全性,在一种可选实施例中,将事务请求中的插件签名发送至插件节点,以请求插件节点对插件签名进行验证,可以是通过本机节点的前置权限控制层,基于远程过程调用或超文本传输协议的方式,将事务请求中的插件签名发送至插件节点。
示例性地,对事务请求中的插件签名进行验证,可以是对事务请求中的插件签名的正确性进行验证,从而保证事务请求中的插件签名由正确的插件进行权限控制处理后添加得到。
由于同一事务请求中可能添加有至少两个插件签名,此时,还需要对事务请求中的插件签名的完整性进行验证,从而保证事务请求中所添加的插件签名的数量正确,未产生权限控制处理的遗漏。
可选的,可以基于本机节点配置的插件权限控制规则,对事务请求中所包括的插件签名的正确性和/或完整性进行验证。其中,插件权限控制规则,用于规定事务请求应通过至少一个插件的权限控制,从而通过插件权限控制规则,为权限验证提供验证参照。
示例性地,在对事务请求中的插件签名进行验证时,根据插件权限控制规则,确定待验证的插件签名的内容和数量,从而基于待验证的插件签名的内容和数量,对事务请求中的插件签名的正确性和/或完整性加以验证。可选的,插件权限控制规则可以配置在本机节点中,例如可以由本机节点所部署的应用层软件进行配置,从而便于插件权限控制规则的配置和更新。
需要说明的是,当事务请求中添加有至少两个插件签名时,可以通过对至少插件签名进行并行验证的方式,来提高插件签名的验证效率。
S203、如果所述事务请求通过插件签名的验证,则将所述事务请求向区块链网络发起上链操作。
如果事务请求通过插件签名验证,则表明事务请求通过了权限验证,此时,区块链节点会将通过验证后的事务请求向区块链网络传输,从而发起上链操作。如果事务请求未通过插件签名验证,则表明事务请求发起方所不具备事务请求发起权限,或所发起的事务请求存在违规情况,此时,区块链节点拒绝将事务请求发起方所发送的事务请求,在区块链网络中进行传输。
在一种可选实施例中,如果所述事务请求通过插件签名的验证,则将事务请求向区块链网络发起上链操作,可以是:如果事务请求通过插件签名的验证,则预执行事务请求,以获取预执行结果;根据事务请求、预执行结果以及本机节点的签名,封装事务请求;将事务请求提交给区块链网络的其他节点,以向区块链网络发起上链操作。
可以理解的是,通过在事务请求中添加预执行结果,从而为区块链网络中的其他节点进行事务数据验证提供数据支撑;通过在事务请求中添加本机节点签名,从而便于对事务请求和预执行结果进行追溯。
本申请实施例通过区块链的节点获取用户发起的事务请求;对事务请求中的插件签名进行验证;其中插件签名为事务请求经过插件的权限控制处理后由插件添加的;如果事务请求通过插件签名的验证,则将事务请求向区块链网络发起上链操作。上述技术方案通过插件对事务请求进行权限控制处理后,在事务请求中添加插件签名,从而便于区块链的节点基于插件签名对事务请求进行权限验证,从而实现对区块链节点之间的数据传输权限加以控制,通过插件、权限控制处理以及插件签名相关联的方式,能够适配不同业务场景下权限控制的个性化需求,保证了区块链权限控制的通用性和灵活性。
图3是本申请实施例提供的另一中区块链的权限控制方法的流程图,该方法由区块链的轻量级节点执行,包括:
S301、获取用户发起的事务请求。
当用户具备业务需求时,用户可以通过承载有轻量级节点的电子设备,执行事务请求发起操作,从而生成与业务需求相关联的事务请求,并发送至轻量级节点。相应的,轻量级节点获取该事务请求。
S302、根据关联全节点配置的插件权限控制规则中所规定的至少一个插件,向所述至少一个插件发起针对所述事务请求的权限控制处理请求;其中,所述插件权限控制规则为所述关联全节点规定的所述事务请求应通过至少一个插件的权限控制。
其中,关联全节点可以是区块链网络中具备以下至少一种特性的全节点:较高公信力、数据处理能力较高、与轻量级节点的链接次数较高、以及与轻量级节点建立有固定链接关系等。
示例性地,关联全节点一般为轻量级节点指定的至少一个可信节点。示例性地,轻量级节点本地可存储有可信节点列表,用于存储轻量级节点的至少一个可信节点,作为关联全节点。示例性地,全节点中也可以存储可信轻节点列表,用于存储能够通过全节点参与至区块链网络的至少一个轻量级节点。
在一种可选实施例中,轻量级节点在于关联全节点建立关联关系时,预先配置有关联全节点所配置的插件权限控制规则,用于规定事务请求应通过至少一个插件的权限控制;相应的,轻量级节点可以本地获取与关联全节点对应的插件权限控制规则,从而确定用户发起的事务请求应通过的权限控制的插件数量以及插件标识。
为了减少轻量级节点中的数据存储量,在另一可选实施例中,还可以由轻量级节点从关联节点中获取插件权限控制规则,并基于所获取的插件权限控制规则,确定事务请求应通过权限控制的插件数量以及插件标识。
示例性地,插件标识可以是插件接口,用于通过插件接口访问插件服务器中对应的插件;插件标识还可以是插件编号,用于通过插件编号确定插件服务器中相应插件的插件接口,并进行访问。
插件编号可以在向插件服务器中注册插件时,根据插件数量和插件属性等信息中的至少一种,按照设定编码规则编码生成的插件唯一标识。其中,插件编码规则由技术人员根据需要或经验值进行确定。插件接口可以根据插件编号自动生成,例如,可以是URL(Uniform Resource Locator,统一资源定位符)网址。其中,插件编号与插件接口一一对应。
示例性地,向所述至少一个插件发起针对所述事务请求的权限控制处理请求,以请求插件服务器中的相应插件,基于权限控制处理请求,对事务请求进行相应类型的权限控制处理服务,用于对事务请求中的请求内容和/或事务请求的发起方资格进行权限验证,并在权限验证通过后,反馈插件签名。示例性地,权限控制处理可以包括黄反检测、费用检测和发起方权限等权限类型中的至少一种。其中,黄反检测,用于检测事务请求中是否包含黄反言论违规情况;费用检测,用于验证事务请求发起方是否有足够的事务请求处理的费用支撑;发起方权限,用于验证事务请求发起方是否具备事务请求发起权限。
为了保证数据传输的规范性和安全性,在一种可选实施例中,向所述至少一个插件发起针对所述事务请求的权限控制处理请求,可以是通过本机节点的前置权限控制层,基于远程过程调用或超文本传输协议的方式,向所述至少一个插件发起针对所述事务请求的权限控制处理请求。
S303、将所述插件基于所述权限控制处理请求反馈的插件签名添加至所述事务请求中。
示例性地,插件在权限验证通过后,可以在所接收的事务请求中直接添加插件签名,并将添加插件签名的事务请求反馈至轻量级节点。
当事务请求应通过权限控制的插件为至少两个时,为了便于各插件进行权限控制处理的并行进行,提高权限控制处理效率,同时方便对事务请求的插件签名添加处理,通常各插件会向轻量级节点反馈插件签名,并通过轻量级节点将各插件基于权限控制处理反馈的插件签名,一并添加至事务请求中。
S304、将所述事务请求发送给所述关联全节点,以请求所述关联全节点通过所述插件签名的验证后,将所述事务请求向区块链网络发起上链操作。
将添加有插件签名的事务请求发送至关联全节点。相应的,关联全节点接收到事务请求后,对事务请求中的插件签名进行验证;如果事务请求通过插件签名的验证,则将事务请求向区块链网络发起上链操作。
需要说明的是,关联全节点对事务请求中的插件签名进行验证的验证操作以及将事务请求向区块链网络发起上链操作的相关内容,可参见前述实施例,在此不再赘述。
本申请实施例通过区块链的轻量级节点获取用户发起的事务请求;根据关联全节点配置的插件权限控制规则中所规定的至少一个插件,向至少一个插件发起针对事务请求的权限控制处理请求;其中,插件权限控制规则为关联全节点规定的事务请求应通过至少一个插件的权限控制;将插件基于权限控制处理请求反馈的插件签名添加至事务请求中;将事务请求发送给关联全节点,以请求关联全节点通过插件签名的验证后,将事务请求向区块链网络发起上链操作。上述技术方案通过插件对事务请求进行权限控制处理后,在事务请求中添加插件签名,从而便于轻量级节点的关联全节点基于插件签名对事务请求进行权限验证,从而实现对轻量级节点向关联全节点的数据传输权限加以控制,通过插件、权限控制处理以及插件签名相关联的方式,能够适配不同业务场景下权限控制的个性化需求,保证了区块链权限控制的通用性和灵活性。
图4是本申请实施例提供的另一种区块链的权限控制方法的流程图,由区块链的插件服务器执行,包括:
S401、获取区块链节点向应通过权限控制的至少一个插件发起的,针对事务请求的权限控制处理请求。
当用户具备业务需求时,用户可以通过承载有区块链节点的电子设备,执行事务请求发起操作,从而生成与业务需求相关联的事务请求,并将所生成的事务请求发送至区块链节点。相应的,区块链节点获取该事务请求,并针对该事务请求应通过权限控制的至少一个插件,向插件节点发起权限控制处理请求;插件节点接收针对该至少一个插件发起的针对事务请求的权限控制处理请求。
在一种可选实施方式中,可以获取用户通过全节点发起的事务请求,用于对全节点在区块链中所传输的事务请求进行权限控制,也即实现对全节点之间传输的内部流量的权限控制。
在另一可选实施方式中,还可以获取用户通过轻量级节点传输给区块链节点的事务请求,用于对轻量级节点向区块链节点所传输的事务请求进行权限控制,也即实现对轻量级节点与全节点之间传输的外部流量的权限控制。
需要说明的是,通常情况下全节点在区块链系统中的活跃度较高、自身公信力也较高、自身作恶成本也较高;而轻量级节点参与制区块链网络的频率较低、在区块链系统中的活跃度也较低、其自身公信力有限、自身作恶成本也较低。为了减少区块链系统进行数据处理的数据运算量,同时实现对区块链系统的有效监控,通常仅会对轻量级节点与全节点之间传输的外部流量,进行权限控制。也即,获取轻量级节点向应通过权限控制的至少一个插件发起的,针对事务请求的权限控制处理请求。
当对轻量级节点与全节点之间传输的外部流量的权限进行控制时,为了避免由于网络故障或高并发等因素的影响,导致轻量级节点无法与插件服务器正常通信,或轻量级节点不具备插件服务器访问权限时,为了保证权限控制方案的正常运行,还可以由轻量级节点将事务请求发送至关联全节点,由关联全节点向事务请求应通过权限控制的至少一个插件,发起权限控制处理请求;相应的,插件服务器接收该权限控制处理请求。
为了保证数据传输的规范性和安全性,在一种可选实施例中,获取区块链节点向应通过权限控制的至少一个插件发起的,针对事务请求的权限控制处理请求,可以是获取所述区块链节点的前置权限控制层,基于远程过程调用或超文本传输协议,向应通过权限控制的所述至少一个插件发起的,针对所述事务请求的所述权限控制处理请求。
S402、响应于所述权限控制处理请求,对所述事务请求进行权限控制处理。
插件服务器响应于权限控制处理请求,通过与权限控制处理请求相关联的各插件,分别对事务请求进行相应类型的权限控制处理。
示例性地,对事务请求进行权限控制处理,可以包括对事务请求中的请求内容进行处理,以确定请求内容是否存在违规请求,例如是否包括黄反言论;对事务请求进行权限控制处理,还可以包括对事务请求发起方的资格认证,例如是否有足够的费用支撑、或是否具备事务请求发起权限(例如属于白名单用户或黑名单用户)等。
需要说明的是,若权限控制处理请求针对至少两个插件发起时,为了提高权限控制处理效率,可以采用至少两个插件并行处理的方式,对事务请求进行权限控制处理。
S403、若权限控制处理通过,则向所述区块链节点反馈插件签名,以使所述区块链节点将所述插件签名添加至所述事务请求;其中,所述插件签名用于对所述事务请求进行权限验证。
若权限控制处理通过,则表明事务请求通过了权限控制,此时,各插件向区块链节点反馈插件签名,以使区块链节点将插件签名添加至事务请求中,后续通过该插件签名,对事务请求进行权限验证。若权限控制处理不通过,则表明事务请求发起方不具备事务请求发起权限,或所发起的事务请求存在违规情况,此时,未通过权限控制处理的插件不向区块链节点反馈插件签名,或向区块链节点反馈不存在相应权限的相关指示。
示例性地,插件签名可以是由插件服务器中注册插件时,基于插件标识所生成的非对称密钥中的插件私钥,以便后续通过非对称密钥中的插件公钥,进行插件签名验证。
在一种可选实施方式中,可以通过如下方式,插件服务器基于插件签名对事务请求进行权限验证:获取区块链节点发送的事务请求中的插件签名;对所述插件签名进行验证,并将验证结果反馈至所述区块链节点。
示例性地,第一区块链节点将添加有插件签名的事务请求发送至第二区块链节点,以通过第二区块链节点对进行事务请求的上链操作。此时,第二区块链节点需要通过插件签名,对第一区块链节点所发送的事务请求进行权限验证。示例性地,第二区块链节点将添加有插件签名的发送至插件服务器;相应的,插件服务器获取第二区块链节点发送的事务请求中的插件签名;对插件签名进行验证,并将验证结果反馈至第二区块链节点;第二区块链节点在插件签名验证通过后,将事务请求向区块链网络发起上链操作。其中,对插件签名进行验证的相关内容可参加前述实施例,在此不再赘述。
在一可选实施例中,第一区块链节点可以是轻量级节点,第二区块链节点可以是与轻量级节点关联的全节点。也即,获取全节点发送的所述事务请求中的插件签名;其中,所述事务请求由轻量级节点传输至所述全节点。可以理解的是,通过插件服务器对轻量级节点向全节点进行数据传输时的权限进行验证,从而实现对轻量级节点参与区块链的有效控制。
可选的,插件服务器可以是中心化的服务器;还可以是区块链系统中的插件节点,仅用于提供权限控制处理服务的专属区块链节点;还可以是存储有至少一个插件的常规区块链节点,在具备与业务需求相关的事务请求的处理,兼备权限控制处理功能。其中,区块链系统中插件服务器的数量可以为至少一个。
本申请实施例通过区块链的插件服务器获取区块链节点向应通过权限控制的至少一个插件发起的,针对事务请求的权限控制处理请求;响应于权限控制处理请求,对事务请求进行权限控制处理;若权限控制处理通过,则向区块链节点反馈插件签名,以使区块链节点将插件签名添加至事务请求;其中,插件签名用于对事务请求进行权限验证。上述技术方案通过插件服务器中的各插件对事务请求进行权限控制处理,并在权限控制处理通过后,在事务请求中添加插件签名,从而实现对区块链网络中的事务请求的传输权限加以控制,通过插件、权限控制处理以及插件签名相关联的方式,能够适配不同业务场景下权限控制的个性化需求,保证了区块链权限控制的通用性和灵活性。
图5是本申请实施例提供的另一种区块链的权限控制方法的流程图,该方法在前述各技术方案的基础上,提供了一种优选实施方式。
S501、关联全节点从插件节点中配置应通过权限控制的至少一个插件。
其中,插件节点中的各插件可以由插件开发者进行插件注册,生成插件编号;插件节点根据插件编号,自动生成插件服务请求接口,例如URL网址,并配置与每个插件服务请求接口对应的非对称密钥,其中,插件公钥发送至配置有相应插件的关联全节点,私钥由插件节点保存。
S502、轻量级节点从关联全节点获取应通过权限控制的至少一个插件。
其中,关联全节点为轻量级节点的可信节点。
S503、轻量级节点接收用户发起的事务请求。
S504、轻量级节点根据关联全节点配置的至少一个插件,向插件节点发起针对事务请求的权限控制处理请求。
其中,轻量级节点通过远程过程调用或超文本传输协议向插件节点通信。
S505、插件节点中的相应插件响应于该权限控制处理请求,并行进行权限控制处理。
其中,权限控制处理包括黄反检测、费用检测和发起者权限检测。其中,发起者权限检测包括黑名单检测或白名单检测。
S506、在权限控制处理通过后,向轻量级节点反馈插件签名。
其中,反馈插件签名时,还可以反馈权限控制处理结果,例如可以包括通过或不通过。
S507、轻量级节点将各插件签名添加至事务请求。
S508、轻量级节点将事务请求发送至关联全节点。
S509、关联全节点获取自身配置的应通过权限控制的至少一个目标插件,并验证插件签名的数量完整性。
S510、关联全节点针对各目标插件,向插件节点发送插件签名。
关联全节点通过远程过程调用或超文本传输协议向插件节点通信。
S511、插件节点中的各目标插件对相应的插件签名,进行正确性验证。
S512、插件节点将验证结果反馈至关联全节点。
S513、若验证通过,关联全节点预执行事务请求,得到预执行结果。
S514、根据事务请求、预执行结果以及本机节点签名,封装事务请求。
S515、将事务请求提交给区块链网络的其他节点,以向区块链网络发起上链操作。
图6是本申请实施例提供的一种区块链的权限控制装置的结构图,该区块链的权限控制装置600,由区块链的节点执行,包括:事务请求获取模块601、插件签名验证模块602和上链操作发起模块603。其中,
事务请求获取模块601,用于获取用户发起的事务请求;
插件签名验证模块602,用于对所述事务请求中的插件签名进行验证;其中,所述插件签名为所述事务请求经过插件的权限控制处理后由所述插件添加的;
上链操作发起模块603,用于如果所述事务请求通过插件签名的验证,则将所述事务请求向区块链网络发起上链操作。
本申请实施例通过事务请求获取模块获取用户发起的事务请求;通过插件签名验证模块对事务请求中的插件签名进行验证;其中插件签名为事务请求经过插件的权限控制处理后由插件添加的;通过上链操作发起模块如果事务请求通过插件签名的验证,则将事务请求向区块链网络发起上链操作。上述技术方案通过插件对事务请求进行权限控制处理后,在事务请求中添加插件签名,从而便于区块链的节点基于插件签名对事务请求进行权限验证,从而实现对区块链节点之间的数据传输权限加以控制,通过插件、权限控制处理以及插件签名相关联的方式,能够适配不同业务场景下权限控制的个性化需求,保证了区块链权限控制的通用性和灵活性。
进一步地,本机节点为区块链网络中的全节点,则所述事务请求获取模块601,包括:
事务请求获取单元,用于获取轻量级节点传输给本机节点的、用户发起的事务请求。
进一步地,所述插件签名验证模块602,包括:
本地验证单元,用于将所述事务请求中的插件签名,基于本机节点存储的插件公钥进行验证,其中,所述插件签名为基于插件私钥的签名;或
节点验证单元,用于将所述事务请求中的插件签名发送至插件节点,以请求所述插件节点对所述插件签名进行验证。
进一步地,所述节点验证单元,包括:
节点验证子单元,用于通过本机节点的前置权限控制层,基于远程过程调用或超文本传输协议,将所述事务请求中的插件签名发送至插件节点,以请求所述插件节点对所述插件签名进行验证。
进一步地,所述插件签名验证模块602,包括:
插件签名验证单元,用于基于本机节点配置的插件权限控制规则,对所述事务请求中所包括的插件签名的正确性和/或完整性进行验证;其中,所述插件权限控制规则用于规定所述事务请求应通过至少一个插件的权限控制。
进一步地,所述装置还包括:
权限控制处理请求发起模块,用于在获取用户发起的事务请求之后,根据本机节点配置的插件权限控制规则,向所述事务请求应通过权限控制的至少一个插件发起权限控制处理请求;其中,所述插件权限控制规则用于规定所述事务请求应通过至少一个插件的权限控制;
插件签名添加模块,用于将从所述插件反馈获取的插件签名添加至所述事务请求中。
进一步地,所述装置还包括:
插件权限控制规则获取模块,用于获取本机节点所部署的应用层软件配置的插件权限控制规则。
进一步地,如果所述事务请求通过插件签名的验证,则所述上链操作发起模块603,包括:
预执行单元,用于如果所述事务请求通过插件签名的验证,则预执行所述事务请求,以获取预执行结果;
事务请求封装单元,用于根据所述事务请求、所述预执行结果以及本机节点的签名,封装所述事务请求;
上链操作发起单元,用于将所述事务请求提交给所述区块链网络的其他节点,以向区块链网络发起上链操作。
上述区块链的权限控制装置,可执行本申请任意实施例所提供的区块链的权限控制方法,具备执行区块链的权限控制方法相应的功能模块和有益效果。
图7是本申请实施例提供的另一种区块链的权限控制装置结构图,该区块链的权限控制装置700,由区块链的轻量级节点执行,包括:事务请求获取模块701、权限控制处理请求发起模块702、插件签名添加模块703和事务请求发送模块704。其中,
事务请求获取模块701,用于获取用户发起的事务请求;
权限控制处理请求发起模块702,用于根据关联全节点配置的插件权限控制规则中所规定的至少一个插件,向所述至少一个插件发起针对所述事务请求的权限控制处理请求;其中,所述插件权限控制规则为所述关联全节点规定的所述事务请求应通过至少一个插件的权限控制;
插件签名添加模块703,用于将所述插件基于所述权限控制处理请求反馈的插件签名添加至所述事务请求中;
事务请求发送模块704,用于将所述事务请求发送给所述关联全节点,以请求所述关联全节点通过所述插件签名的验证后,将所述事务请求向区块链网络发起上链操作。
本申请实施例通过事务请求获取模块获取用户发起的事务请求;通过权限控制处理请求发起模块根据关联全节点配置的插件权限控制规则中所规定的至少一个插件,向至少一个插件发起针对事务请求的权限控制处理请求;其中,插件权限控制规则为关联全节点规定的事务请求应通过至少一个插件的权限控制;通过插件签名添加模块将插件基于权限控制处理请求反馈的插件签名添加至事务请求中;通过事务请求发送模块将事务请求发送给关联全节点,以请求关联全节点通过插件签名的验证后,将事务请求向区块链网络发起上链操作。上述技术方案通过插件对事务请求进行权限控制处理后,在事务请求中添加插件签名,从而便于轻量级节点的关联全节点基于插件签名对事务请求进行权限验证,从而实现对轻量级节点向关联全节点的数据传输权限加以控制,通过插件、权限控制处理以及插件签名相关联的方式,能够适配不同业务场景下权限控制的个性化需求,保证了区块链权限控制的通用性和灵活性。
进一步地,所述装置还包括:
插件权限控制规则获取模块,用于从所述关联全节点获取所述插件权限控制规则。
进一步地,所述权限控制处理请求发起模块702,包括:
权限控制处理请求发起单元,用于通过本机节点的前置权限控制层,基于远程过程调用或超文本传输协议,向所述至少一个插件发起针对所述事务请求的权限控制处理请求。
上述区块链的权限控制装置,可执行本申请任意实施例所提供的区块链的权限控制方法,具备执行区块链的权限控制方法相应的功能模块和有益效果。
图8是本申请实施例提供的另一种区块链的权限控制装置的结构图,该区块链的权限控制装置800,由区块链的插件节点执行,包括:权限控制处理请求发起模块801、权限控制处理模块802和插件签名反馈模块803。
其中,
权限控制处理请求发起模块801,用于获取区块链节点向应通过权限控制的至少一个插件发起的,针对事务请求的权限控制处理请求;
权限控制处理模块802,用于响应于所述权限控制处理请求,对所述事务请求进行权限控制处理;
插件签名反馈模块803,用于若通过权限控制处理,则向所述区块链节点反馈插件签名,以使所述区块链节点将所述插件签名添加至所述事务请求;其中,所述插件签名用于对所述事务请求进行权限验证。
本申请实施例通过权限控制处理请求发起模块获取区块链节点向应通过权限控制的至少一个插件发起的,针对事务请求的权限控制处理请求;通过权限控制处理模块响应于权限控制处理请求,对事务请求进行权限控制处理;通过插件签名反馈模块若权限控制处理通过,则向区块链节点反馈插件签名,以使区块链节点将插件签名添加至事务请求;其中,插件签名用于对事务请求进行权限验证。上述技术方案通过插件服务器中的各插件对事务请求进行权限控制处理,并在权限控制处理通过后,在事务请求中添加插件签名,从而实现对区块链网络中的事务请求的传输权限加以控制,通过插件、权限控制处理以及插件签名相关联的方式,能够适配不同业务场景下权限控制的个性化需求,保证了区块链权限控制的通用性和灵活性。
进一步地,所述权限控制处理请求发起模块801,包括:
权限控制处理请求发起单元,用于获取所述区块链节点的前置权限控制层,基于远程过程调用或超文本传输协议,向应通过权限控制的所述至少一个插件发起的,针对所述事务请求的所述权限控制处理请求。
进一步地,该装置,还包括:
插件签名获取模块,用于获取区块链节点发送的事务请求中的插件签名;
插件签名验证模块,用于对所述插件签名进行验证,并将验证结果反馈至所述区块链节点。
进一步地,所述插件签名获取模块,包括:
插件签名获取单元,用于获取全节点发送的所述事务请求中的插件签名;其中,所述事务请求由轻量级节点传输至所述全节点。
上述区块链的权限控制装置,可执行本申请任意实施例所提供的区块链的权限控制方法,具备执行区块链的权限控制方法相应的功能模块和有益效果。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图9所示,是实现本申请实施例的区块链的权限控制方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图9所示,该电子设备包括:一个或多个处理器901、存储器902,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器901为例。
存储器902即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的区块链的权限控制方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的区块链的权限控制方法。
存储器902作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的区块链的权限控制方法对应的程序指令/模块(例如,附图6所示的事务请求获取模块601、插件签名验证模块602和上链操作发起模块603;或者,附图7所示的事务请求获取模块701、权限控制处理请求发起模块702、插件签名添加模块703和事务请求发送模块704;或者,附图8所示的权限控制处理请求发起模块801、权限控制处理模块802和插件签名反馈模块803)。处理器901通过运行存储在存储器902中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的区块链的权限控制方法。
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据区块链的权限控制电子设备的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至实现区块链的权限控制方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现区块链的权限控制方法的电子设备还可以包括:输入装置903和输出装置904。处理器901、存储器902、输入装置903和输出装置904可以通过总线或者其他方式连接,图9中以通过总线连接为例。
输入装置903可接收输入的数字或字符信息,以及产生与实现区块链的权限控制方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置904可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,通过插件对事务请求进行权限控制处理后,在事务请求中添加插件签名,从而便于区块链的节点基于插件签名对事务请求进行权限验证,从而实现对区块链节点之间的数据传输权限加以控制,通过插件、权限控制处理以及插件签名相关联的方式,能够适配不同业务场景下权限控制的个性化需求,保证了区块链权限控制的通用性和灵活性。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (32)
1.一种区块链的权限控制方法,由区块链的节点执行,所述方法包括:
获取用户发起的事务请求;
对所述事务请求中的插件签名进行验证;其中,所述插件签名为所述事务请求经过插件的权限控制处理后由所述插件添加的;
如果所述事务请求通过插件签名的验证,则将所述事务请求向区块链网络发起上链操作。
2.根据权利要求1所述的方法,其中,本机节点为区块链网络中的全节点,则所述获取用户发起的事务请求包括:
获取轻量级节点传输给本机节点的、用户发起的事务请求。
3.根据权利要求1或2所述的方法,其中,对所述事务请求中的插件签名进行验证包括:
将所述事务请求中的插件签名,基于本机节点存储的插件公钥进行验证,其中,所述插件签名为基于插件私钥的签名;或
将所述事务请求中的插件签名发送至插件节点,以请求所述插件节点对所述插件签名进行验证。
4.根据权利要求3所述的方法,其中,将所述事务请求中的插件签名发送至插件节点,以请求所述插件节点对所述插件签名进行验证包括:
通过本机节点的前置权限控制层,基于远程过程调用或超文本传输协议,将所述事务请求中的插件签名发送至插件节点,以请求所述插件节点对所述插件签名进行验证。
5.根据权利要求1所述的方法,其中,对所述事务请求中的插件签名进行验证包括:
基于本机节点配置的插件权限控制规则,对所述事务请求中所包括的插件签名的正确性和/或完整性进行验证;其中,所述插件权限控制规则用于规定所述事务请求应通过至少一个插件的权限控制。
6.根据权利要求1所述的方法,其中,获取用户发起的事务请求之后,还包括:
根据本机节点配置的插件权限控制规则,向所述事务请求应通过权限控制的至少一个插件发起权限控制处理请求;其中,所述插件权限控制规则用于规定所述事务请求应通过至少一个插件的权限控制;
将从所述插件反馈获取的插件签名添加至所述事务请求中。
7.根据权利要求5或6所述的方法,其中,还包括:
获取本机节点所部署的应用层软件配置的插件权限控制规则。
8.根据权利要求1或2所述的方法,其中,如果所述事务请求通过插件签名的验证,则将所述事务请求向区块链网络发起上链操作包括:
如果所述事务请求通过插件签名的验证,则预执行所述事务请求,以获取预执行结果;
根据所述事务请求、所述预执行结果以及本机节点的签名,封装所述事务请求;
将所述事务请求提交给所述区块链网络的其他节点,以向区块链网络发起上链操作。
9.一种区块链的权限控制方法,由区块链的轻量级节点执行,所述方法包括:
获取用户发起的事务请求;
根据关联全节点配置的插件权限控制规则中所规定的至少一个插件,向所述至少一个插件发起针对所述事务请求的权限控制处理请求;其中,所述插件权限控制规则为所述关联全节点规定的所述事务请求应通过至少一个插件的权限控制;
将所述插件基于所述权限控制处理请求反馈的插件签名添加至所述事务请求中;
将所述事务请求发送给所述关联全节点,以请求所述关联全节点通过所述插件签名的验证后,将所述事务请求向区块链网络发起上链操作。
10.根据权利要求9所述的方法,其中,还包括:
从所述关联全节点获取所述插件权限控制规则。
11.根据权利要求9所述的方法,其中,向所述至少一个插件发起针对所述事务请求的权限控制处理请求包括:
通过本机节点的前置权限控制层,基于远程过程调用或超文本传输协议,向所述至少一个插件发起针对所述事务请求的权限控制处理请求。
12.一种区块链的权限控制方法,由区块链的插件服务器执行,所述方法包括:
获取区块链节点向应通过权限控制的至少一个插件发起的,针对事务请求的权限控制处理请求;
响应于所述权限控制处理请求,对所述事务请求进行权限控制处理;
若权限控制处理通过,则向所述区块链节点反馈插件签名,以使所述区块链节点将所述插件签名添加至所述事务请求;其中,所述插件签名用于对所述事务请求进行权限验证。
13.根据权利要求12所述的方法,其中,获取区块链节点向应通过权限控制的至少一个插件发起的,针对事务请求的权限控制处理请求,包括:
获取所述区块链节点的前置权限控制层,基于远程过程调用或超文本传输协议,向应通过权限控制的所述至少一个插件发起的,针对所述事务请求的所述权限控制处理请求。
14.根据权利要求12或13所述的方法,还包括:
获取区块链节点发送的事务请求中的插件签名;
对所述插件签名进行验证,并将验证结果反馈至所述区块链节点。
15.根据权利要求14所述的方法,其中,获取区块链节点发送的所述事务请求中的插件签名,包括:
获取全节点发送的所述事务请求中的插件签名;其中,所述事务请求由轻量级节点传输至所述全节点。
16.一种区块链的权限控制装置,由区块链的节点执行,所述装置包括:
事务请求获取模块,用于获取用户发起的事务请求;
插件签名验证模块,用于对所述事务请求中的插件签名进行验证;其中,所述插件签名为所述事务请求经过插件的权限控制处理后由所述插件添加的;
上链操作发起模块,用于如果所述事务请求通过插件签名的验证,则将所述事务请求向区块链网络发起上链操作。
17.根据权利要求16所述的装置,其中,本机节点为区块链网络中的全节点,则所述事务请求获取模块,包括:
事务请求获取单元,用于获取轻量级节点传输给本机节点的、用户发起的事务请求。
18.根据权利要求16或17所述的装置,其中,所述插件签名验证模块,包括:
本地验证单元,用于将所述事务请求中的插件签名,基于本机节点存储的插件公钥进行验证,其中,所述插件签名为基于插件私钥的签名;或
节点验证单元,用于将所述事务请求中的插件签名发送至插件节点,以请求所述插件节点对所述插件签名进行验证。
19.根据权利要求18所述的装置,其中,所述节点验证单元,包括:
节点验证子单元,用于通过本机节点的前置权限控制层,基于远程过程调用或超文本传输协议,将所述事务请求中的插件签名发送至插件节点,以请求所述插件节点对所述插件签名进行验证。
20.根据权利要求16所述的装置,其中,所述插件签名验证模块,包括:
插件签名验证单元,用于基于本机节点配置的插件权限控制规则,对所述事务请求中所包括的插件签名的正确性和/或完整性进行验证;其中,所述插件权限控制规则用于规定所述事务请求应通过至少一个插件的权限控制。
21.根据权利要求16所述的装置,其中,所述装置还包括:
权限控制处理请求发起模块,用于在获取用户发起的事务请求之后,根据本机节点配置的插件权限控制规则,向所述事务请求应通过权限控制的至少一个插件发起权限控制处理请求;其中,所述插件权限控制规则用于规定所述事务请求应通过至少一个插件的权限控制;
插件签名添加模块,用于将从所述插件反馈获取的插件签名添加至所述事务请求中。
22.根据权利要求20或21所述的装置,其中,还包括:
插件权限控制规则获取模块,用于获取本机节点所部署的应用层软件配置的插件权限控制规则。
23.根据权利要求16或17所述的装置,其中,如果所述事务请求通过插件签名的验证,则所述上链操作发起模块,包括:
预执行单元,用于如果所述事务请求通过插件签名的验证,则预执行所述事务请求,以获取预执行结果;
事务请求封装单元,用于根据所述事务请求、所述预执行结果以及本机节点的签名,封装所述事务请求;
上链操作发起单元,用于将所述事务请求提交给所述区块链网络的其他节点,以向区块链网络发起上链操作。
24.一种区块链的权限控制装置,由区块链的轻量级节点执行,所述装置包括:
事务请求获取模块,用于获取用户发起的事务请求;
权限控制处理请求发起模块,用于根据关联全节点配置的插件权限控制规则中所规定的至少一个插件,向所述至少一个插件发起针对所述事务请求的权限控制处理请求;其中,所述插件权限控制规则为所述关联全节点规定的所述事务请求应通过至少一个插件的权限控制;
插件签名添加模块,用于将所述插件基于所述权限控制处理请求反馈的插件签名添加至所述事务请求中;
事务请求发送模块,用于将所述事务请求发送给所述关联全节点,以请求所述关联全节点通过所述插件签名的验证后,将所述事务请求向区块链网络发起上链操作。
25.根据权利要求24所述的装置,其中,还包括:
插件权限控制规则获取模块,用于从所述关联全节点获取所述插件权限控制规则。
26.根据权利要求24所述的装置,其中,所述权限控制处理请求发起模块,包括:
权限控制处理请求发起单元,用于通过本机节点的前置权限控制层,基于远程过程调用或超文本传输协议,向所述至少一个插件发起针对所述事务请求的权限控制处理请求。
27.一种区块链的权限控制装置,由区块链的插件服务器执行,所述装置包括:
权限控制处理请求发起模块,用于获取区块链节点向应通过权限控制的至少一个插件发起的,针对事务请求的权限控制处理请求;
权限控制处理模块,用于响应于所述权限控制处理请求,对所述事务请求进行权限控制处理;
插件签名反馈模块,用于若权限控制处理通过,则向所述区块链节点反馈插件签名,以使所述区块链节点将所述插件签名添加至所述事务请求;其中,所述插件签名用于对所述事务请求进行权限验证。
28.根据权利要求27所述的装置,其中,所述权限控制处理请求发起模块,包括:
权限控制处理请求发起单元,用于获取所述区块链节点的前置权限控制层,基于远程过程调用或超文本传输协议,向应通过权限控制的所述至少一个插件发起的,针对所述事务请求的所述权限控制处理请求。
29.根据权利要求27或28所述的装置,还包括:
插件签名获取模块,用于获取区块链节点发送的事务请求中的插件签名;
插件签名验证模块,用于对所述插件签名进行验证,并将验证结果反馈至所述区块链节点。
30.根据权利要求29所述的装置,其中,所述插件签名获取模块,包括:
插件签名获取单元,用于获取全节点发送的所述事务请求中的插件签名;其中,所述事务请求由轻量级节点传输至所述全节点。
31.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-15中任一项所述的一种区块链的权限控制方法。
32.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1-15中任一项所述的一种区块链的权限控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010473350.5A CN111682945B (zh) | 2020-05-29 | 2020-05-29 | 一种区块链的权限控制方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010473350.5A CN111682945B (zh) | 2020-05-29 | 2020-05-29 | 一种区块链的权限控制方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111682945A CN111682945A (zh) | 2020-09-18 |
CN111682945B true CN111682945B (zh) | 2023-04-18 |
Family
ID=72453662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010473350.5A Active CN111682945B (zh) | 2020-05-29 | 2020-05-29 | 一种区块链的权限控制方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111682945B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112311556B (zh) * | 2020-11-05 | 2024-05-24 | 北京领主科技有限公司 | 设备认证的方法、设备控制的方法、节点、设备、区块链 |
CN113626850B (zh) * | 2021-10-13 | 2022-03-11 | 北京百度网讯科技有限公司 | 基于联盟链的请求处理方法、装置、设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107204985A (zh) * | 2017-06-22 | 2017-09-26 | 北京洋浦伟业科技发展有限公司 | 基于加密密钥的权限认证方法、装置及系统 |
CN108449364A (zh) * | 2018-05-08 | 2018-08-24 | 北京明朝万达科技股份有限公司 | 一种分布式身份认证方法及云认证节点 |
CN110069295A (zh) * | 2019-05-06 | 2019-07-30 | 百度在线网络技术(北京)有限公司 | 区块链处理方法、装置、设备和介质 |
CN110519281A (zh) * | 2019-08-30 | 2019-11-29 | 北京百度网讯科技有限公司 | 一种区块链网络的运行实现方法、装置、设备和介质 |
CN110544042A (zh) * | 2019-09-06 | 2019-12-06 | 腾讯科技(深圳)有限公司 | 基于区块链网络的图书管理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017173099A1 (en) * | 2016-03-30 | 2017-10-05 | Ping Identity Corporation | Methods and apparatus for assessing authentication risk and implementing single sign on (sso) using a distributed consensus database |
-
2020
- 2020-05-29 CN CN202010473350.5A patent/CN111682945B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107204985A (zh) * | 2017-06-22 | 2017-09-26 | 北京洋浦伟业科技发展有限公司 | 基于加密密钥的权限认证方法、装置及系统 |
CN108449364A (zh) * | 2018-05-08 | 2018-08-24 | 北京明朝万达科技股份有限公司 | 一种分布式身份认证方法及云认证节点 |
CN110069295A (zh) * | 2019-05-06 | 2019-07-30 | 百度在线网络技术(北京)有限公司 | 区块链处理方法、装置、设备和介质 |
CN110519281A (zh) * | 2019-08-30 | 2019-11-29 | 北京百度网讯科技有限公司 | 一种区块链网络的运行实现方法、装置、设备和介质 |
CN110544042A (zh) * | 2019-09-06 | 2019-12-06 | 腾讯科技(深圳)有限公司 | 基于区块链网络的图书管理方法及装置 |
Non-Patent Citations (1)
Title |
---|
张舒 ; 杨宇光 ; .区块链技术基础及应用.信息安全研究.2018,(06),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111682945A (zh) | 2020-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111930852B (zh) | 基于区块链的数据处理方法、装置、设备以及存储介质 | |
CN111683071B (zh) | 区块链的隐私数据处理方法、装置、设备以及存储介质 | |
CN111143890B (zh) | 一种基于区块链的计算处理方法、装置、设备和介质 | |
US11750396B2 (en) | Private data processing method, device and medium | |
US20200127995A1 (en) | Automatic login method and device between multiple websites | |
CN111741026B (zh) | 一种跨链事务请求处理方法、装置、设备以及存储介质 | |
CN111769958B (zh) | 区块链跨链处理方法、装置、设备和存储介质 | |
CN111737366B (zh) | 区块链的隐私数据处理方法、装置、设备以及存储介质 | |
CN110503433B (zh) | 一种区块链中背书的实现方法、装置、设备和介质 | |
CN110365684B (zh) | 应用集群的访问控制方法、装置和电子设备 | |
CN111682945B (zh) | 一种区块链的权限控制方法、装置、设备和介质 | |
CN110519281B (zh) | 一种区块链网络的运行实现方法、装置、设备和介质 | |
JP7317084B2 (ja) | トラステッド環境の遠隔検証方法、装置、機器、システムおよび媒体 | |
CN112511505A (zh) | 一种鉴权系统、方法、装置、设备和介质 | |
CN110765137A (zh) | 电子证照处理方法、装置、设备、平台和介质 | |
CN110866740A (zh) | 一种区块链事务请求的处理方法、装置、电子设备和介质 | |
CN111556153A (zh) | 由第一服务器执行的信息处理方法、装置、设备以及介质 | |
CN110610101A (zh) | 一种数据存证方法、装置、设备及存储介质 | |
CN101902329A (zh) | 用于单点登录的方法和装置 | |
CN110795763A (zh) | 电子证照处理方法、查询方法、装置、设备、平台和介质 | |
CN111565204A (zh) | 区块链运行方法、装置、设备及存储介质 | |
CN112565225B (zh) | 用于数据发送的方法、装置、电子设备及可读存储介质 | |
CN110968856B (zh) | 登录方法、装置、电子设备和存储介质 | |
CN111937013B (zh) | 电子设备管理 | |
CN116011590A (zh) | 联邦学习方法、装置和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |