CN111209593A - 基于区块链的分布式锁处理方法及相关装置和电子设备 - Google Patents
基于区块链的分布式锁处理方法及相关装置和电子设备 Download PDFInfo
- Publication number
- CN111209593A CN111209593A CN202010025593.2A CN202010025593A CN111209593A CN 111209593 A CN111209593 A CN 111209593A CN 202010025593 A CN202010025593 A CN 202010025593A CN 111209593 A CN111209593 A CN 111209593A
- Authority
- CN
- China
- Prior art keywords
- state
- preset signal
- locking
- signal pointer
- authority
- 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.)
- Pending
Links
Images
Classifications
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- 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/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Automation & Control Theory (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本说明书一个或多个实施例公开了一种基于区块链的分布式锁处理方法、资源访问方法及相关装置和电子设备,该方法包括:目标客户端基于区块链网络中的预设信号指针判断自身是否具有上锁权限;如果具有上锁权限,则将预设信号指针的状态修改为加锁状态;其中,在加锁状态期间,仅目标客户端具有实施目标操作的权限;否则,等待并重新获取上锁权限。基于区块链网络中预设信号指针实现的锁,可达到对目标操作的可信、去中心化的锁处理,利用区块链网络的分布式存储、容灾特性,可建立牢靠安全的分布式锁,有效解决分布式的异构系统间操作互斥、协作问题,提升分布式协作操作的容错可靠性。
Description
技术领域
本文件涉及区块链技术领域,尤其涉及一种基于区块链的分布式锁处理方法、资源访问方法及相关装置和电子设备。
背景技术
目前,较为普遍的分布式锁解决方案有三种:基于数据库实现分布式锁;基于缓存服务实现分布式锁;基于分布式应用程序协调服务(如Zookeeper)实现分布式锁。
然而,以上分布式锁的实现、性能以及可靠性均存在不同程度的差异,因此,亟需找到一种实现简单、性能良好以及可靠性高的分布式锁方案。
发明内容
本说明书一个或多个实施例的目的是提供一种基于区块链的分布式锁处理方法、资源访问方法及相关装置和电子设备,以基于区块链网络实现性能良好且可靠性高、互斥协作的分布式锁处理方案。
为解决上述技术问题,本说明书一个或多个实施例是这样实现的:
第一方面,提出了一种基于区块链的分布式锁处理方法,包括:
目标客户端基于区块链网络中的预设信号指针判断自身是否具有上锁权限;
如果具有上锁权限,则将所述预设信号指针的状态修改为加锁状态;其中,在所述加锁状态期间,仅所述目标客户端具有实施目标操作的权限;
否则,等待并重新获取上锁权限。
第二方面,提出了一种基于区块链的资源访问方法,包括:
目标客户端基于区块链网络中的预设信号指针判断自身是否具有上锁权限;
如果具有上锁权限,则将所述预设信号指针的状态修改为加锁状态,并访问目标资源;
否则,等待并重新获取上锁权限。
第三方面,提出了一种基于区块链的分布式锁处理装置,包括:
判断模块,用于基于区块链网络中的预设信号指针判断自身是否具有上锁权限;
处理模块,用于如果具有上锁权限,则将所述预设信号指针的状态修改为加锁状态;其中,在所述加锁状态期间,仅所述目标客户端具有实施目标操作的权限;以及,
用于否则,等待并重新获取上锁权限。
第四方面,提出了一种基于区块链的资源访问装置,包括:
判断模块,用于基于区块链网络中的预设信号指针判断自身是否具有上锁权限;
访问模块,用于如果具有上锁权限,则将所述预设信号指针的状态修改为加锁状态,并访问目标资源;以及,
用于如果不具有上锁权限,等待并重新获取上锁权限。
第五方面,提出了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如第一方面所述的方法或第二方面所述的方法。
第六方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行如第一方面所述的方法或第二方面所述的方法。
由以上本说明书一个或多个实施例提供的技术方案可见,基于区块链网络中预设信号指针实现的锁,可达到对目标操作的可信、去中心化的锁处理,而且,利用区块链网络的分布式存储、容灾的特性,可以建立较为牢靠安全的分布式锁,有效解决分布式的异构系统间操作互斥、协作问题,提升分布式协作操作的容错可靠性。同时,还可以利用区块链记录所有更改历史的特性,来实现重入,以便重新获取锁。
附图说明
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对一个或多个实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书的一个实施例提供的基于区块链的分布式锁处理方法的步骤示意图。
图2是本说明书的一个实施例提供的基于区块链的资源访问方法的步骤示意图。
图3是本说明书的一个实施例提供的基于区块链的资源访问实例示意图。
图4是本说明书的一个实施例提供的基于区块链的分布式锁处理装置的结构示意图。
图5是本说明书的一个实施例提供的基于区块链的资源访问装置的结构示意图。
图6a和图6b分别是本说明书的一个实施例提供的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的一个或多个实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
实施例一
参照图1所示,为本说明书实施例提供的一种基于区块链的分布式锁处理方法的步骤示意图,应理解,该方法的执行主体可以是客户端,且该客户端可通过终端设备接入区块链网络中,并作为区块链网络中的节点设备进行分布式锁的处理应用。该方法可以包括以下步骤:
步骤102:目标客户端基于区块链网络中的预设信号指针判断自身是否具有上锁权限。
如果具有上锁权限,则执行步骤104,否则,等待一段时间后,重新跳转至步骤102。
应理解,所述目标客户端可以是任意能够实施目标操作的客户端,但是,这里的能够实施目标操作并不一定具有实施目标操作的权限。因此,在进行实施之前,需要通过本说明书的分布式锁处理方案来判定。具体通过区块链网络中预设信号指针来判断目标客户端自身是否具有上锁权限。
在本说明书实施例中,所述预设信号指针至少包括:智能合约中用于表征客户端是否具有实施目标操作权限的变量,或者,交易信息中用于表征客户端是否具有实施目标操作权限的状态信息,所述状态信息至少包括账号余额。换言之,可以针对某个目标操作,在区块链网络中预先设定某些信号指针,根据信号指针的不同指向所定义的含义来判断目标客户端是否具有上锁权限,即具有实施目标操作的权限。由此可知,预设信号指针可以通过区块链网络中的多种信息实现,灵活多变。
进一步,所述智能合约中所述变量的值是当前实施加锁的客户端设置的超时时长;或者,所述智能合约中还携带有当前实施加锁的客户端设置的超时时长;或者,所述交易信息中还携带有当前实施加锁的客户端设置的超时时长。从而,可以避免宕机导致的锁死问题,另外,实现简单。
换言之,所述智能合约中所述变量的取值有两层含义,其一,表示是否已有实施加锁以获取实施目标操作的权限,其二,表示当前实施加锁的客户端设置的超时时长。或者,所述智能合约中所述变量的取值仅表示是否已有客户端实施加锁以获取实施目标操作的权限,同时,还在智能合约中额外携带超时时长。
例如,若变量取值为0,表示当前锁状态为解锁状态,目标客户端具有上锁权限;若变量取值为2,表示当前锁状态为加锁状态,且在加锁开始持续2s后超时,即锁超期,处于锁无效状态,目标客户端具有上锁权限,若变量取值为3,表示当前锁状态为加锁状态,且在加锁开始持续3s后超时,即锁超期,处于锁无效状态。
此外,还可以使用区块链网络中的账户余额是否发生变化来表示是否已有客户端实施加锁以获取实施目标操作的权限,同时,以账户余额为零作为超时标记,即当账户余额为零时确定为超时,锁超期,处于锁无效状态。
应理解,本说明书实施例所涉及的取值仅作为举例说明,并不限定本说明书的实施范围。
具体实现时,步骤102中目标客户端在基于区块链网络中的预设信号指针判断自身是否具有上锁权限时,具体执行为:
第一步,获取所述区块链网络中的预设信号指针的状态。
如果所述预设信号指针的状态为加锁状态,则执行第二步;如果所述预设信号指针的状态为解锁状态或锁超期,则执行第三步。
第二步,确定自身不具有上锁权限。
第三步,确定自身具有上锁权限。
一种可实现的方案,基于上述第一步-第三步的操作,当所述预设信号指针为智能合约中用于表征客户端是否具有实施目标操作权限的变量时,可进一步执行以下操作来确定目标客户端是否具有上锁权限:
如果所述变量为特定值且该特定值的设置时长未达超时时长,则所述预设信号指针的状态为加锁状态,确定自身不具有上锁权限;
如果所述变量为非特定值,则所述预设信号指针的状态为解锁状态,确定自身具有上锁权限;
如果所述变量为特定值且该特定值的设置时长已达超时时长,则所述预设信号指针的状态为锁超期,确定自身具有上锁权限。
从而,通过区块链智能合约的变量实现的锁,可达到对目标操作的可信、去中心化的锁处理,而且,利用区块链网络的分布式存储、容灾的特性,可以建立较为牢靠安全的分布式锁,有效解决分布式的异构系统间操作互斥、协作问题,提升分布式协作操作的容错可靠性。
另一种可实现的方案,基于上述第一步-第三步的操作,当所述预设信号指针为交易信息中用于表征客户端是否具有实施目标操作权限的账号余额时,可进一步执行以下操作来确定目标客户端是否具有上锁权限:
如果目标客户端对应的账号余额发生变化且变化后持续时长未达超时时长,则所述预设信号指针的状态为加锁状态,确定自身不具有上锁权限;
如果目标客户端对应的账号余额为零,则所述预设信号指针的状态为解锁状态,确定自身具有上锁权限;
如果目标客户端对应的账户余额发生变化且变化后持续时长已达超时时长,则所述预设信号指针的状态为锁超期,确定自身具有上锁权限。
从而,通过区块链交易信息的账户余额实现的锁,可达到对目标操作的可信、去中心化的锁处理,而且,利用区块链网络的分布式存储、容灾的特性,可以建立较为牢靠安全的分布式锁,有效解决分布式的异构系统间操作互斥、协作问题,提升分布式协作操作的容错可靠性。同时,还可以利用区块链记录所有更改历史的特性,来实现重入,以便重新获取锁。
步骤104:将所述预设信号指针的状态修改为加锁状态;其中,在所述加锁状态期间,仅所述目标客户端具有实施目标操作的权限。
在本说明书实施例中,目标客户端具有上锁权限,即可以将区块链网络中预设信号指针的状态修改为加锁状态,例如,作为加锁方的目标客户端在智能合约的变量中写入数值,以对目标操作进行加锁处理。在加锁期间,仅目标客户端具有实施目标操作的权限,其它客户端无法实施目标操作。
具体实现时,步骤104中目标客户端将所述预设信号指针的状态修改为加锁状态,具体可以执行为:
所述目标客户端将所述变量的取值修改为特定值,其中,所述特定值为所述目标客户端具有实施目标操作权限的所述超时时长;或者,
所述目标客户端将所述变量的取值修改为特定值,并在智能合约中添加所述目标客户端具有实施目标操作权限的所述超时时长。
应理解,在本说明书实施例中,所述特定值可以是所述变量可取的任意数值,包括空值,即零。所述非特定值可以是所述特定值以外的所有取值,也可以包括空值(当特定值不为空值时),即零。
基于上述任一实施例,所述目标客户端等待并重新获取上锁权限,具体实现为:
判断所述区块链网络中预设信号指针的加锁状态是否超期或修改;如果是,则确认所述预设信号指针的加锁状态无效或所述预设信号指针的状态为解锁状态,重新判断自身是否具有上锁权限;否则,继续等待。从而,可以循环尝试获取上锁权限。
进一步,在所述目标客户端实施目标操作之后,所述方法还包括:
所述目标客户端将所述预设信号指针的状态修改为解锁状态;其中,在所述解锁状态期间,所有客户端均具有获取上锁的权限。从而,通过解锁来释放获取实施目标操作的限。
其中,所述目标客户端实施目标操作的权限,包括:所述目标客户端对目标资源进行访问。换言之,所述实施目标操作可以是访问目标资源。
应理解,在本说明书实施例中,所述目标资源可以是多个客户端可以共享的资源。在实际的应用场景中,共享资源可以是秒杀活动中的商品库存,或者,全局递增ID资源,或者,账号余额,订单状态等。本说明书所涉及的区块链分布式锁可以应用在访问处理上述共享资源的场景中。
通过上述技术方案,基于区块链网络中预设信号指针实现的锁,可达到对目标操作的可信、去中心化的锁处理,而且,利用区块链网络的分布式存储、容灾的特性,可以建立较为牢靠安全的分布式锁,有效解决分布式的异构系统间操作互斥、协作问题,提升分布式协作操作的容错可靠性。同时,还可以利用区块链记录所有更改历史的特性,来实现重入,以便重新获取锁。
参照图2所示,本说明书实施例提供一种基于区块链的资源访问方法的步骤示意图,该方法可以包括以下步骤:
步骤202:目标客户端基于区块链网络中的预设信号指针判断自身是否具有上锁权限。
如果具有上锁权限,则执行步骤204,否则,等待并跳转至步骤202。
步骤204:将所述预设信号指针的状态修改为加锁状态,并访问目标资源。
应理解,实施例二中的具体实现均可参照实施例一中的方案,在此不作赘述。
通过上述技术方案,基于区块链网络中预设信号指针实现的锁,可达到对目标操作的可信、去中心化的锁处理,而且,利用区块链网络的分布式存储、容灾的特性,可以建立较为牢靠安全的分布式锁,有效解决分布式的异构系统间操作互斥、协作问题,提升分布式协作操作的容错可靠性。
参照图3所示,为本说明书实施例提供的访问资源的实例。图3中示出了两个客户端,分别为目标客户端1和目标客户端2。假设,两个目标客户端共享资源A,相应地,在实现分布式锁处理之前,在区块链网络部署的智能合约中设置有对应所述共享资源A的变量X,定义当X=0时,为解锁状态,任意客户端可以尝试获取上锁权限;当X=3时,为加锁状态,只有加锁方可以访问共享资源A。
在初始状态下,区块链网络中变量X=0;此时,目标客户端1先获取上锁权限,并将变量X的取值修改为3,即共享资源A处于加锁状态,只有目标客户端1可以访问。目标客户端2获取上锁权限失败,因为此时变量X=3,无法访问共享资源A。待目标客户端1访问共享资源A结束后,删除锁,即解锁后(将变量X的取值修改回0),目标客户端2才可以重新获取上锁权限。由此,通过区块链分布式锁,实现对共享资源的访问互斥性,提升分布式协作操作的容错可靠性。
实施例二
参照图4所示,为本说明书实施例提供的基于区块链的分布式锁处理装置,该装置400可以包括:
判断模块402,用于基于区块链网络中的预设信号指针判断自身是否具有上锁权限;
处理模块404,用于如果具有上锁权限,则将所述预设信号指针的状态修改为加锁状态;其中,在所述加锁状态期间,仅所述目标客户端具有实施目标操作的权限;以及,
用于否则,等待并重新获取上锁权限。
可选地,作为一个实施例,所述预设信号指针至少包括:智能合约中用于表征客户端是否具有实施目标操作权限的变量,或者,交易信息中用于表征客户端是否具有实施目标操作权限的状态信息,所述状态信息至少包括账号余额。
在本说明书实施例的一种具体实现方式中,所述智能合约中所述变量的值是当前实施加锁的客户端设置的超时时长;或者,所述智能合约中还携带有当前实施加锁的客户端设置的超时时长;或者,所述交易信息中还携带有当前实施加锁的客户端设置的超时时长。
在本说明书实施例的再一种具体实现方式中,所述判断模块402在基于区块链网络中的预设信号指针判断自身是否具有上锁权限时,具体用于:
目标客户端获取所述区块链网络中的预设信号指针的状态;
如果所述预设信号指针的状态为加锁状态,则确定自身不具有上锁权限;
如果所述预设信号指针的状态为解锁状态或锁超期,则确定自身具有上锁权限。
在本说明书实施例的再一种具体实现方式中,当所述预设信号指针为智能合约中用于表征客户端是否具有实施目标操作权限的变量时,
所述判断模块402,具体用于:
如果所述变量为特定值且该特定值的设置时长未达超时时长,则所述预设信号指针的状态为加锁状态,确定自身不具有上锁权限;
如果所述变量为非特定值,则所述预设信号指针的状态为解锁状态,确定自身具有上锁权限;或者,如果所述变量为特定值且该特定值的设置时长已达超时时长,则所述预设信号指针的状态为锁超期,确定自身具有上锁权限。
在本说明书实施例的再一种具体实现方式中,所述处理模块402在将所述预设信号指针的状态修改为加锁状态时,具体用于:
将所述变量的取值修改为特定值,其中,所述特定值为所述目标客户端具有实施目标操作权限的所述超时时长;或者,
将所述变量的取值修改为特定值,并在智能合约中添加所述目标客户端具有实施目标操作权限的所述超时时长。
在本说明书实施例的再一种具体实现方式中,当所述预设信号指针为交易信息中用于表征客户端是否具有实施目标操作权限的账号余额时,所述判断模块402,具体用于:
如果目标客户端对应的账号余额发生变化且变化后持续时长未达超时时长,则所述预设信号指针的状态为加锁状态,确定自身不具有上锁权限;
如果目标客户端对应的账号余额为零,则所述预设信号指针的状态为解锁状态,确定自身具有上锁权限;或者,如果目标客户端对应的账号余额发生变化且变化后持续时长已达超时时长,则所述预设信号指针的状态为锁超期,确定自身具有上锁权限。
在本说明书实施例的再一种具体实现方式中,所述处理模块404,具体用于:
判断所述区块链网络中预设信号指针的加锁状态是否超期或修改;
如果是,则确认所述预设信号指针的加锁状态无效或所述预设信号指针的状态为解锁状态,重新触发判断模块判断自身是否具有上锁权限;
否则,继续等待。
在本说明书实施例的再一种具体实现方式中,所述处理模块404,还用于在实施目标操作之后,将所述预设信号指针的状态修改为解锁状态;其中,在所述解锁状态期间,所有客户端均具有上锁权限。
在本说明书实施例的再一种具体实现方式中,所述装置400还包括:
访问模块,用于访问目标资源。
通过上述技术方案,基于区块链网络中预设信号指针实现的锁,可达到对目标操作的可信、去中心化的锁处理,而且,利用区块链网络的分布式存储、容灾的特性,可以建立较为牢靠安全的分布式锁,有效解决分布式的异构系统间操作互斥、协作问题,提升分布式协作操作的容错可靠性。
参照图5所示,本说明书实施例还提供了一种基于区块链的资源访问装置的结构示意图,该装置500可以包括:
判断模块502,用于基于区块链网络中的预设信号指针判断自身是否具有上锁权限;
访问模块504,用于如果具有上锁权限,则将所述预设信号指针的状态修改为加锁状态,并访问目标资源;以及,
用于如果不具有上锁权限,等待并重新获取上锁权限。
同理,实施例五中的具体实现均可参照实施例四中的方案,在此不作赘述。
通过上述技术方案,基于区块链网络中预设信号指针实现的锁,可达到对目标操作的可信、去中心化的锁处理,而且,利用区块链网络的分布式存储、容灾的特性,可以建立较为牢靠安全的分布式锁,有效解决分布式的异构系统间操作互斥、协作问题,提升分布式协作操作的容错可靠性。
实施例三
图6a和图6b分别是本说明书的一个实施例电子设备的结构示意图。请参考图6a和图6b,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6a和图6b中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成共享资源访问控制装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
基于区块链网络中的预设信号指针判断自身是否具有上锁权限;
如果具有上锁权限,则将所述预设信号指针的状态修改为加锁状态;其中,在所述加锁状态期间,仅所述目标客户端具有实施目标操作的权限;
否则,等待并重新获取上锁权限。
或者,
基于区块链网络中的预设信号指针判断自身是否具有上锁权限;
如果具有上锁权限,则将所述预设信号指针的状态修改为加锁状态,并访问目标资源;
否则,等待并重新获取上锁权限。
上述如本说明书图1、图2所示实施例揭示的装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书一个或多个实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书一个或多个实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1、图2的方法,并实现相应装置在图1、图2所示实施例的功能,本说明书实施例在此不再赘述。
当然,除了软件实现方式之外,本说明书实施例的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
通过上述技术方案,基于区块链网络中预设信号指针实现的锁,可达到对目标操作的可信、去中心化的锁处理,而且,利用区块链网络的分布式存储、容灾的特性,可以建立较为牢靠安全的分布式锁,有效解决分布式的异构系统间操作互斥、协作问题,提升分布式协作操作的容错可靠性。
实施例四
本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1或图2所示实施例的方法,并具体用于执行以下方法:
基于区块链网络中的预设信号指针判断自身是否具有上锁权限;
如果具有上锁权限,则将所述预设信号指针的状态修改为加锁状态;其中,在所述加锁状态期间,仅所述目标客户端具有实施目标操作的权限;
否则,等待并重新获取上锁权限。
或者,
基于区块链网络中的预设信号指针判断自身是否具有上锁权限;
如果具有上锁权限,则将所述预设信号指针的状态修改为加锁状态,并访问目标资源;
否则,等待并重新获取上锁权限。
通过上述技术方案,基于区块链网络中预设信号指针实现的锁,可达到对目标操作的可信、去中心化的锁处理,而且,利用区块链网络的分布式存储、容灾的特性,可以建立较为牢靠安全的分布式锁,有效解决分布式的异构系统间操作互斥、协作问题,提升分布式协作操作的容错可靠性。
总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书的保护范围之内。
上述一个或多个实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
Claims (20)
1.一种基于区块链的分布式锁处理方法,包括:
目标客户端基于区块链网络中的预设信号指针判断自身是否具有上锁权限;
如果具有上锁权限,则将所述预设信号指针的状态修改为加锁状态;其中,在所述加锁状态期间,仅所述目标客户端具有实施目标操作的权限;
否则,等待并重新获取上锁权限。
2.如权利要求1所述的方法,所述预设信号指针至少包括:智能合约中用于表征客户端是否具有实施目标操作权限的变量,或者,交易信息中用于表征客户端是否具有实施目标操作权限的状态信息,所述状态信息至少包括账号余额。
3.如权利要求2所述的方法,所述智能合约中所述变量的值是当前实施加锁的客户端设置的超时时长;或者,所述智能合约中还携带有当前实施加锁的客户端设置的超时时长;或者,所述交易信息中还携带有当前实施加锁的客户端设置的超时时长。
4.如权利要求3所述的方法,目标客户端基于区块链网络中的预设信号指针判断自身是否具有上锁权限,具体包括:
目标客户端获取所述区块链网络中的预设信号指针的状态;
如果所述预设信号指针的状态为加锁状态,则确定自身不具有上锁权限;
如果所述预设信号指针的状态为解锁状态或锁超期,则确定自身具有上锁权限。
5.如权利要求4所述的方法,当所述预设信号指针为智能合约中用于表征客户端是否具有实施目标操作权限的变量时,
如果所述预设信号指针的状态为加锁状态,则确定自身不具有上锁权限,具体包括:
如果所述变量为特定值且该特定值的设置时长未达超时时长,则所述预设信号指针的状态为加锁状态,确定自身不具有上锁权限;
如果所述预设信号指针的状态为解锁状态或锁超期,则确定自身具有上锁权限,具体包括:
如果所述变量为非特定值,则所述预设信号指针的状态为解锁状态,确定自身具有上锁权限;或者,如果所述变量为特定值且该特定值的设置时长已达超时时长,则所述预设信号指针的状态为锁超期,确定自身具有上锁权限。
6.如权利要求5所述的方法,如果具有上锁权限,所述目标客户端将所述预设信号指针的状态修改为加锁状态,具体包括:
所述目标客户端将所述变量的取值修改为特定值,其中,所述特定值为所述目标客户端具有实施目标操作权限的所述超时时长;或者,
所述目标客户端将所述变量的取值修改为特定值,并在智能合约中添加所述目标客户端具有实施目标操作权限的所述超时时长。
7.如权利要求4所述的方法,当所述预设信号指针为交易信息中用于表征客户端是否具有实施目标操作权限的账号余额时,
如果所述预设信号指针的状态为加锁状态,则确定自身不具有上锁权限,具体包括:
如果目标客户端对应的账号余额发生变化且变化后持续时长未达超时时长,则所述预设信号指针的状态为加锁状态,确定自身不具有上锁权限;
如果所述预设信号指针的状态为解锁状态或锁超期,则确定自身具有上锁权限,具体包括:
如果目标客户端对应的账号余额为零,则所述预设信号指针的状态为解锁状态,确定自身具有上锁权限;或者,如果目标客户端对应的账号余额发生变化且变化后持续时长已达超时时长,则所述预设信号指针的状态为锁超期,确定自身具有上锁权限。
8.如权利要求1所述的方法,所述目标客户端等待并重新获取上锁权限,具体包括:
所述目标客户端判断所述区块链网络中预设信号指针的加锁状态是否超期或修改;
如果是,则确认所述预设信号指针的加锁状态无效或所述预设信号指针的状态为解锁状态,重新判断自身是否具有上锁权限;
否则,继续等待。
9.如权利要求1所述的方法,在所述目标客户端实施目标操作之后,所述方法还包括:
所述目标客户端将所述预设信号指针的状态修改为解锁状态;其中,在所述解锁状态期间,所有客户端均具有上锁权限。
10.如权利要求1所述的方法,所述目标客户端实施目标操作的权限,包括:所述目标客户端对目标资源进行访问。
11.一种基于区块链的资源访问方法,包括:
目标客户端基于区块链网络中的预设信号指针判断自身是否具有上锁权限;
如果具有上锁权限,则将所述预设信号指针的状态修改为加锁状态,并访问目标资源;
否则,等待并重新获取上锁权限。
12.一种基于区块链的分布式锁处理装置,包括:
判断模块,用于基于区块链网络中的预设信号指针判断自身是否具有上锁权限;
处理模块,用于如果具有上锁权限,则将所述预设信号指针的状态修改为加锁状态;其中,在所述加锁状态期间,仅所述目标客户端具有实施目标操作的权限;以及,
用于否则,等待并重新获取上锁权限。
13.如权利要求12所述的装置,所述预设信号指针至少包括:智能合约中用于表征客户端是否具有实施目标操作权限的变量,或者,交易信息中用于表征客户端是否具有实施目标操作权限的状态信息,所述状态信息至少包括账号余额。
14.如权利要求13所述的装置,所述智能合约中所述变量的值是当前实施加锁的客户端设置的超时时长;或者,所述智能合约中还携带有当前实施加锁的客户端设置的超时时长;或者,所述交易信息中还携带有当前实施加锁的客户端设置的超时时长。
15.如权利要求14所述的装置,所述判断模块在基于区块链网络中的预设信号指针判断自身是否具有上锁权限时,具体用于:
目标客户端获取所述区块链网络中的预设信号指针的状态;
如果所述预设信号指针的状态为加锁状态,则确定自身不具有上锁权限;
如果所述预设信号指针的状态为解锁状态或锁超期,则确定自身具有上锁权限。
16.如权利要求15所述的装置,当所述预设信号指针为智能合约中用于表征客户端是否具有实施目标操作权限的变量时,
所述判断模块,具体用于:
如果所述变量为特定值且该特定值的设置时长未达超时时长,则所述预设信号指针的状态为加锁状态,确定自身不具有上锁权限;
如果所述变量为非特定值,则所述预设信号指针的状态为解锁状态,确定自身具有上锁权限;或者,如果所述变量为特定值且该特定值的设置时长已达超时时长,则所述预设信号指针的状态为锁超期,确定自身具有上锁权限。
17.如权利要求15所述的装置,当所述预设信号指针为交易信息中用于表征客户端是否具有实施目标操作权限的账号余额时,
所述判断模块,具体用于:
如果目标客户端对应的账号余额发生变化且变化后持续时长未达超时时长,则所述预设信号指针的状态为加锁状态,确定自身不具有上锁权限;
如果目标客户端对应的账号余额为零,则所述预设信号指针的状态为解锁状态,确定自身具有上锁权限;或者,如果目标客户端对应的账号余额发生变化且变化后持续时长已达超时时长,则所述预设信号指针的状态为锁超期,确定自身具有上锁权限。
18.一种基于区块链的资源访问装置,包括:
判断模块,用于基于区块链网络中的预设信号指针判断自身是否具有上锁权限;
访问模块,用于如果具有上锁权限,则将所述预设信号指针的状态修改为加锁状态,并访问目标资源;以及,
用于如果不具有上锁权限,等待并重新获取上锁权限。
19.一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行权利要求1-10任一项所述的基于区块链的分布式锁处理方法,或者,权利要求11所述的基于区块链的资源访问方法。
20.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行权利要求1-10任一项所述的基于区块链的分布式锁处理方法,或者,权利要求11所述的基于区块链的资源访问方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010025593.2A CN111209593A (zh) | 2020-01-10 | 2020-01-10 | 基于区块链的分布式锁处理方法及相关装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010025593.2A CN111209593A (zh) | 2020-01-10 | 2020-01-10 | 基于区块链的分布式锁处理方法及相关装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111209593A true CN111209593A (zh) | 2020-05-29 |
Family
ID=70788814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010025593.2A Pending CN111209593A (zh) | 2020-01-10 | 2020-01-10 | 基于区块链的分布式锁处理方法及相关装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111209593A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112115498A (zh) * | 2020-09-28 | 2020-12-22 | 上海申铁信息工程有限公司 | 一种基于区块链的数据访问权限控制方法与装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6389420B1 (en) * | 1999-09-30 | 2002-05-14 | Emc Corporation | File manager providing distributed locking and metadata management for shared data access by clients relinquishing locks after time period expiration |
US20140365549A1 (en) * | 2013-06-10 | 2014-12-11 | Amazon Technologies, Inc. | Distributed lock management in a cloud computing environment |
CN109766324A (zh) * | 2018-12-14 | 2019-05-17 | 东软集团股份有限公司 | 分布式锁的控制方法、装置、可读存储介质及电子设备 |
CN109828847A (zh) * | 2019-01-25 | 2019-05-31 | 平安科技(深圳)有限公司 | 基于区块链的锁处理方法、装置、计算机设备及存储介质 |
CN110231979A (zh) * | 2019-05-07 | 2019-09-13 | 深圳壹账通智能科技有限公司 | 基于区块链的事务处理方法、装置、设备及存储介质 |
-
2020
- 2020-01-10 CN CN202010025593.2A patent/CN111209593A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6389420B1 (en) * | 1999-09-30 | 2002-05-14 | Emc Corporation | File manager providing distributed locking and metadata management for shared data access by clients relinquishing locks after time period expiration |
US20140365549A1 (en) * | 2013-06-10 | 2014-12-11 | Amazon Technologies, Inc. | Distributed lock management in a cloud computing environment |
CN109766324A (zh) * | 2018-12-14 | 2019-05-17 | 东软集团股份有限公司 | 分布式锁的控制方法、装置、可读存储介质及电子设备 |
CN109828847A (zh) * | 2019-01-25 | 2019-05-31 | 平安科技(深圳)有限公司 | 基于区块链的锁处理方法、装置、计算机设备及存储介质 |
CN110231979A (zh) * | 2019-05-07 | 2019-09-13 | 深圳壹账通智能科技有限公司 | 基于区块链的事务处理方法、装置、设备及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112115498A (zh) * | 2020-09-28 | 2020-12-22 | 上海申铁信息工程有限公司 | 一种基于区块链的数据访问权限控制方法与装置 |
CN112115498B (zh) * | 2020-09-28 | 2023-12-01 | 上海申铁信息工程有限公司 | 一种基于区块链的数据访问权限控制方法与装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113840012B (zh) | 基于区块链的录屏取证方法、系统和电子设备 | |
CN111461887B (zh) | 一种区块链的共识处理方法、装置和电子设备 | |
CN107402821B (zh) | 共享资源的访问控制方法、装置和设备 | |
CN112153143B (zh) | Kubernetes集群的流量调度方法、装置及电子设备 | |
CN111651467B (zh) | 一种区块链节点接口发布调用方法和装置 | |
CN113205416A (zh) | 一种基于区块链预言机的业务处理方法和系统 | |
CN110781192B (zh) | 区块链数据的验证方法、装置及设备 | |
CN111523887B (zh) | 智能合约只读方法的权限控制方法、装置及电子设备 | |
CN110278192A (zh) | 外网访问内网的方法、装置、计算机设备及可读存储介质 | |
CN111753270B (zh) | 应用程序登录验证方法、装置、设备和存储介质 | |
CN113079224A (zh) | 一种账号绑定方法、装置、存储介质及电子设备 | |
CN109345081B (zh) | 一种数据采集方法、装置及电子设备 | |
CN111310137A (zh) | 一种区块链关联数据存证方法、装置及电子设备 | |
CN110648125A (zh) | 一种打包交易方法、装置及电子设备 | |
CN111949297B (zh) | 一种区块链智能合约升级方法、装置及电子设备 | |
CN111209593A (zh) | 基于区块链的分布式锁处理方法及相关装置和电子设备 | |
CN112751935B (zh) | 请求处理方法、装置、电子设备及存储介质 | |
CN110851207B (zh) | 状态转换管理方法、装置、电子设备和存储介质 | |
CN111709748A (zh) | 一种具有业务属性的交易执行方法、装置及电子设备 | |
CN111884808B (zh) | 一种防止交易跨链重放的方法、装置及电子设备 | |
CN113761581A (zh) | 区块链中的权限管控方法、装置和电子设备 | |
CN113485903A (zh) | 一种基于hook的参数统计方法和装置 | |
CN112487497A (zh) | 基于智能合约对链外文件的管理方法、装置和电子设备 | |
CN113076552B (zh) | 一种hdfs资源的访问权限校验方法、装置及电子设备 | |
CN111884809B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200529 |
|
RJ01 | Rejection of invention patent application after publication |