基于区块链的分布式锁处理方法及相关装置和电子设备制造方法及图纸

技术编号:24331488 阅读:21 留言:0更新日期:2020-05-29 19:47
本说明书一个或多个实施例公开了一种基于区块链的分布式锁处理方法、资源访问方法及相关装置和电子设备,该方法包括:目标客户端基于区块链网络中的预设信号指针判断自身是否具有上锁权限;如果具有上锁权限,则将预设信号指针的状态修改为加锁状态;其中,在加锁状态期间,仅目标客户端具有实施目标操作的权限;否则,等待并重新获取上锁权限。基于区块链网络中预设信号指针实现的锁,可达到对目标操作的可信、去中心化的锁处理,利用区块链网络的分布式存储、容灾特性,可建立牢靠安全的分布式锁,有效解决分布式的异构系统间操作互斥、协作问题,提升分布式协作操作的容错可靠性。

Blockchain based distributed lock processing method and related devices and electronic devices

【技术实现步骤摘要】
基于区块链的分布式锁处理方法及相关装置和电子设备
本文件涉及区块链
,尤其涉及一种基于区块链的分布式锁处理方法、资源访问方法及相关装置和电子设备。
技术介绍
目前,较为普遍的分布式锁解决方案有三种:基于数据库实现分布式锁;基于缓存服务实现分布式锁;基于分布式应用程序协调服务(如Zookeeper)实现分布式锁。然而,以上分布式锁的实现、性能以及可靠性均存在不同程度的差异,因此,亟需找到一种实现简单、性能良好以及可靠性高的分布式锁方案。
技术实现思路
本说明书一个或多个实施例的目的是提供一种基于区块链的分布式锁处理方法、资源访问方法及相关装置和电子设备,以基于区块链网络实现性能良好且可靠性高、互斥协作的分布式锁处理方案。为解决上述技术问题,本说明书一个或多个实施例是这样实现的:第一方面,提出了一种基于区块链的分布式锁处理方法,包括:目标客户端基于区块链网络中的预设信号指针判断自身是否具有上锁权限;如果具有上锁权限,则将所述预设信号指针的状态修改为加锁状态;其中,在所述加锁状态期间,仅所述目标客户端具有实施目标操作的权限;否则,等待并重新获取上锁权限。第二方面,提出了一种基于区块链的资源访问方法,包括:目标客户端基于区块链网络中的预设信号指针判断自身是否具有上锁权限;如果具有上锁权限,则将所述预设信号指针的状态修改为加锁状态,并访问目标资源;否则,等待并重新获取上锁权限。第三方面,提出了一种基于区块链的分布式锁处理装置,包括:判断模块,用于基于区块链网络中的预设信号指针判断自身是否具有上锁权限;处理模块,用于如果具有上锁权限,则将所述预设信号指针的状态修改为加锁状态;其中,在所述加锁状态期间,仅所述目标客户端具有实施目标操作的权限;以及,用于否则,等待并重新获取上锁权限。第四方面,提出了一种基于区块链的资源访问装置,包括:判断模块,用于基于区块链网络中的预设信号指针判断自身是否具有上锁权限;访问模块,用于如果具有上锁权限,则将所述预设信号指针的状态修改为加锁状态,并访问目标资源;以及,用于如果不具有上锁权限,等待并重新获取上锁权限。第五方面,提出了一种电子设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如第一方面所述的方法或第二方面所述的方法。第六方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行如第一方面所述的方法或第二方面所述的方法。由以上本说明书一个或多个实施例提供的技术方案可见,基于区块链网络中预设信号指针实现的锁,可达到对目标操作的可信、去中心化的锁处理,而且,利用区块链网络的分布式存储、容灾的特性,可以建立较为牢靠安全的分布式锁,有效解决分布式的异构系统间操作互斥、协作问题,提升分布式协作操作的容错可靠性。同时,还可以利用区块链记录所有更改历史的特性,来实现重入,以便重新获取锁。附图说明为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对一个或多个实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本说明书的一个实施例提供的基于区块链的分布式锁处理方法的步骤示意图。图2是本说明书的一个实施例提供的基于区块链的资源访问方法的步骤示意图。图3是本说明书的一个实施例提供的基于区块链的资源访问实例示意图。图4是本说明书的一个实施例提供的基于区块链的分布式锁处理装置的结构示意图。图5是本说明书的一个实施例提供的基于区块链的资源访问装置的结构示意图。图6a和图6b分别是本说明书的一个实施例提供的电子设备的结构示意图。具体实施方式为了使本
的人员更好地理解本说明书中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的一个或多个实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。实施例一参照图1所示,为本说明书实施例提供的一种基于区块链的分布式锁处理方法的步骤示意图,应理解,该方法的执行主体可以是客户端,且该客户端可通过终端设备接入区块链网络中,并作为区块链网络中的节点设备进行分布式锁的处理应用。该方法可以包括以下步骤:步骤102:目标客户端基于区块链网络中的预设信号指针判断自身是否具有上锁权限。如果具有上锁权限,则执行步骤104,否则,等待一段时间后,重新跳转至步骤102。应理解,所述目标客户端可以是任意能够实施目标操作的客户端,但是,这里的能够实施目标操作并不一定具有实施目标操作的权限。因此,在进行实施之前,需要通过本说明书的分布式锁处理方案来判定。具体通过区块链网络中预设信号指针来判断目标客户端自身是否具有上锁权限。在本说明书实施例中,所述预设信号指针至少包括:智能合约中用于表征客户端是否具有实施目标操作权限的变量,或者,交易信息中用于表征客户端是否具有实施目标操作权限的状态信息,所述状态信息至少包括账号余额。换言之,可以针对某个目标操作,在区块链网络中预先设定某些信号指针,根据信号指针的不同指向所定义的含义来判断目标客户端是否具有上锁权限,即具有实施目标操作的权限。由此可知,预设信号指针可以通过区块链网络中的多种信息实现,灵活多变。进一步,所述智能合约中所述变量的值是当前实施加锁的客户端设置的超时时长;或者,所述智能合约中还携带有当前实施加锁的客户端设置的超时时长;或者,所述交易信息中还携带有当前实施加锁的客户端设置的超时时长。从而,可以避免宕机导致的锁死问题,另外,实现简单。换言之,所述智能合约中所述变量的取值有两层含义,其一,表示是否已有实施加锁以获取实施目标操作的权限,其二,表示当前实施加锁的客户端设置的超时时长。或者,所述智能合约中所述变量的取值仅表示是否已有客户端实施加锁以获取实施目标操作的权限,同时,还在智能合约中额外携带超时时长。例如,若变量取值为0,表示当前锁状态为解锁状态,目标客户端具有上锁权限;若变量取值为2,表示当前锁状态为加锁状态,且在加锁开始持续2s后超时,即锁超期,处于锁无效状态,目标客户端具有上锁权限,若变量取值为3,表示当前锁状态为加锁状态,且在加锁开始持续3s后超时,即锁超期,处于锁无效状态。此外,还可以使用区块链网络中的账户余额是否发生变化来表示是否已有客户端实施加锁以获取实施目标操本文档来自技高网
...

【技术保护点】
1.一种基于区块链的分布式锁处理方法,包括:/n目标客户端基于区块链网络中的预设信号指针判断自身是否具有上锁权限;/n如果具有上锁权限,则将所述预设信号指针的状态修改为加锁状态;其中,在所述加锁状态期间,仅所述目标客户端具有实施目标操作的权限;/n否则,等待并重新获取上锁权限。/n

【技术特征摘要】
1.一种基于区块链的分布式锁处理方法,包括:
目标客户端基于区块链网络中的预设信号指针判断自身是否具有上锁权限;
如果具有上锁权限,则将所述预设信号指针的状态修改为加锁状态;其中,在所述加锁状态期间,仅所述目标客户端具有实施目标操作的权限;
否则,等待并重新获取上锁权限。


2.如权利要求1所述的方法,所述预设信号指针至少包括:智能合约中用于表征客户端是否具有实施目标操作权限的变量,或者,交易信息中用于表征客户端是否具有实施目标操作权限的状态信息,所述状态信息至少包括账号余额。


3.如权利要求2所述的方法,所述智能合约中所述变量的值是当前实施加锁的客户端设置的超时时长;或者,所述智能合约中还携带有当前实施加锁的客户端设置的超时时长;或者,所述交易信息中还携带有当前实施加锁的客户端设置的超时时长。


4.如权利要求3所述的方法,目标客户端基于区块链网络中的预设信号指针判断自身是否具有上锁权限,具体包括:
目标客户端获取所述区块链网络中的预设信号指针的状态;
如果所述预设信号指针的状态为加锁状态,则确定自身不具有上锁权限;
如果所述预设信号指针的状态为解锁状态或锁超期,则确定自身具有上锁权限。


5.如权利要求4所述的方法,当所述预设信号指针为智能合约中用于表征客户端是否具有实施目标操作权限的变量时,
如果所述预设信号指针的状态为加锁状态,则确定自身不具有上锁权限,具体包括:
如果所述变量为特定值且该特定值的设置时长未达超时时长,则所述预设信号指针的状态为加锁状态,确定自身不具有上锁权限;
如果所述预设信号指针的状态为解锁状态或锁超期,则确定自身具有上锁权限,具体包括:
如果所述变量为非特定值,则所述预设信号指针的状态为解锁状态,确定自身具有上锁权限;或者,如果所述变量为特定值且该特定值的设置时长已达超时时长,则所述预设信号指针的状态为锁超期,确定自身具有上锁权限。


6.如权利要求5所述的方法,如果具有上锁权限,所述目标客户端将所述预设信号指针的状态修改为加锁状态,具体包括:
所述目标客户端将所述变量的取值修改为特定值,其中,所述特定值为所述目标客户端具有实施目标操作权限的所述超时时长;或者,
所述目标客户端将所述变量的取值修改为特定值,并在智能合约中添加所述目标客户端具有实施目标操作权限的所述超时时长。


7.如权利要求4所述的方法,当所述预设信号指针为交易信息中用于表征客户端是否具有实施目标操作权限的账号余额时,
如果所述预设信号指针的状态为加锁状态,则确定自身不具有上锁权限,具体包括:
如果目标客户端对应的账号余额发生变化且变化后持续时长未达超时时长,则所述预设信号指针的状态为加锁状态,确定自身不具有上锁权限;
如果所述预设信号指针的状态为解锁状态或锁超期,则确定自身具有上锁权限,具体包括:
如果目标客户端对应的账号余额为零,则所述预设信号指针的状态为解锁状态,确定自身具有上锁权限;或者,如果目标客户端对应的账号余额发生变化且变化后持续时长已达超时时长,则所述预设信号指针的状态为锁超期,确定自身具有上锁权限。


8.如权利要求1所述的方法,所述目标客户端等待并重新获取上锁权限,具体包括:
所述目标客户端判断所述区块链网络中预设信号指针的加锁状态是否超期或修改;
如果是,则确认所述预设信号指针的加锁状态无效或所述预设信号指针的状态为解锁状态,重新判断自身是否具有上锁权限;
否则,继续等待。


9.如权利要求1所述的方法,在所述目标客户端实施目标操作之后,所述方法还包括:
所述目标客户端将所述预设信号指针的状态修改为解锁状态;其中,在所述解锁状态期间,所有客户端均具有上锁权限。


10.如权利要求1所述的方法,所述目标...

【专利技术属性】
技术研发人员:王晓亮宁志伟陈林燏
申请(专利权)人:杭州溪塔科技有限公司
类型:发明
国别省市:浙江;33

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

1