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所述的基于区块链的资源访问方法。