发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种基于区块链的任务分发方法、装置以及系统。
第一方面,本申请实施例提供了一种基于区块链的任务分发方法,应用于区块链网络上的分发设备,包括:
接收投放请求,并根据所述投放请求获取用户信息;
当所述用户信息满足预设条件时,为投放的物品分配射频卡,并生成区块头信息;
对所述物品进行检测获取交易内容;
根据所述区块头信息与所述交易内容生成任务信息,并将所述任务信息发送至区块链网络的各个节点进行记录。
可选的,在所述生成区块头信息之前,所述方法还包括:
获取投放地址,所述射频卡的射频卡编号以及当前投放时间;
基于哈希算法对所述投放地址、所述射频卡编号以及所述当前投放时间进行计算,得到计算结果;
确定所述射频卡的在预设时间内的使用次数;
根据所述计算结果与所述使用次数生成交易标识。
可选的,所述生成区块头信息,包括:
确定第一交易状态;
根据所述投放地址,所述交易标识以及所述第一交易状态生成所述区块头信息。
可选的,所述方法还包括:
监听所述区块链网络上的第一应答信息,所述第一应答信息由所述区块链网络调用第一处理合约生成;
根据所述第一应答信息确定所述任务信息中的交易状态;
当所述交易状态为所述第一交易状态时,将所述第一应答信息放入本地交易缓冲池中等待共识;
当共识成功时,将所述任务信息中第一交易状态更新为第二交易状态,并将更新后的任务信息写入本地账本。
可选的,所述方法还包括:
监听所述区块链网络上的第二应答信息,所述第二应答信息由所述区块链网络调用第二处理合约生成;
根据所述第二应答信息确定所述任务信息中的交易状态;
当所述交易状态为所述第二交易状态时,将所述第二应答信息放入本地交易缓冲池中等待共识;
当共识成功时,将所述任务信息中第二交易状态更新为第三交易状态,并将更新后的任务信息写入本地账本。
可选的,所述交易内容包括交易指标;
所述方法还包括:
监听所述区块链网络上的第三应答信息,所述第三应答信息由所述区块链网络调用第三处理合约生成;
根据所述第三应答信息生成检测指令;
根据所述检测指令对指定区域进行检测得到检测结果;
当所述检测结果满足预设结果时,将所述任务信息中第三交易状态更新为第四交易状态,并调用第四处理合约将所述交易指标发放至位于区块链网络上的客户端。
第二方面,本申请实施例提供了一种基于区块链的任务分发方法,应用于区块链网络上的客户端,包括:
监听区块链网络上的任务信息,所述任务信息包括:区块头信息以及交易内容;
将所述区块头信息存储于本地账本,所述区块头信息中包括投放地址,交易标识以及第一交易状态;
遍历本地账本中的区块头信息,确定所述客户端的位置信息与所述投放地址的位置关系;
当所述位置关系满足预设条件时,根据所述区块头信息生成推送信息。
可选的,所述方法还包括:
接收作用于所述推送信息的触发操作;
当根据所述触发操作确认对所述区块头信息对应的交易进行处理时,调用第一处理合约将所述区块头信息中的第一交易状态更新为第二交易状态;
将更新后的区块头信息发送至所述区块链网络的各个节点进行记录。
可选的,所述方法还包括:
调用拍摄装置对射频卡进行扫描得到扫描信息;
将所述扫描信息发送至所述区块链网络的各个节点进行记录;
监听所述区块链网络上的第二应答信息,所述第二应答信息由于所述区块链网络调用第二处理合约生成;
根据所述应答信息确定所述区块头信息中的交易状态;
当所述交易状态为所述第二交易状态时,将所述应答信息放入本地交易缓冲池中等待共识;
当共识成功时,将所述区块头信息中第二交易状态更新为第三交易状态,并将更新后的区块头信息写入本地账本。
可选的,所述方法还包括:
获取交易状态更新指令;
根据所述交易状态更新指令调用第三处理合约,通过所述第三处理合约将所述区块头信息中的第三交易状态更新为第四交易状态;
将更新后的区块头信息发送至所述区块链网络的的各个节点进行记录;
监听所述区块链网络上的第四应答信息,根据所述第四应答信息获取交易指标。
第三方面,本申请实施例提供了一种基于区块链的任务分发方法,应用于区块链网络上的校验设备,包括:
监听区块链网络上的的扫描信息;
根据所述扫描信息确定相应的交易标识;
遍历本地账本中的任务信息获取所述交易标识对应的交易状态;
调用第二处理合约更新所述任务信息中的交易状态,并将更新后的任务信息发送至所述区块链网络的各个节点进行记录。
第四方面,本申请实施例提供了一种基于区块链的分发设备,包括:
接收模块,用于接收投放请求,并根据所述投放请求获取用户信息;
分配模块,用于当所述用户信息满足预设条件时,为投放的物品分配射频卡,并生成区块头信息;
获取模块,用于对所述物品进行检测获取交易内容;
生成模块,用于根据所述区块头信息与所述交易内容生成任务信息,并将所述任务信息发送至区块链网络的各个节点进行记录。
第五方面,本申请实施例一种基于区块链的客户端,包括:
监听模块,用于监听区块链网络上的任务信息,所述任务信息包括:区块头信息以及交易内容;
存储模块,用于将所述区块头信息存储于本地账本,所述区块头信息中包括投放地址,交易标识以及第一交易状态;
确定模块,用于历本地账本中的区块头信息,确定所述客户端的位置信息与所述投放地址的位置关系;
生成模块,用于当所述位置关系满足预设条件时,根据所述区块头信息生成推送信息。
第六方面,本申请实施例一种基于区块链的校验设备,包括:
监听模块,用于监听区块链网络上的的扫描信息;
确定模块,用于根据所述扫描信息确定相应的交易标识;
获取模块,用于遍历本地账本中的任务信息获取所述交易标识对应的交易状态;
发送模块,用于调用第二处理合约更新所述任务信息中的交易状态,并将更新后的任务信息发送至所述区块链网络的各个节点进行记录。
第七方面,本申请实施例一种基于区块链的任务分发系统,所述系统为多个区块链节点组成的区块链网络;
所述区块链节点包括:上述的分发设备,上述的客户端以及上述的校验设备。
第八方面,本申请提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行计算机程序时,实现上述方法步骤。
第九方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请对区块头信息进行调整,根据实际业务场景,将地理位置信息嵌入到区块头信息中,解决了通过终端进如何获取信息即指定消息的推送问题,是一种稳定性高,成本低的消息推送方式。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供了一种基于区块链的任务分发方法、装置及系统。本发明实施例所提供的方法可以应用于任意需要的电子设备,例如,可以为服务器、终端等电子设备,在此不做具体限定,为描述方便,后续简称为电子设备。下面首先对本发明实施例所提供的一种基于区块链的任务分发系统进行介绍。本申请提供的一种基于区块链的任务分发系统可以用于垃圾分类。
如图1所示,一种基于区块链的任务分发系统,包括:客户端10,分发设备20以及校验设备30;
本实施例提供的区块链节点包括:重节点和轻节点,如图1所示其中,菱形标识(客户端)为轻节点,方形标识(分发设备以及校验设备)为重节点,所有节点直接都是可以进行网络通信的。重节点含有所有的区块信息;轻节点只存储区块头信息。
对于客户端而言,客户端需要发送投放请求或者获取任务信息,以及需要知道当前任务的执行状态,对于该问题,现有区块链技术并没有比较简单的解决方案,所以本申请实施例提供了一种基于区块链的任务分发系统。
其中,客户端10,用于发送投放请求至区块链系统的各个节点进行记录;
分发设备20,用于接收投放请求,并根据投放请求获取用户信息,当用户信息满足预设条件时,为投放的物品分配射频卡,并生成区块头信息,对物品进行检测获取交易内容,根据区块头信息与交易内容生成任务信息,并发送任务信息至区块链系统的各个节点进行记录。
客户端10,用于从区块链系统上监听任务信息,并将任务信息中的区块头信息进行存储,其中,区块头信息中包括投放地址,交易标识以及第一交易状态;遍历本地的区块头信息,确定客户端的位置信息与投放地址的位置关系,当位置关系满足预设条件时,根据区块头信息生成推送信息;
客户端10,用于接收作用于推送信息的触发操作,当根据触发操作确认对交易头信息对应的交易进行处理时,调用第一处理合约将交易头信息中的第一交易状态更新为第二交易状态,并发送任务信息至区块链系统的各个节点进行记录;
客户端10,用于调用拍摄装置对射频卡进行扫描得到扫描信息,将扫描信息发送至区块链网络的各个节点进行记录;
校验设备30,用于从区块链系统上监听扫描信息,根据扫描信息确定相应的交易标识,遍历本地的任务信息获取交易标识对应的交易状态,调用第二处理合约将任务信息中第二交易状态更新为第三交易状态,并将更新后的任务信息发送至区块链网络的各个节点进行记录。
客户端10,用于获取交易状态更新指令,根据交易状态更新指令调用第三处理合约生成检测请求,并发送检测请求至区块链网络的各个节点进行记录;
分发设备20,用于从区块链系统上监听检测请求,根据检测请求生成检测指令,根据检测指令对指定区域进行检测得到检测结果,当检测结果满足预设结果时,将任务信息中第三交易状态更新为第四交易状态,并调用第四处理合约将交易指标发放至位于区块链系统上的客户端;
客户端10,用于从区块链系统上监听检测结果,根据检测将第三交易状态更新为第四交易状态,并获取交易指标。
本申请提供的基于区块链的任务分发系统使用一条链进行处理,不需要通过任何第三方接入,屏蔽掉了其他系统接入的问题,同时整个数据透明公开,本申请通过使用区块链技术,完全依靠本身的能力就可以自动化长期稳定运行;另外,本申请对区块头信息进行调整,根据实际业务场景,将地址信息嵌入到区块头中时一种稳定性高,成本低的消息处理方式,解决了通过终端进行操作的轻节点其如何获取信息,以及如何将信息进行推送问题。
图2为本申请实施例提供的一种基于区块链的任务分发方法的流程图。本实施例提供的一种基于区块链的任务分发方法应用于区块链网络上的分发设备。如图2所示,该方法包括以下步骤:
步骤S11,接收投放请求,并根据投放请求获取用户信息;
步骤S12,当用户信息满足预设条件时,为投放的物品分配射频卡,并生成区块头信息;
步骤S13,对物品进行检测获取交易内容;
步骤S14,根据区块头信息与交易内容生成任务信息,并将任务信息发送至区块链网络的各个节点进行记录。
本实施例中,其中投放请求基于投放者登录分发设备触发生成的,例如:可以通过人脸识别或个人二维码等方式登录。此时获取投放者的用户信息,并对投放者的用户信息进行验证,其中验证方式包括但不限于以下操作:
该投放者是否已经注册,例如:可以通过区块链查询网络,所有的投放者在注册后都会在区块链网络生成一个唯一的用户标识,当用户信息中携带用户标识时,则确认投放者已经注册;还可以验证该投放者是否合法,根据用户标识匹配历史记录,判断该投放者是否存在违规操作,如:欠费等。
本实施例中,当用户信息满足预设条件时,然后为投放的物品分配射频卡,并生成区块头信息,其中生成区块头信息的具体实现方式如下:
图3为本申请实施例提供的交易标识的示意图,如图3所示,交易标识200包括:计算结果和射频卡在预设时间内的使用次数204,其中,计算结果是基于:投放地址201,射频卡的射频卡编号202以及当前投放时间203进行哈希计算得到的。其中,投放地址(可以是分发设备的地址)。然后确定射频卡的在预设时间内的使用次数;根据计算结果与使用次数生成交易标识。
其次,确定第一交易状态,根据投放地址,交易标识以及第一交易状态生成区块头信息。本实施例中,第一交易状态为待接收状态。
本实施例中,在得到区块头信息后,调用传感器对物品进行检测,得到交易内容,如:交易指标,类别,重量等等,根据区块头信息与交易内容生成任务信息,并将任务信息发送至区块链网络的各个节点进行记录。
本实施例中,监听区块链网络上的第一应答信息,第一应答信息由区块链网络调用第一处理合约生成,根据第一应答信息确定任务信息中的交易状态,当交易状态为第一交易状态时,将第一应答信息放入本地交易缓冲池中等待共识,当共识成功时,将任务信息中第一交易状态更新为第二交易状态,并将更新后的任务信息写入本地账本。本实施例中第二交易状态为已接收状态。
本实施例中,监听区块链网络上的第二应答信息,第二应答信息由区块链网络调用第二处理合约生成,根据第二应答信息确定任务信息中的交易状态,当交易状态为第二交易状态时,将第二应答信息放入本地交易缓冲池中等待共识,当共识成功时,将任务信息中第二交易状态更新为第三交易状态,并将更新后的任务信息写入本地账本。本实施例中第三交易状态为处理中状态。
本实施例中,监听区块链网络上的第三应答信息,第三应答信息由区块链网络调用第三处理合约生成,根据第三应答信息获取检测指令,根据检测指令对指定区域进行检测得到检测结果,当检测结果满足预设结果时,将任务信息中第三交易状态更新为第四交易状态,并调用第四处理合约将交易指标发放至位于区块链网络上的客户端。本实施例中,本实施例中第四易状态为已完成状态。
图4为本申请另一实施例提供的一种基于区块链的任务分发方法的流程图。本实施例提供的一种基于区块链的任务分发方法应用于区块链网络上的客户端,如图4所示,该方法还包括以下步骤:
步骤S21,监听区块链网络上的任务信息,任务信息包括:区块头信息以及交易内容;
步骤S22,将区块头信息存储于本地账本,区块头信息中包括投放地址,交易标识以及第一交易状态;
步骤S23,遍历本地账本中的区块头信息,确定客户端的位置信息与投放地址的位置关系;
步骤S24,当位置关系满足预设条件时,根据区块头信息生成推送信息。
本实施例中,监听区块链网络上的任务信息,任务信息包括:区块头信息以及交易内容,将区块头信息存储于本地账本,区块头信息中包括投放地址,交易标识以及第一交易状态,遍历本地账本中的区块头信息,确定客户端的位置信息与投放地址的位置关系,当位置关系满足预设条件时,根据区块头信息生成推送信息。
例如:投放地址与客户端之间的距离处于预设范围时,根据区块头信息生成推送信息。
接收作用于推送信息的触发操作,当根据触发操作确认对区块头信息对应的交易进行处理时,调用第一处理合约将区块头信息中的第一交易状态更新为第二交易状态,将更新后的区块头信息发送至区块链网络的各个节点进行记录。
本实施例中,调用拍摄装置对射频卡进行扫描得到扫描信息,将扫描信息发送至区块链网络的各个节点进行记录,监听区块链网络上的第二应答信息,第二应答信息由于区块链网络调用第二处理合约生成,根据应答信息确定区块头信息中的交易状态,当交易状态为第二交易状态时,将第二应答信息放入本地交易缓冲池中等待共识;当共识成功时,将区块头信息中第二交易状态更新为第三交易状态,并将更新后的区块头信息写入本地账本。
本实施例中,获取交易状态更新指令,根据交易状态更新指令调用第三处理合约,通过第三处理合约将区块头信息中的第三交易状态更新为第四交易状态,并生成检测指令,将更新后的区块头信息以及检测指令发送至区块链网络的的各个节点进行记录,监听区块链网络上的第四应答信息,根据第四应答信息获取交易指标。
图5为本申请另一实施例提供的一种基于区块链的任务分发方法的流程图。本实施例提供的一种基于区块链的任务分发方法应用于区块链网络上的校验设备,如图5所示,该方法还包括以下步骤:
步骤S31,监听区块链网络上的的扫描信息;
步骤S32,根据扫描信息确定相应的交易标识;
步骤S33,遍历本地账本中的任务信息获取交易标识对应的交易状态;
步骤S34,调用处理合约更新任务信息中的交易状态,并将更新后的任务信息发送至区块链网络的各个节点进行记录。
根据扫描信息确定相应的交易标识,具体通过以下方式实现:根据当前地理位置信息和射频卡编号结合当前时间进行哈希运算,然后查找交易列表,交易列表中包括以哈希值形式存储的交易标识;若未获取到交易列表,则调整计算时间(在预设时间内,例如一天内进行调整),然后重新进行计算,直到获取到交易列表;获取交易列表中射频卡使用次数最大的交易标识,然后判断其是否正处于已接收状态;如果处于已接收状态则成功获取交易标识,否则重新调整时间,再进行重复操作,直到获取交易标识。
然后调用第二处理合约将任务信息中的交易状态更新为为处理中即第三交易状态,并广播至整个区块链系统进行共识。
本实施例理论上都是已接收的状态,假设是非已接收状态的情况下,则会发送提醒信息,提醒信息用于提醒本次任务可能无法获得交易指标。
图6为本申请实施例提供的一种基于区块链的分发装置的示意图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图6所示,该装置包括:
接收模块601,用于接收投放请求,并根据投放请求获取用户信息;
分配模块602,用于当用户信息满足预设条件时,为投放的物品分配射频卡,并生成区块头信息;
获取模块603,用于对物品进行检测获取交易内容;
生成模块604,用于根据区块头信息与交易内容生成任务信息,并将任务信息发送至区块链网络的各个节点进行记录。
图7为本申请实施例提供的一种基于区块链的客户端的示意图。如图7所示,该装置包括:
监听模块701,用于监听区块链网络上的任务信息,任务信息包括:区块头信息以及交易内容;
存储模块702,用于将区块头信息存储于本地账本,区块头信息中包括投放地址,交易标识以及第一交易状态;
确定模块703,用于历本地账本中的区块头信息,确定客户端的位置信息与投放地址的位置关系;
生成模块704,用于当位置关系满足预设条件时,根据区块头信息生成推送信息。
图8为本申请实施例提供的一种基于区块链的校验设备的示意图。如图8所示,该装置包括:
监听模块801,用于监听区块链网络上的的扫描信息;
确定模块802,用于根据扫描信息确定相应的交易标识;
获取模块803,用于遍历本地账本中的任务信息获取交易标识对应的交易状态;
发送模块804,用于调用第二处理合约更新任务信息中的交易状态,并将更新后的任务信息发送至区块链网络的各个节点进行记录
本申请实施例还提供一种电子设备,如图9所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的计算机程序时,实现上述实施例的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,P C I)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例的步骤。
需要说明的是,对于上述装置、电子设备及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
进一步需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。