【技术实现步骤摘要】
基于区块链的分布式锁处理方法及相关装置和电子设备
本文件涉及区块链
,尤其涉及一种基于区块链的分布式锁处理方法、资源访问方法及相关装置和电子设备。
技术介绍
目前,较为普遍的分布式锁解决方案有三种:基于数据库实现分布式锁;基于缓存服务实现分布式锁;基于分布式应用程序协调服务(如Zookeeper)实现分布式锁。然而,以上分布式锁的实现、性能以及可靠性均存在不同程度的差异,因此,亟需找到一种实现简单、性能良好以及可靠性高的分布式锁方案。
技术实现思路
本说明书一个或多个实施例的目的是提供一种基于区块链的分布式锁处理方法、资源访问方法及相关装置和电子设备,以基于区块链网络实现性能良好且可靠性高、互斥协作的分布式锁处理方案。为解决上述技术问题,本说明书一个或多个实施例是这样实现的:第一方面,提出了一种基于区块链的分布式锁处理方法,包括:目标客户端基于区块链网络中的预设信号指针判断自身是否具有上锁权限;如果具有上锁权限,则将所述预设信号指针的状态修改为加锁状态;其中,在所述加锁状态期间,仅所述目标客户端具有实施目标操作的权限;否则,等待并重新获取上锁权限。第二方面,提出了一种基于区块链的资源访问方法,包括:目标客户端基于区块链网络中的预设信号指针判断自身是否具有上锁权限;如果具有上锁权限,则将所述预设信号指针的状态修改为加锁状态,并访问目标资源;否则,等待并重新获取上锁权限。第三方面,提出了一种基于区块链的分布式 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。