掌桥专利:专业的专利平台
掌桥专利
首页

基于区块链的数据处理方法、装置、计算机及存储介质

文献发布时间:2023-06-19 11:29:13


基于区块链的数据处理方法、装置、计算机及存储介质

技术领域

本申请涉及区块链技术领域,尤其涉及一种基于区块链的数据处理方法、装置、计算机及存储介质。

背景技术

由于准确、及时的交通流信息对于交通系统管理非常重要,因此,对于交通流信息的管理已成为智能交通系统的重要组成部分。然而在大多数行业中,由于行业竞争、隐私安全及行政手续复杂等多种原因,数据常常是以孤岛的形式存在,以保障各个节点之间数据的隐私性,现有的基于集中式学习的交通流预测方法需要收集原始数据进行模型训练,这面临着严重的数据隐私泄露的风险。为解决该问题,目前通过引入联邦学习(FederatedLearning,FL),使得在模型训练过程中无需上传车辆的原始数据(如车流量或车位置等隐私信息),而该FL框架基于服务器对模型进行聚合更新,该服务器可能会受到安全挑战,如单点故障攻击等,若该服务器出现异常,可能会导致整个模型训练的过程出现问题,从而导致对交通流信息的预测过程出现问题,使得数据处理的安全性较低。

发明内容

本申请实施例提供了一种基于区块链的数据处理方法、装置、计算机及存储介质,可以提高对基于区块链的数据处理的准确性及检测效率。

本申请实施例一方面提供了一种基于区块链的数据处理方法,该方法包括:

从来自N个业务组的N个主业务节点中获取第一聚合模型,获取模型发布节点发送的测试模型;第一聚合模型为主业务节点i对业务组i中的M个业务节点分别对应的初始模型进行参数聚合得到的模型,N个业务组包括业务组i,M个业务节点包括主业务节点i;N与M均为正整数;i为小于或等于N的正整数;

获取第一聚合模型与测试模型之间的模型相似度,将模型相似度大于或等于模型有效阈值的第一聚合模型确定为有效聚合模型;

将有效聚合模型发送至领导共识节点,以使领导共识节点对有效聚合模型进行参数聚合,生成第二聚合模型;

获取领导共识节点发送的第二聚合模型,对第二聚合模型进行共识,若共识通过,则向领导共识节点发送模型共识通过消息,以使领导共识节点基于模型共识通过消息,将第二聚合模型上传至模型区块链中,向N个主业务节点发送模型更新消息。

本申请实施例一方面提供了一种基于区块链的数据处理方法,该方法包括:

获取M个业务节点分别对应的初始模型,对M个初始模型进行参数聚合,生成待验证聚合模型,将待验证聚合模型发送至参与共识节点,以使参与共识节点根据接收到的N个待验证聚合模型确定第一聚合模型,对第一聚合模型进行检测得到有效聚合模型,将有效聚合模型发送至领导共识节点,N个待验证聚合模型包括本地业务节点发送的待验证聚合模型;M和N均为正整数;

接收领导共识节点发送的模型更新消息,基于模型更新消息从模型区块链中获取第二聚合模型;第二聚合模型是领导共识节点对有效聚合模型进行参数聚合所生成的,第二聚合模型被参与共识节点共识通过;

获取训练数据集,基于训练数据集对第二聚合模型进行参数调整,将参数调整后的第二聚合模型确定为初始模型,直至第二聚合模型的参数收敛。

本申请实施例一方面提供了一种基于区块链的数据处理方法,该方法包括:

获取参与共识节点发送的有效聚合模型,对有效聚合模型进行参数聚合,生成第二聚合模型;有效聚合模型是参与共识节点对接收到的第一聚合模型进行选取得到的;第一聚合模型为对应的业务组中的主业务节点对M个业务节点分别对应的初始模型进行参数聚合得到的;M为正整数;

将第二聚合模型发送至参与共识节点,以使参与共识节点对第二聚合模型进行共识;

接收参与共识节点在对第二聚合模型共识通过时发送的模型共识通过消息,基于模型共识通过消息,将第二聚合模型上传至模型区块链中;

检测第二聚合模型的模型参数的收敛性,若第二聚合模型的模型参数收敛,则向N个主业务节点广播模型完成消息;

若第二聚合模型的模型参数不收敛,则向N个主业务节点广播模型更新消息,以使与N个主业务节点关联的业务组中的e个业务节点更新第二聚合模型。

本申请实施例一方面提供了一种基于区块链的数据处理装置,该装置包括:

第一模型获取模块,用于从来自N个业务组的N个主业务节点中获取第一聚合模型,获取模型发布节点发送的测试模型;第一聚合模型为主业务节点i对业务组i中的M个业务节点分别对应的初始模型进行参数聚合得到的模型,N个业务组包括业务组i,M个业务节点包括主业务节点i;N与M均为正整数;i为小于或等于N的正整数;

模型筛选模块,用于获取第一聚合模型与测试模型之间的模型相似度,将模型相似度大于或等于模型有效阈值的第一聚合模型确定为有效聚合模型;

有效模型发送模块,用于将有效聚合模型发送至领导共识节点,以使领导共识节点对有效聚合模型进行参数聚合,生成第二聚合模型;

第二模型获取模块,用于获取领导共识节点发送的第二聚合模型;

模型共识模块,用于对第二聚合模型进行共识,若共识通过,则向领导共识节点发送模型共识通过消息,以使领导共识节点基于模型共识通过消息,将第二聚合模型上传至模型区块链中,向N个主业务节点发送模型更新消息。

其中,该第一模型获取模块,包括:

第一签名生成单元,用于获取来自N个业务组的N个主业务节点分别对应的业务节点公钥,根据N个主业务节点分别对应的业务节点公钥,生成N个主业务节点分别对应的第一验证签名;

模型删除单元,用于获取N个主业务节点分别发送的待验证聚合模型携带的业务节点签名,删除业务节点签名与第一验证签名不同的主业务节点发送的待验证聚合模型,将删除后所剩余的待验证聚合模型确定为第一聚合模型。

其中,该第二模型获取模块,包括:

区块获取单元,用于获取领导共识节点发送的模型交易区块,获取领导共识节点的领导节点公钥;

第二签名生成单元,用于从模型交易区块中获取领导共识节点的领导节点签名及第二聚合模型,采用领导节点公钥生成第二聚合模型的第二验证签名;

异常反馈单元,用于若第二验证签名与领导节点签名不同,则向领导共识节点发送节点信息异常消息;

共识调用单元,用于若第二验证签名与领导节点签名相同,则执行对第二聚合模型进行共识的步骤。

其中,该模型共识模块,包括:

测试数据获取单元,用于获取模型发布节点发送的发布测试数据集;

模型验证单元,用于在第一共识阶段,基于发布测试数据集对第二聚合模型进行验证,根据验证结果生成针对第二聚合模型的第一验证结果;

第一投票确定单元,用于获取h个参与共识节点发送的针对第二聚合模型的第二验证结果,根据第一验证结果与第二验证结果,确定第一投票数量;h为正整数;

投票广播单元,用于根据第一投票数量生成第一投票结果,将第一投票结果广播至h个参与共识节点;

第二投票确定单元,用于在第二共识阶段,获取h个参与共识节点发送的第二投票结果,根据第一投票结果与第二投票结果,确定第二投票数量;

投票检测单元,用于若第二投票数量大于或等于共识通过阈值,则确定对第二聚合模型共识通过;

该投票检测单元,还用于若第二投票数量小于共识通过阈值,则确定对第二聚合模型共识不通过,向领导共识节点发送交易数据异常消息。

其中,发布测试数据集包括发布测试样本及发布测试样本的样本标签;

该模型验证单元,包括:

差异预测子单元,用于将发布测试样本输入第二聚合模型进行预测,得到发布测试样本对应的预测数据特征,获取预测数据特征与样本标签之间的差异值;

阈值匹配子单元,用于若差异值小于或等于模型异常阈值,则将验证通过结果确定为针对第二聚合模型的第一验证结果;

该阈值匹配子单元,还用于若差异值大于模型异常阈值,则将验证失败结果确定为针对第二聚合模型的第一验证结果;

该第一投票确定单元,具体用于:

统计第一验证结果及第二验证结果中为验证通过结果的验证结果数量,将为验证通过结果的验证结果数量确定为第一投票数量。

其中,该投票广播单元,包括:

成功确定子单元,用于若第一投票数量大于或等于投票共识阈值,则将投票成功结果确定为第一投票结果;

失败确定子单元,用于若第一投票数量小于投票共识阈值,则将投票失败结果确定为第一投票结果;

该第二投票确定单元,具体用于:

统计第一投票结果与第二投票结果中为投票成功结果的投票结果数量,将投票结果数量确定为第二投票数量。

其中,该投票广播单元,包括:

结果生成子单元,用于根据第一投票数量生成第一投票结果;

节点签名子单元,用于若第一投票结果为投票成功结果,则针对第一投票结果生成投票结果签名,将第一投票结果及投票结果签名广播至h个参与共识节点;

投票失败子单元,用于若第一投票结果为投票失败结果,则将投票失败结果广播至h个参与共识节点。

其中,该装置还包括:

路边验证模块,用于获取至少两个路边单元,将至少两个路边单元分别对应的路边单元信息发送至可信机构,以使可信机构基于至少两个路边单元分别对应的路边单元信息对至少两个路边单元信息进行身份验证,将身份验证结果发送至对应的路边单元;

共识节点确定模块,用于接收可信机构发送的身份验证结果,若身份验证结果为身份验证通过结果,则将身份验证结果为身份验证通过结果的路边单元确定为参与共识节点。

其中,该装置还包括:

节点信息获取模块,用于获取至少两个参与共识节点分别对应的参与节点信息;参与节点信息包括参与节点网络带宽及参与节点空闲内存;

节点质量确定模块,用于采用节点选取算法对参与节点网络带宽及参与节点空闲内存进行转换,得到至少两个参与共识节点分别对应的节点质量;

领导节点确定模块,用于根据至少两个参与共识节点分别对应的节点质量,确定领导共识节点。

其中,该装置还包括:

属性矩阵生成模块,用于获取e个业务节点的节点属性信息,根据每个业务节点的节点属性信息生成节点属性矩阵;

距离矩阵生成模块,用于获取e个业务节点中业务节点p与业务节点q之间的距离信息,根据业务节点p与业务节点q之间的距离信息生成距离属性矩阵;p为位于1至e之间正整数,q为位于1至e之间的正整数;

关联系数确定模块,用于根据节点属性矩阵与距离属性矩阵,确定业务节点p与业务节点q之间的节点关联系数;

组划分模块,用于建立节点关联系数大于或等于节点关联阈值的两个业务节点之间的关联关系,基于关联关系确定N个业务组;

主节点选取模块,用于从N个业务组中分别选取一个主业务节点。

其中,该关联系数确定模块,包括:

属性匹配单元,用于根据节点属性矩阵,获取业务节点p的节点属性信息与业务节点q的节点属性信息之间的属性相似度;

距离匹配单元,用于根据距离属性矩阵,确定业务节点p与业务节点q之间的距离属性数据,根据距离属性数据确定业务节点p与业务节点q之间的位置相似度;

系数确定单元,用于基于属性相似度及位置相似度确定业务节点p与业务节点q之间的节点关联系数。

本申请实施例一方面提供了一种基于区块链的数据处理装置,该装置包括:

第一模型聚合模块,用于获取M个业务节点分别对应的初始模型,对M个初始模型进行参数聚合,生成待验证聚合模型,将待验证聚合模型发送至参与共识节点,以使参与共识节点根据接收到的N个待验证聚合模型确定第一聚合模型,对第一聚合模型中进行检测得到有效聚合模型,将有效聚合模型发送至领导共识节点,N个待验证聚合模型包括本地业务节点发送的待验证聚合模型;M和N均为正整数;

链中获取模块,用于接收领导共识节点发送的模型更新消息,基于模型更新消息从模型区块链中获取第二聚合模型;第二聚合模型是领导共识节点对有效聚合模型进行参数聚合所生成的,第二聚合模型被参与共识节点共识通过;

参数调整模块,用于获取训练数据集,基于训练数据集对第二聚合模型进行参数调整,将参数调整后的第二聚合模型确定为初始模型,直至第二聚合模型的参数收敛。

本申请实施例一方面提供了一种基于区块链的数据处理装置,该装置包括:

第二模型聚合模块,用于获取参与共识节点发送的有效聚合模型,对有效聚合模型进行参数聚合,生成第二聚合模型;有效聚合模型是参与共识节点对接收到的第一聚合模型进行选取得到的;第一聚合模型为对应的业务组中的主业务节点对M个业务节点分别对应的初始模型进行参数聚合得到的;M为正整数;

聚合模型发送模块,用于将第二聚合模型发送至参与共识节点,以使参与共识节点对第二聚合模型进行共识;

模型上链模块,用于接收参与共识节点在对第二聚合模型共识通过时发送的模型共识通过消息,基于模型共识通过消息,将第二聚合模型上传至模型区块链中;

模型生成模块,用于检测第二聚合模型的模型参数的收敛性,若第二聚合模型的模型参数收敛,则向N个主业务节点广播模型完成消息;

模型更新模块,用于若第二聚合模型的模型参数不收敛,则向N个主业务节点广播模型更新消息,以使与N个主业务节点关联的业务组中的e个业务节点更新第二聚合模型,e为正整数。

本申请实施例一方面提供了一种计算机设备,包括处理器、存储器、输入输出接口;

处理器分别与存储器和输入输出接口相连,其中,输入输出接口用于接收数据及输出数据,存储器用于存储计算机程序,处理器用于调用该计算机程序,以使包含该处理器的计算机设备执行本申请实施例一方面中的基于区块链的数据处理方法。

本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本申请实施例一方面中的基于区块链的数据处理方法。

本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例一方面中的各种可选方式中提供的方法。

实施本申请实施例,将具有如下有益效果:

在本申请实施例中,存在N个业务组,每个业务组中的主业务节点可以获取该业务组中的其他业务节点的初始模型,对其他业务节点的初始模型进行参数聚合,得到聚合模型,其中,每个业务组可以得到一个聚合模型。参与共识节点可以从N个业务组的N个主业务节点中获取第一聚合模型,获取模型发布节点发送的测试模型,获取第一聚合模型与测试模型之间的模型相似度,将模型相似度大于或等于模型有效阈值的第一聚合模型确定为有效聚合模型;将有效聚合模型发送至领导共识节点。领导共识节点获取到该有效聚合模型后,对该有效聚合模型进行参数聚合,生成第二聚合模型,将该第二聚合模型发送至参与共识节点。参与共识节点获取领导共识节点发送的第二聚合模型,对第二聚合模型进行共识,若共识通过,则向领导共识节点发送模型共识通过消息。领导共识节点在获取到该模型共识通过消息后,将第二聚合模型上传至模型区块链中,向N个主业务节点发送模型更新消息。N个主业务节点获取到模型更新消息,基于该模型更新消息更新第二聚合模型,直至第二聚合模型收敛。通过该过程,实现对模型的两次参数聚合,一次基于业务组中的业务节点对初始模型进行聚合,生成第一聚合模型,将该第一聚合模型上传至区块链网络,具体发送至参与共识节点,使得参与共识节点所需处理验证的模型的数据量减少,减少了参与共识节点的工作量,一次是领导共识节点对第一聚合模型进行参数聚合,生成第二聚合模型,使得领导共识节点可以在无需获取各个业务节点的原始数据的情况下,实现对模型的聚合训练,提高了数据处理的安全性。而且,参与共识节点在模型训练过程中会进行多次验证,基于模型发布节点发送的测试模型,对第一聚合模型进行筛选,得到有效聚合模型,由于该模型发布节点为发布该模型训练任务的节点,即最终训练好的模型要尽可能地满足模型发布节点的需求,因此,通过与模型发布节点发送的测试模型进行匹配,对第一聚合模型进行筛选,可以提高模型训练的准确性;对领导共识节点生成的第二聚合模型进行共识验证,以确保最终训练好的模型得到大多数参与共识节点的认可,从而提高模型的准确性,提高数据处理的效率及可靠性。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1a是本申请实施例提供的一种基于区块链的数据处理的网络交互架构图;

图1b是本申请实施例提供的一种交通场景的网络交互架构图;

图2是本申请实施例提供的一种基于区块链的数据处理的场景示意图;

图3是本申请实施例提供的一种基于区块链的数据处理的方法流程图;

图4是本申请实施例提供的一种对第二聚合模型的共识场景示意图;

图5是本申请实施例提供了一种业务节点数据处理的方法流程图;

图6是本申请实施例提供的一种领导共识节点的数据处理的方法流程图;

图7是本申请实施例提供的一种基于区块链的数据处理方法的交互流程图;

图8是本申请实施例提供的一种业务组划分场景示意图;

图9是本申请实施例提供的一种模型参数聚合场景示意图;

图10是本申请实施例提供的一种模型训练场景示意图;

图11是本申请实施例提供的一种模型训练的迭代过程示意图;

图12a是本申请实施例提供的一种基于区块链的数据处理装置示意图;

图12b是本申请实施例提供的一种基于区块链的数据处理的主业务节点装置示意图;

图12c是本申请实施例提供的一种基于区块链的数据处理的领导共识节点装置示意图;

图13是本申请实施例提供的一种计算机设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

其中,在本申请实施例中,该基于区块链的数据处理方法涉及区块链技术,而且在进行数据处理过程中会产生大量的数据,因此,可以基于大数据领域中的数据传输技术,实现各个节点(如业务节点、参与共识节点及领导共识节点等)之间的数据交互,以提高本申请实施例中的数据处理的效率。

其中,云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池。

大数据(Big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。随着云时代的来临,大数据也吸引了越来越多的关注,大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。

在本申请实施例中,请参见图1a,图1a是本申请实施例提供的一种基于区块链的数据处理的网络交互架构图。其中,在本申请中,存在多种不同的节点,包括模型发布节点、业务节点及共识节点等,其中,该业务节点可以组成多个业务组,每个业务组的业务节点中存在一个主业务节点,共识节点包括参与共识节点与领导共识节点。具体的,如图1a所示,业务网络101包括N个业务组,包括业务组101a及业务组101b等,其中,该业务组101a包括业务节点1011、业务节点1012及业务节点1013等,业务组101b包括业务节点1014、业务节点1015及业务节点1016等,在一种实施例中,假定该业务节点1011为业务组101a中的主业务节点,业务节点1015为业务组101b中的主业务节点,N为正整数。其中,以业务组101a为例,该业务节点1011获取业务节点1011对应的初始模型、业务节点1012对应的初始模型及业务节点1013对应的初始模型等,对业务节点1011对应的初始模型、业务节点1012对应的初始模型及业务节点1013对应的初始模型等进行参数聚合,得到待验证聚合模型1;同理,由业务组101b中的业务节点1015对业务节点1014对应的初始模型、业务节点1015对应的初始模型及业务节点1016对应的初始模型等进行参数聚合,生成待验证聚合模型2;…,直至得到N个业务组分别对应的待验证聚合模型。N个业务组分别对应的主业务节点将待验证聚合模型发送至参与共识网络102。

其中,参与共识网络102中的参与共识节点可以从来自N个业务组的N个主业务节点中获取第一聚合模型,其中,该参与共识网络102中包括参与共识节点102a、参与共识节点102b及参与共识节点102c等,以参与共识节点102a为例,该参与共识节点102a可以从来自N个业务组的N个主业务节点中获取第一聚合模型,获取模型发布节点所发送的测试模型,该测试模型是模型发布节点生成的一个小型且质量一般的模型,是基于该模型发布节点中的发布测试数据集进行训练得到的,换句话说,该测试模型是模型发布节点所生成的一个期望中的模型,该测试模型的泛化性较差,可以作为参与共识节点对第一聚合模型进行筛选的参考模型。参与共识节点102a获取第一聚合模型与测试模型之间的模型相似度,将模型相似度大于或等于模型有效阈值的第一聚合模型确定为有效聚合模型。同理,其他参与共识节点(如参与共识节点102b及参与共识节点102c等)也可以确定有效聚合模型,各个参与共识节点将共识通过的有效聚合模型发送至领导共识节点103。其中,该领导共识节点103与参与共识网络102组成共识网络,领导共识节点103获取到有效聚合模型后,对有效聚合模型进行参数聚合,生成第二聚合模型,并将第二聚合模型广播至参与共识网络102中的各个参与共识节点(如参与共识节点102a、参与共识节点102b及参与共识节点102c等),各个参与共识节点对该第二聚合模型进行共识,若共识通过,则向领导共识节点103发送模型共识通过消息,领导共识节点103基于该模型共识通过消息,将第二聚合模型上传至模型区块链中,向N个主业务节点发送模型更新消息。通过主业务节点对初始模型进行参数聚合,生成第一聚合模型,使得第一聚合模型在一定程度上具有一定的泛化性,减少共识网络中的参与共识节点的工作量;通过参与共识节点对第一聚合模型进行筛选,可以识别低质量的第一聚合模型,并将低质量的第一聚合模型从模型更新过程中删除,从而提高模型聚合的准确性;通过领导共识节点对有效聚合模型进行参数聚合,生成第二聚合模型,实现对模型的训练,使得各个业务节点无需将业务数据集发送给别的节点,也可以实现基于各个业务节点分别对应的业务数据集训练模型,提高数据的隐私保护效率,提高数据处理的安全性及可靠性。

其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。

区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。

平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。

可选的,该业务节点可以是交通工具,参与共识节点及领导共识节点可以是路边单元(Road Side Unit,RSU)等,而模型发布节点可以为一个机构或一个用户等,在此不做限制。具体如图1b所示,图1b是本申请实施例提供的一种交通场景的网络交互架构图,业务网络105可以包括业务组105a及业务组105b等,业务组105a中的业务节点可以包括但不限于交通工具1051、交通工具1052及交通工具1053等,业务组105b中的业务节点可以包括但不限于交通工具1054、交通工具1055及交通工具1056等。参与共识网络106中的参与共识节点可以包括但不限于路边单元106a、路边单元106b及路边单元106c等,该参与共识网络106中的参与共识节点可以与业务网络105中的业务节点进行数据交互。其中,该领导共识节点可以为路边单元107,该模型发布节点108可以与业务网络105及参与共识网络106进行数据交互。进一步地,该业务网络105、参与共识网络106、领导共识节点107及模型发布节点108之间的数据交互过程,即本申请所实现的基于区块链的数据处理过程可以参见图1a中的具体描述,在此不再进行赘述。

具体的,请参见图2,图2是本申请实施例提供的一种基于区块链的数据处理的场景示意图。如图2所示,主业务节点201对获取到的初始模型(如初始模型2021、初始模型2022及初始模型2023等)进行参数聚合,生成待验证聚合模型2031,将该待验证聚合模型2031发送至参与共识节点204。参与共识节点204获取到该主业务节点201发送的待验证聚合模型2031,同理,获取到其他主业务节点所发送的待验证聚合模型2032及待验证聚合模型203N等,参与共识节点204从待验证聚合模型中获取第一聚合模型,对第一聚合模型与测试模型进行匹配,将与测试模型的模型相似度大于或等于模型有效阈值的第一聚合模型,确定为有效聚合模型205,假定该有效聚合模型205包括待验证聚合模型2031(也称为第一聚合模型2031)、待验证聚合模型2033(也称为第一聚合模型2033)及待验证聚合模型203N(也称为第一聚合模型203N)等,换句话说,通过验证的待验证聚合模型可以称为第一聚合模型,即待验证聚合模型与第一聚合模型为模型在处于不同验证状态下的名称。

进一步地,参与共识节点204可以将有效聚合模型205发送至领导共识节点206,领导共识节点206可以对有效聚合模型205进行参数聚合,生成第二聚合模型207,将第二聚合模型207发送至参与共识节点204,参与共识节点204对该第二聚合模型207进行共识,若共识通过,则向领导共识节点206发送模型共识通过消息,领导共识节点206可以基于该模型共识通过消息,根据第二聚合模型207生成模型交易区块2081,将模型交易区块2081上传至模型区块链208中,向包括主业务节点201在内的N个主业务节点发送模型更新消息,以使N个主业务节点所在的业务组中的业务节点可以基于该模型更新消息,对第二聚合模型207进行模型更新,直至得到参数收敛的模型,实现对模型的训练,提高数据处理的安全性。

可以理解的是,本申请实施例中所提及的各个节点(如业务节点、参与共识节点、领导共识节点或模型发布节点等)可以是一种计算机设备,本申请实施例中的计算机设备包括但不限于终端设备或服务器。换句话说,计算机设备可以是服务器或终端设备,也可以是服务器和终端设备组成的系统。其中,以上所提及的终端设备可以是一种电子设备,包括但不限于手机、平板电脑、台式电脑、笔记本电脑、掌上电脑、车载设备、增强现实/虚拟现实(Augmented Reality/Virtual Reality,AR/VR)设备、头盔显示器、智能电视、可穿戴设备、智能音箱、数码相机、摄像头及其他具备网络接入能力的移动互联网设备(mobileinternet device,MID)等。其中,以上所提及的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、车路协同、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。

可选的,本申请实施例中所涉及的数据可以存储在计算机设备中,或者可以基于云存储技术对该数据进行存储,在此不做限制。

进一步地,请参见图3,图3是本申请实施例提供的一种基于区块链的数据处理的方法流程图。如图3所示,以一个参与共识节点为例进行描述,换句话说,在本申请实施例中,该基于区块链的数据处理方法的执行主体为参与共识节点,在图3所描述的方法实施例中,该基于区块链的数据处理过程包括如下步骤:

步骤S301,从来自N个业务组的N个主业务节点中获取第一聚合模型,获取模型发布节点发送的测试模型。

在本申请实施例中,计算机设备A从来自N个业务组的N个主业务节点中获取第一聚合模型,获取模型发布节点发送的测试模型。该第一聚合模型为主业务节点i对业务组i中的M个业务节点分别对应的初始模型进行参数聚合得到的模型,该N个业务组包括业务组i,M个业务节点包括主业务节点i,N与M均为正整数,i为小于或等于N的正整数。其中,该计算机设备A可以是参与共识网络中的任意一个参与共识节点。计算机设备A可以获取来自N个业务组的N个主业务节点分别对应的业务节点公钥,根据N个主业务节点分别对应的业务节点公钥,生成N个主业务节点分别对应的第一验证签名,具体的,计算机设备A可以获取来自N个业务组的N个主业务节点分别发送的待验证聚合模型,根据N个主业务节点分别对应的业务节点公钥生成待验证聚合模型的第一验证签名,例如,该N个主业务节点中包括主业务节点i,计算机设备A根据主业务节点i的业务节点公钥对主业务节点i的待验证聚合模型进行加密处理,生成该针对该待验证聚合模型的第一验证签名。进一步地,计算机设备A可以获取N个主业务节点分别发送的待验证聚合模型携带的业务节点签名,删除业务节点签名与第一验证签名不同的主业务节点发送的待验证聚合模型,将删除后所剩余的待验证聚合模型确定为第一聚合模型。

例如,假定N为5,即存在5个业务组,每个业务组中存在一个主业务节点,计算机设备A采用主业务节点1的第一验证签名对主业务节点1的待验证聚合模型的业务节点签名进行验证,采用主业务节点2的第一验证签名对主业务节点2的待验证聚合模型的业务节点签名进行验证,采用主业务节点3的第一验证签名对主业务节点3的待验证聚合模型的业务节点签名进行验证,采用主业务节点4的第一验证签名对主业务节点4的待验证聚合模型的业务节点签名进行验证,采用主业务节点5的第一验证签名对主业务节点5的待验证聚合模型的业务节点签名进行验证,确定主业务节点1的第一验证签名与业务节点签名不同,主业务节点4的第一验证签名与业务节点签名不同,则删除主业务节点1发送的待验证聚合模型及主业务节点4的待验证聚合模型,将主业务节点2发送的待验证聚合模型、主业务节点3发送的待验证聚合模型及主业务节点5的待验证聚合模型确定为第一聚合模型。

进一步地,计算机设备A获取模型发布节点发送的测试模型,该测试模型是模型发布节点训练得到的一个受认可的简易模型,计算机设备A可以基于该测试模型对第一聚合模型进行简单筛选。

步骤S302,获取第一聚合模型与测试模型之间的模型相似度,将模型相似度大于或等于模型有效阈值的第一聚合模型确定为有效聚合模型。

在本申请实施例中,计算机设备A可以获取第一聚合模型的第一聚合参数,获取测试模型的测试模型参数,对比该第一聚合参数与测试模型参数,获取第一聚合参数与测试模型参数的参数相似度,将参数相似度确定为第一聚合模型与测试模型之间的模型相似度。进一步,将模型相似度大于或等于模型有效阈值的第一聚合模型确定为有效聚合模型,该有效聚合模型的数量为K个,K为正整数。

可选的,计算机设备A可以将模型相似度大于或等于模型有效阈值的第一聚合模型确定为待验证聚合模型,将该待验证聚合模型广播至h个参与共识节点,以使h个参与共识节点对待验证聚合模型进行共识,若共识通过,则将待验证聚合模型确定为有效聚合模型,执行步骤S303;可选的,计算机设备A可以对计算机设备A中共识通过的待验证聚合模型与h个参与共识节点中共识通过的待验证聚合模型进行整合,确定有效聚合模型。若对待验证聚合模型共识不通过,则获取h个参与共识节点所确定的待验证聚合模型,对h个参与共识节点所确定的待验证聚合模型进行共识整合,得到共识通过的待验证聚合模型,将共识通过的待验证聚合模型确定为有效聚合模型,执行步骤S303。

步骤S303,将有效聚合模型发送至领导共识节点,以使领导共识节点对有效聚合模型进行参数聚合,生成第二聚合模型。

在本申请实施例中,计算机设备A将有效聚合模型发送至领导共识节点,领导共识节点获取到有效聚合模型,对该有效聚合模型进行参数聚合,生成第二聚合模型,将该第二聚合模型广播至(h+1)个参与共识节点,该(h+1)个参与共识节点包括计算机设备A与上述h个参与共识节点。

步骤S304,获取领导共识节点发送的第二聚合模型,对第二聚合模型进行共识,若共识通过,则向领导共识节点发送模型共识通过消息。

在本申请实施例中,计算机设备A可以获取领导共识节点发送的第二聚合模型,对第二聚合模型进行共识,若共识通过,则向领导共识节点发送模型共识通过消息,以使领导共识节点基于模型共识通过消息,将第二聚合模型上传至模型区块链中,向N个主业务节点发送模型更新消息。

可选的,计算机设备A可以获取领导共识节点发送的模型交易区块,获取领导共识节点的领导节点公钥;从模型交易区块中获取领导共识节点的领导节点签名及第二聚合模型,采用领导节点公钥生成第二聚合模型的第二验证签名,对比领导节点签名及第二验证签名,若第二验证签名与领导节点签名不同,则向领导共识节点发送节点信息异常消息;若第二验证签名与领导节点签名相同,则对第二聚合模型进行共识。

进一步地,计算机设备A可以获取模型发布节点发送的发布测试数据集。在第一共识阶段,计算机设备A可以基于发布测试数据集对第二聚合模型进行验证,根据验证结果生成针对第二聚合模型的第一验证结果,同理,h个参与共识节点可以基于发布测试数据集对第二聚合模型进行验证,根据验证结果生成针对第二聚合模型的第二验证结果;获取h个参与共识节点发送的针对第二聚合模型的第二验证结果,根据第一验证结果与第二验证结果,确定第一投票数量;h为正整数,其中,可以认为在本申请实施例中,存在(h+1)个参与共识节点,包括计算机设备A及上述h个参与共识节点。该(h+1)个参与共识节点可以对数据进行共识,该h个参与共识节点可以认为是参与共识网络中除计算机设备A之外的参与共识节点。计算机设备A可以根据第一投票数量生成第一投票结果,将第一投票结果广播至h个参与共识节点。

在第二共识阶段,计算机设备A可以获取h个参与共识节点发送的第二投票结果,根据第一投票结果与第二投票结果,确定第二投票数量。若第二投票数量大于或等于共识通过阈值,则确定对第二聚合模型共识通过;若第二投票数量小于共识通过阈值,则确定对第二聚合模型共识不通过,向领导共识节点发送交易数据异常消息。其中,该第二投票数量可以是基于共识机制所确定的,共识机制是指通过特殊节点(即共识节点)的投票,在很短的时间内完成对交易数据的验证和确认的机制,对一笔交易,如果利益不相干的若干个节点能够达成共识,就可以认为全网对此也能够达成共识。其中,该共识机制可以是基于委派拜占庭容错(Delegated Byzantine Fault Tolerant,dBFT)算法的机制,也可以是基于实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)算法的机制等,在此不做限制。例如,该共识机制为基于拜占庭2/3共识算法的机制,即当参与共识网络中存在2/3的参与共识节点认可一个交易,则表示对该交易共识通过,此时,该共识通过阈值可以为(h+1)*2/3,当第二投票数量大于或等于(h+1)*2/3时,确定对第二聚合模型共识通过,当第二投票数量小于(h+1)*2/3时,确定对第二聚合模型共识不通过。假定h为5,即参与共识网络中存在6个参与共识节点,则当第二投票数量大于或等于4时,确定对第二聚合模型共识通过,当第二投票数量小于4时,确定对第二聚合模型共识不通过。

其中,该发布测试数据集包括发布测试样本及发布测试样本的样本标签,该发布测试数据集可以是一个小型且共享的数据集。在基于发布测试数据集对第二聚合模型进行验证,根据验证结果生成针对第二聚合模型的第一验证结果时,计算机设备A可以将发布测试样本输入第二聚合模型进行预测,得到发布测试样本对应的预测数据特征,获取预测数据特征与样本标签之间的差异值;若差异值小于或等于模型异常阈值,则将验证通过结果确定为针对第二聚合模型的第一验证结果;若差异值大于模型异常阈值,则将验证失败结果确定为针对第二聚合模型的第一验证结果。同理,h个参与共识节点可以得到针对第二聚合模型的第二验证结果。进一步地,在根据第一验证结果与第二验证结果,确定第一投票数量时,计算机设备A可以统计第一验证结果及第二验证结果中为验证通过结果的验证结果数量,将为验证通过结果的验证结果数量确定为第一投票数量。此时,第一投票数量用于表示在第一共识阶段中,参与共识网络中认可该第二聚合模型的参与共识节点的数量。可选的,该发布测试数据集可以包括r个发布测试样本及每个发布测试样本分别对应的样本标签,获取每个发布测试样本分别对应的预测数据特征,获取每个发布测试样本分别对应的预测数据特征与样本标签之间的子差异值,根据r个子差异值确定差异值。其中,r为正整数。

进一步地,若第一投票数量大于或等于投票共识阈值,则将投票成功结果确定为第一投票结果;若第一投票数量小于投票共识阈值,则将投票失败结果确定为第一投票结果。其中,该投票共识阈值可以是根据共识机制及参与共识网络中包括的参与共识节点的数量所确定的。计算机设备可以统计第一投票结果与第二投票结果中为投票成功结果的投票结果数量,将投票结果数量确定为第二投票数量。

举例来说,可以参见图4,图4是本申请实施例提供的一种对第二聚合模型的共识场景示意图。如图4所示,在第一共识阶段,参与共识节点4011基于发布测试数据集对第二聚合模型402进行验证,得到第二验证结果1,将第二验证结果1广播至除参与共识节点4011之外的参与共识节点,即计算机设备A、参与共识节点4012、…及参与共识节点401h;参与共识节点4012基于发布测试数据集对第二聚合模型402进行验证,得到第二验证结果2,将第二验证结果2广播至除参与共识节点4012之外的参与共识节点,即计算机设备A、参与共识节点4011、…及参与共识节点401h;…;参与共识节点401h基于发布测试数据集对第二聚合模型402进行验证,得到第二验证结果h,将第二验证结果h广播至除参与共识节点401h之外的参与共识节点;计算机设备A基于发布测试数据集对第二聚合模型进行验证,得到第一验证结果,将第一验证结果广播至除计算机设备A之外的参与共识节点。以计算机设备A(即图4中的参与共识节点403)为例,计算机设备A获取到参与共识节点4011发送的第二验证结果1、参与共识节点4012发送的第二验证结果2、…及参与共识节点401h发送的第二验证结果h,根据第一验证结果、第二验证结果1、第二验证结果2及第二验证结果h,确定第一投票数量,根据第一投票数量生成第一投票结果,将第一投票结果广播至h个参与共识节点,包括参与共识节点4011、参与共识节点4012、…及参与共识节点401h。同理,参与共识节点4011可以生成第二投票结果1,参与共识节点4012可以生成第二投票结果2,…参与共识节点401h可以生成第二投票结果h。计算机设备A根据第一投票结果及第二投票结果1、第二投票结果2、…及第二投票结果h,确定第二投票数量。若第二投票数量大于或等于共识通过阈值,则确定对第二聚合模型共识通过;若第二投票数量小于共识通过阈值,则确定对第二聚合模型共识不通过。

进一步地,在根据第一投票数量生成第一投票结果,将第一投票结果广播至h个参与共识节点时,计算机设备A可以根据第一投票数量生成第一投票结果;若第一投票结果为投票成功结果,则针对第一投票结果生成投票结果签名,将第一投票结果及投票结果签名广播至h个参与共识节点;若第一投票结果为投票失败结果,则将投票失败结果广播至h个参与共识节点。此时,若对第二聚合模型共识通过,向领导共识节点发送模型共识通过消息,则该模型共识通过消息包括投票结果为投票成功结果的参与共识节点的投票结果签名,例如,存在参与共识节点1、参与共识节点2、参与共识节点3、参与共识节点4及参与共识节点5,该参与共识节点1为计算机设备A,其中,参与共识节点1的第一投票结果为投票成功结果,参与共识节点2及参与共识节点4的第二投票结果为投票成功结果,则该模型共识通过消息中存在参与共识节点1的投票结果签名、参与共识节点2的投票结果签名及参与共识节点4的投票结果签名。领导共识节点可以基于模型共识通过消息中的投票结果签名,对该模型共识通过消息进行验证,提高数据的真实性及安全性。

在本申请实施例中,计算机设备A为参与共识节点,计算机设备A可以从来自N个业务组的N个主业务节点中获取第一聚合模型,获取模型发布节点发送的测试模型,该第一聚合模型为主业务节点i对业务组i中的M个业务节点分别对应的初始模型进行参数聚合得到的模型;获取第一聚合模型与测试模型之间的模型相似度,将模型相似度大于或等于模型有效阈值的第一聚合模型确定为有效聚合模型;将有效聚合模型发送至领导共识节点。领导共识节点获取到该有效聚合模型后,对该有效聚合模型进行参数聚合,生成第二聚合模型,将该第二聚合模型发送至参与共识节点。参与共识节点获取领导共识节点发送的第二聚合模型,对第二聚合模型进行共识,若共识通过,则向领导共识节点发送模型共识通过消息。领导共识节点在获取到该模型共识通过消息后,将第二聚合模型上传至模型区块链中,向N个主业务节点发送模型更新消息。N个主业务节点获取到模型更新消息,基于该模型更新消息更新第二聚合模型,直至第二聚合模型收敛。通过该过程,实现对模型的两次参数聚合,一次基于业务组中的业务节点对初始模型进行聚合,生成第一聚合模型,将该第一聚合模型上传至区块链网络,具体发送至参与共识节点,使得参与共识节点所需处理验证的模型的数据量减少,减少了参与共识节点的工作量,一次是领导共识节点对第一聚合模型进行参数聚合,生成第二聚合模型,使得领导共识节点可以在无需获取各个业务节点的原始数据的情况下,实现对模型的聚合训练,提高了数据处理的安全性。而且,参与共识节点在模型训练过程中会进行多次验证,基于模型发布节点发送的测试模型,对第一聚合模型进行筛选,得到有效聚合模型,由于该模型发布节点为发布该模型训练任务的节点,即最终训练好的模型要尽可能地满足模型发布节点的需求,因此,通过与模型发布节点发送的测试模型进行匹配,对第一聚合模型进行筛选,可以提高模型训练的准确性;对领导共识节点生成的第二聚合模型进行共识验证,以确保最终训练好的模型得到大多数参与共识节点的认可,从而提高模型的准确性,提高数据处理的效率及可靠性。而且,对模型的两次聚合,可以加快模型的收敛速度,从而提高模型训练效率。

进一步地,可以参见图5,图5是本申请实施例提供的一种业务节点数据处理的方法流程图。如图5所示,该方法的执行主体为主业务节点,该方法包括如下步骤:

步骤S501,获取M个业务节点分别对应的初始模型,对M个初始模型进行参数聚合,生成待验证聚合模型,将待验证聚合模型发送至参与共识节点。

在本申请实施例中,计算机设备B可以获取M个业务节点分别对应的初始模型,对M个初始模型进行参数聚合,生成待验证聚合模型,将该待验证聚合模型发送至参与共识节点,以使参与共识节点可以根据接收到的N个待验证聚合模型确定第一聚合模型,对第一聚合模型进行检测得到有效聚合模型,将有效聚合模型发送至领导共识节点,N个待验证聚合模型包括本地业务节点(即计算机设备B)发送的待验证聚合模型,M和N均为正整数。其中,计算机设备B为主业务节点。

步骤S502,接收领导共识节点发送的模型更新消息,基于模型更新消息从模型区块链中获取第二聚合模型。

在本申请实施例中,该第二聚合模型是领导共识节点对有效聚合模型进行参数聚合所生成的,第二聚合模型被参与共识节点共识通过。

步骤S503,获取训练数据集,基于训练数据集对第二聚合模型进行参数调整,将参数调整后的第二聚合模型确定为初始模型,直至第二聚合模型的参数收敛。

进一步地,可以参见图6,图6是本申请实施例提供的一种领导共识节点的数据处理的方法流程图。如图6所示,该方法的执行主体为领导共识节点,该方法包括如下步骤:

步骤S601,获取参与共识节点发送的有效聚合模型,对有效聚合模型进行参数聚合,生成第二聚合模型。

在本申请实施例中,该有效聚合模型是参与共识节点对接收到的第一聚合模型进行选取得到的,该第一聚合模型为对应的业务组中的主业务节点对M个业务节点分别对应的初始模型进行参数聚合得到的。

步骤S602,将第二聚合模型发送至参与共识节点,以使参与共识节点对第二聚合模型进行共识。

步骤S603,接收参与共识节点在对第二聚合模型共识通过时发送的模型共识通过消息,基于模型共识通过消息,将第二聚合模型上传至模型区块链中。

步骤S604,检测第二聚合模型的收敛性。

在本申请实施例中,计算机设备C可以检测第二聚合模型中的模型参数的收敛性,若该第二聚合模型中的模型参数收敛,则执行步骤S605;若该第二聚合模型中的模型参数不收敛,则执行步骤S606。其中,该计算机设备C为领导共识节点。

步骤S605,若第二聚合模型的模型参数收敛,则向N个主业务节点广播模型完成消息。

在本申请实施例中,若第二聚合模型的模型参数收敛,则向N个主业务节点广播模型完成消息,将模型参数收敛的第二聚合模型确定为目标聚合模型,将该目标聚合模型发送至模型发布节点。

步骤S606,若第二聚合模型的模型参数不收敛,则向N个主业务节点广播模型更新消息,以使与N个主业务节点关联的业务组中的e个业务节点更新第二聚合模型。

在本申请实施例中,e个业务节点可以认为是业务网络中的所有业务节点,e为正整数。

在本申请实施例中,图5与图6是针对图3所示方法在不同执行主体下所实现的方法,所产生的有益效果也可以参见图3所示,在此不再进行赘述。

进一步地,请参见图7,图7是本申请实施例提供的一种基于区块链的数据处理方法的交互流程图。如图7所示,该方法包括如下步骤:

步骤S701,参与共识节点选取领导共识节点。

在本申请实施例中,获取至少两个路边单元(Road Side Unit,RSU),将至少两个路边单元分别对应的路边单元信息发送至可信机构,以使可信机构基于至少两个路边单元分别对应的路边单元信息对至少两个路边单元信息进行身份验证,将身份验证结果发送至对应的路边单元,该可信机构是指具有权威性的机构,可以认为经过可信机构认可的数据为可信的,该可信机构可以是政府部门或由政府部门确定的权威机构等,在此不做限制。

进一步地,路边单元可以接收可信机构发送的身份验证结果,若身份验证结果为身份验证通过结果,则将身份验证结果为身份验证通过结果的路边单元确定为参与共识节点,即,路边单元接收到自己的身份验证结果为身份验证通过结果,则加入参与共识网络。可选的,至少两个路边单元可以基于可信机构发送的各个路边单元的身份验证结果,对至少两个路边单元进行身份认证,共同选取出参与共识节点。可选的,路边单元接收到身份验证通过结果,可以将路边单元的身份证书发送至可信机构,该身份证书是路边单元基于该路边单元的公钥所生成的,可以用于数据加密或进行数字签名等。可选的,可以升级确定为参与共识节点的路边单元的硬件配置,提升参与共识节点的计算功能及存储功能等,增加参与共识节点的存储资源及通信资源等,以使得参与共识节点可以对业务节点发送的数据进行处理。可选的,参与共识节点可以向共识账户中转移共识数据量,该共识数据量是参与共识节点进行数据共识的凭证,使得可以基于共识数据量对参与共识节点进行约束,降低参与共识节点执行恶意行为的可能性。

进一步地,至少两个参与共识节点中的任意一个参与共识节点,可以获取至少两个参与共识节点分别对应的参与节点信息,该参与节点信息包括参与节点网络带宽及参与节点空闲内存。采用节点选取算法对参与节点网络带宽及参与节点空闲内存进行转换,得到至少两个参与共识节点分别对应的节点质量;根据至少两个参与共识节点分别对应的节点质量,确定领导共识节点。可选的,该领导共识节点可以基于节点更新周期进行变化,该节点更新周期可以是一个模型训练周期,即,当训练好一个模型时,至少两个参与共识节点可以重新选取领导共识节点;该节点更新周期可以是模型迭代周期,即,当领导共识节点生成一个第二聚合模型时,至少两个参与共识节点可以重新选取领导共识节点;该节点更新周期还可以是预设时间段,即,每经过预设时间段的时长,至少两个参与共识节点可以重新选取领导共识节点等,在此不做限制。其中,至少两个参与共识节点中除领导共识节点之外的参与共识节点,可以认为是领导共识节点的追随共识节点。

步骤S702,参与共识节点获取业务节点的节点信息,将业务节点划分为N个业务组。

在本申请实施例中,参与共识节点可以获取e个业务节点的节点信息,根据e个业务节点中两两之间的节点关联系数,基于节点关联系数将e个业务节点划分为N个业务组,其中,该节点信息包括节点属性信息及距离信息。具体的,参与共识节点可以获取e个业务节点的节点属性信息,根据每个业务节点的节点属性信息生成节点属性矩阵。其中,该节点属性信息可以包括但不限于对应业务节点的行驶轨迹、行驶习惯、历史信誉、交通资源或行驶位置范围等,参与共识节点可以基于e个业务节点的节点属性信息,生成节点属性矩阵,e为正整数。其中,该节点属性信息包括s个节点属性,根据每个业务节点的节点属性信息生成节点属性矩阵,该节点属性矩阵的维度可以为s*e,此时,该节点属性矩阵的每一列对应一个业务节点的节点属性信息;节点属性矩阵的维度也可以为e*s,此时,该节点属性矩阵的每一行对应一个业务节点的节点属性信息,在此不做限制,s为正整数。其中,该历史信誉用于表示对应的业务节点的打分情况,例如,业务节点p给出业务节点q的历史信誉可以用于表示业务节点p对业务节点q在历史信誉方面的信任程度。可选的,参与共识节点也可以基于e个业务节点的节点属性信息,生成s个节点属性矩阵,此时,该节点属性矩阵的维度为e*e,每个节点属性矩阵用于表示对应的节点属性的相似度。

进一步地,参与共识节点可以获取e个业务节点中业务节点p与业务节点q之间的距离信息,根据业务节点p与业务节点q之间的距离信息生成距离属性矩阵;p为位于1至e之间正整数,q为位于1至e之间的正整数。其中,该距离属性矩阵的维度为e*e,该距离属性矩阵中第p行、第q列的参数用于表示业务节点p到业务节点q之间的距离信息。

进一步地,参与共识节点可以根据节点属性矩阵与距离属性矩阵,确定业务节点p与业务节点q之间的节点关联系数,建立节点关联系数大于或等于节点关联阈值的两个业务节点之间的关联关系,基于关联关系确定N个业务组;从N个业务组中分别选取一个主业务节点。其中,基于业务节点p与业务节点q之间的节点关联系数,可以生成节点信任矩阵,该节点信任矩阵中的参数用于表示对应的两个业务节点之间的节点关联系数。

其中,在根据节点属性矩阵与距离属性矩阵,确定业务节点p与业务节点q之间的节点关联系数时,参与共识节点可以根据节点属性矩阵,获取业务节点p的节点属性信息与业务节点q的节点属性信息之间的属性相似度;根据距离属性矩阵,确定业务节点p与业务节点q之间的距离属性数据,根据距离属性数据确定业务节点p与业务节点q之间的位置相似度;基于属性相似度及位置相似度确定业务节点p与业务节点q之间的节点关联系数。其中,参与共识节点可以获取业务节点p与业务节点q在每个节点属性方面的属性子相似度,对每个节点属性的属性子相似度进行加权处理,得到业务节点p与业务节点q之间的属性相似度。其中,参与共识节点可以将距离属性数据的倒数确定为业务节点p与业务节点q之间的位置相似度。进一步地,参与共识节点可以对业务节点p与业务节点q之间的属性相似度及位置相似度进行加权处理,得到业务节点p与业务节点q之间的节点关联系数。也就是说,该业务节点p与业务节点q之间的节点关联系数受到属性相似度与距离相似度的影响,因此,即使业务节点p与业务节点q之间的距离相近,也可能互不信任,即业务节点p与业务节点q的节点关联系数较小,从而提高业务节点之间关联关系确定的准确性。

可选的,参与共识节点可以获取e个业务节点之间的节点传播路径信息,该节点传播路径信息包括基于节点传播路径信息确定节点关联关系,基于节点关联关系、属性相似度及位置相似度等,生成节点信任矩阵,根据节点信任矩阵建立e个业务节点之间的关联关系,生成节点信任图谱,该节点信任图谱可以是单向图谱。其中,若存在业务节点p到业务节点q的节点传播路径,则基于业务节点p与业务节点q之间的属性相似度与位置相似度,确定业务节点p到业务节点q的节点关联系数;若不存在业务节点p到业务节点q的节点传播路径,则将默认关联系数确定为业务节点p到业务节点q的节点关联系数,该默认关联系数可以为0。例如,业务节点p向业务节点q发送了业务节点p的节点信息,则表示存在业务节点p到业务节点q的节点传播路径。参与共识节点可以基于节点信任图谱将e个业务节点划分为N个业务组,并确定每个业务组的主业务节点,将划分结果广播至e个业务节点。

举例来说,请参见图8,图8是本申请实施例提供的一种业务组划分场景示意图。如图8所示,假定e为6,即存在6个业务节点,分别为业务节点e1、业务节点e2、业务节点e3、业务节点e4、业务节点e5及业务节点e6,参与共识节点获取e个业务节点之间的节点传播路径信息,该节点传播路径信息包括“业务节点e1—>业务节点e4、业务节点e3—>业务节点e2、业务节点e3—>业务节点e6、业务节点e4—>业务节点e5、业务节点e5—>业务节点e2、业务节点e6—>业务节点e2、业务节点e6—>业务节点e5”,根据每个业务节点的节点属性信息生成节点属性矩阵8021,根据e个业务节点中任意两个业务节点之间的距离信息,生成距离属性矩阵8022,根据节点属性矩阵8021及距离属性矩阵8022,确定任意两个业务节点之间的节点关联系数,基于节点关联系数生成节点信任矩阵803,例如,该节点信任矩阵803中的第p行第q列的参数,可以表示由业务节点p到业务节点q的节点关联系数,当第p行第q列的参数大于或等于节点关联阈值时,可以认为业务节点p可以向业务节点q发送初始模型,即业务节点p认可业务节点q为自己的主业务节点。根据节点信任矩阵803,将e个业务节点划分为N个业务组,N小于或等于e,不同业务组之间可以是不相交的,也可以存在相交的业务节点。

例如,假定节点信任矩阵803中,“业务节点e1—>业务节点e4、业务节点e3—>业务节点e2、业务节点e3—>业务节点e6、业务节点e4—>业务节点e5、业务节点e5—>业务节点e2、业务节点e6—>业务节点e5”分别对应的节点关联系数大于或等于节点关联阈值,根据节点信任矩阵803建立e个业务节点之间的关联关系,生成节点信任图谱804,根据节点信任图谱804,可以将e个业务节点划分为N个业务组,在图8的示例中,N为4,得到业务组8051(包括主业务节点e2、业务节点e3及业务节点e5)、业务组8052(包括主业务节点e4及业务节点e1)、业务组8053(包括主业务节点e5、业务节点e4及业务节点e6)、业务组8054(包括主业务节点e6及业务节点e3)。

其中,该节点信任矩阵为行随机矩阵,并不一定是双重随机矩阵,也不一定具有对称性质,这主要是因为,只有业务节点p给出业务节点q的历史信誉时,业务节点p才会存在到业务节点q在历史信誉方面的属性子相似度,而可能出现业务节点p给出针对业务节点q的历史信誉,而业务节点q未给出针对业务节点p历史信誉的情况,再加上,节点传播路径信息中可能存在业务节点p到业务节点q的节点传播路径,而不存在业务节点q到业务节点p的节点传播路径的情况,因此,在本申请实施例中所得到的节点信任矩阵不一定具有对称性质,从而得到一个表示单向连接的节点信任图谱。

可选的,该过程也可以由业务节点所实现,例如,业务节点A获取到业务节点B发送的节点信息,业务节点A基于获取到的节点信息,确定与业务节点B之间的节点关联系数,将节点关联系数大于或等于节点关联阈值的业务节点B确定为主业务节点是业务节点A的业务组中的业务节点。

步骤S704,模型发布节点向业务节点发送待训练模型。

在本申请实施例中,模型发布节点向e个业务节点发送待训练模型,该e个业务节点包括N个主业务节点。

步骤S705,主业务节点对初始模型进行参数聚合,生成待验证聚合模型。

在本申请实施例中,每个业务节点针对待训练模型进行模型训练,生成初始模型,将该初始模型发送至主业务节点,具体的,每个业务节点查找自己所在业务组的主业务节点,将生成的初始模型发送至自己所在业务组的主业务节点。如图8中所示,业务节点e4生成初始模型,将初始模型发送至业务节点e5。其中,业务节点采用业务节点数据集D

其中,argmin是指使F

其中,η为模型的学习率,η可以取固定值,如经验学习率等,也可以是可变值,即随着模型的训练更新而更新,

其中,w′

举例来说,请参见图9,图9是本申请实施例提供的一种模型参数聚合场景示意图。如图9所示,存在M个业务节点,包括业务节点9011、业务节点9012、业务节点9013及业务节点9014等。业务节点9011基于该业务节点9011的业务节点数据集9021对待训练模型进行训练,生成初始模型9031;业务节点9012基于该业务节点9012的业务节点数据集9022对待训练模型进行训练,生成初始模型9032;业务节点9013基于该业务节点9013的业务节点数据集9023对待训练模型进行训练,生成初始模型9033;业务节点9014基于该业务节点9014的业务节点数据集9024对待训练模型进行训练,生成初始模型9034,…。其中,M个业务节点中包括主业务节点904,主业务节点904获取各个业务节点发送的初始模型,对M个初始模型进行参数聚合,生成第t个待验证聚合模型905,t为正整数,假定此处的参数聚合方式为

步骤S706,主业务节点向参与共识节点发送待验证聚合模型。

在本申请实施例中,主业务节点向参与共识节点发送的待验证聚合模型可以是收敛的。

步骤S707,参与共识节点获取第一聚合模型。

在本申请实施例中,参与共识节点对获取到的待验证聚合模型进行验签,将验签通过的待验证聚合模型,确定为第一聚合模型,以保障用于参数聚合的第一聚合模型是可靠的,生成第一聚合模型的主业务节点的身份信息无误,以提高模型训练的安全性及可靠性。

步骤S708,参与共识节点对第一聚合模型进行检测,确定有效聚合模型。

在本申请实施例中,参与共识节点获取第一聚合模型与测试模型之间的模型相似度,将模型相似度大于或等于模型有效阈值的第一聚合模型确定为有效聚合模型,使得删除了低质量的第一聚合模型,采用质量较高的有效聚合模型进行参数聚合,提高了模型训练的可靠性及准确性。

步骤S709,参与共识节点向领导共识节点发送有效聚合模型。

步骤S710,领导共识节点对有效聚合模型进行参数聚合,生成第二聚合模型。

在本申请实施例中,该参数聚合过程可以参见主业务节点对M个业务节点的初始模型的参数聚合过程,在此不再进行赘述。

步骤S711,领导共识节点向参与共识节点发送第二聚合模型。

步骤S712,参与共识节点对第二聚合模型进行共识。

在本申请实施例中,参与共识节点可以对第二聚合模型进行共识,得到针对第二聚合模型的共识结果,该过程可以参见图3中步骤S304所示,在此不再进行赘述。

步骤S713,参与共识节点向领导共识节点发送共识结果。

在本申请实施例中,领导共识节点获取到该共识结果,对该共识结果中包括的投票结果签名进行验证,确定该共识结果的可靠性。其中,若共识结果为针对第二聚合模型的共识通过结果,则执行步骤S714;若共识结果为针对第二聚合模型的共识不通过结果,则执行步骤S710,重新对有效聚合模型进行参数聚合,生成第二聚合模型。

步骤S714,若共识通过,领导共识节点将第二聚合模型添加至模型区块链中。

在本申请实施例中,若共识结果为共识通过结果,则领导共识节点可以将第二聚合模型添加至模型区块链中。

步骤S715,领导共识节点检测第二聚合模型的收敛性。

在本申请实施例中,第二聚合模型的模型参数收敛是指,在相邻两次或两次以上的迭代中所生成的第二聚合模型的模型参数之间的误差小于参数收敛阈值。若第二聚合模型的模型参数收敛,则执行步骤S716及步骤S717;若第二聚合模型的模型参数不收敛,则执行步骤S718。

步骤S716,若第二聚合模型的模型参数收敛,则领导共识节点向主业务节点发送模型完成消息。

在本申请实施例中,若第二聚合模型的模型参数收敛,则将该第二聚合模型确定为目标聚合模型,向主业务节点发送模型完整消息,该模型完整消息用于指示主业务节点针对待训练模型的训练过程已经完成。可选的,领导共识节点可以直接向e个业务节点广播模型完成消息,该领导共识节点中存储有e个业务节点分别对应的业务节点地址。

步骤S717,若第二聚合模型的模型参数收敛,则领导共识节点向模型发布节点发送目标聚合模型。

在本申请实施例中,若第二聚合模型的模型参数收敛,则领导共识节点将该第二聚合模型确定为目标聚合模型,向模型发布节点发送目标聚合模型。

其中,步骤S716与步骤S717可以同时执行,也可以依次执行,在依次执行时,步骤S716与步骤S717的执行顺序不做限制。其中,当步骤S716与步骤S717均执行完成,则结束本次的数据处理过程。

步骤S718,若第二聚合模型的模型参数不收敛,则领导共识节点向主业务节点发送模型更新消息。

在本申请实施例中,若第二聚合模型的模型参数不收敛,则领导共识节点向主业务节点发送模型更新消息,该模型更新消息用于指示主业务节点对第二聚合模型进行更新。

步骤S719,主业务节点基于模型更新消息更新第二聚合模型。

在本申请实施例中,主业务节点基于模型更新消息更新第二聚合模型,具体是根据训练数据集(即业务节点数据集)对第二聚合模型进行参数调整,将参数调整后的第二聚合模型作为初始模型,执行步骤S705至步骤S719,直至得到收敛的第二聚合模型,将收敛的第二聚合模型确定为目标聚合模型。

进一步地,领导共识节点可以获取各个参与共识节点的异常行为,若存在异常参与共识节点,则获取该异常参与共识节点的异常行为等级,基于该异常行为等级对异常参与共识节点进行退网处理,或者不返还共识数据量等,该异常参与共识节点为存在异常行为的参与共识节点,该异常参与共识节点经过除异常参与共识节点之外的参与共识节点进行共识。其中,可以基于异常行为次数及异常行为影响程度等划分异常行为等级,领导共识节点确定该异常参与共识节点所属的目标异常行为等级,基于该目标异常行为等级对应的处理方式,对该异常参与共识节点进行处理。其中,该处理方式包括但不限于在权限限制时间段内取消异常参与共识节点的共识权限、取消异常参与共识节点对该异常参与共识节点的共识数据量的所有权、对异常参与共识节点进行退网处理,或取消异常参与共识节点的数据访问权限等。通过该方式,降低参与共识节点执行恶意行为的概率,从而提高共识网络的安全性。

其中,该图7是针对图3、图5及图6的具体流程示意图,所实现的有益效果可以参见图3所示,在此不再进行赘述。

进一步地,可以参见图10。图10是本申请实施例提供的一种模型训练场景示意图。如图10所示,模型发布节点a1向e个业务节点广播待训练模型a11,以一个业务组为例,该业务组中包括业务节点b1、业务节点b2、业务节点b3及业务节点b4等,该业务节点b1采用业务节点b1中的业务节点数据集b11对待训练模型a11进行训练,进行参数调整b13,生成初始模型b12,同理,可以得到该业务组中其他业务节点的初始模型,该业务组中的主业务节点可以对各个业务节点的初始模型进行参数聚合,生成待验证聚合模型。主业务节点将待验证聚合模型发送至参与共识节点,包括参与共识节点c1、参与共识节点c2、参与共识节点c3及参与共识节点c4,各个参与共识节点可以对待验证聚合模型进行验签,获取第一聚合模型,对第一聚合模型进行验证,得到有效聚合模型,将有效聚合模型发送至领导共识节点c5。领导共识节点c5整合各个参与共识节点发送的有效聚合模型,采用领导训练数据集c51对有效聚合模型进行参数调整及参数聚合,生成第二聚合模型c52。对上述过程进行迭代,直至得到收敛的第二聚合模型,领导共识节点c5可以将收敛的第二聚合模型发送至模型发布节点a1。其中,该模型发布节点a1可以是机构或用户等,例如,车管部门、游戏服务器或交通监测机构等,在此不做限制。

进一步地,可以参见图11,图11是本申请实施例提供的一种模型训练的迭代过程示意图。如图11所示,该迭代过程包括如下步骤:

步骤S1101,b=1。

在本申请实施例中,将b置为1,表示开始对待训练模型的训练过程,开始第一次迭代。

步骤S1102,在第b次迭代时,业务节点采用业务节点数据集对待训练模型进行训练,生成初始模型。

在本申请实施例中,在第b次迭代时,业务节点采用业务节点数据集对待训练模型进行训练,生成初始模型,该待训练模型为模型发布节点所发送的模型,在该步骤中,存在e个业务节点,e个业务节点对待训练模型进行训练,生成e个初始模型。

步骤S1103,主业务节点对初始模型进行参数聚合,生成待验证聚合模型。

在本申请实施例中,主业务节点可以对该主业务节点所在业务组的M个业务节点的初始模型,进行参数聚合,生成待验证聚合模型。

步骤S1104,参与共识节点从待验证聚合模型中获取第一聚合模型,对第一聚合模型进行检测,获取有效聚合模型。

在本申请实施例中,参与共识节点对待验证聚合模型进行验签,将验签通过的待验证聚合模型确定为第一聚合模型,获取第一聚合模型与测试模型之间的模型相似度,将模型相似度大于或等于模型有效阈值的第一聚合模型确定为有效聚合模型。

步骤S1105,领导共识节点对有效聚合模型进行参数聚合,生成第二聚合模型。

步骤S1106,参与共识节点对第二聚合模型进行共识,得到针对第二聚合模型的共识结果。

在本申请实施例中,若该针对第二聚合模型的共识结果为共识通过结果,则执行步骤S1107;若针对第二聚合模型的共识结果为共识不通过结果,则返回执行步骤S1105。

步骤S1107,领导共识节点检测第二聚合模型的收敛性。

在本申请实施例中,领导共识节点可以检测第二聚合模型的收敛性,可选的,一种收敛性确定的方式中,领导共识节点可以获取第(b-1)次迭代生成的第二聚合模型的模型参数与第b次迭代生成的第二聚合模型参数之间的第一参数差异值,获取第(b-2)次迭代生成的第二聚合模型的模型参数与第(b-1)次迭代生成的第二聚合模型的模型参数之间的第二参数差异值,获取第一参数差异值与第二参数差异值的相似度,若第一参数差异值与第二参数差异值的相似度小于参数差异阈值,则确定第二聚合模型的模型参数收敛,否则确定第二聚合模型的模型参数不收敛,此时,只有开始第3次迭代时,第二聚合模型才可能会检测到收敛的情况,因为最小的迭代次数为1;可选的,也可以获取两个以上的参数差异值进行比较,以检测第二聚合模型的收敛性。可选的,一种收敛性确定的方式中,领导共识节点可以获取第(b-1)次迭代生成的第二聚合模型的模型参数与第b次迭代生成的第二聚合模型参数之间的第一参数差异值,若该第一参数差异值小于参数收敛阈值,则确定第二聚合模型的模型参数收敛,否则确定第二聚合模型的模型参数不收敛。其中,以上为例举的收敛性确定方式,其他可以检测模型收敛性的方式,也可以应用于本申请中,在此不做限制。

其中,若第二聚合模型的模型参数不收敛,则执行步骤S1108;若第二聚合模型的模型参数收敛,则执行步骤S1110。

步骤S1108,业务节点将第二聚合模型确定为新的待训练模型。

在本申请实施例中,业务节点可以将第二聚合模型确定为新的待训练模型,执行步骤S1109。

步骤S1109,b=b+1。

在本申请实施例中,将b的值加一,表示开始下一次迭代,返回执行步骤S1102。

可选的,在步骤S1108中,业务节点也可以采用业务节点数据集对第二聚合模型进行参数更新,生成新的初始模型,执行步骤S1109,在步骤S1109中,将b的值加一后,执行步骤S1103。这两种方式所实现的过程本质上是相同的。

步骤S1110,领导共识节点将第二聚合模型确定为目标聚合模型。

在本申请实施例中,该目标聚合模型为最终所需得到的模型,领导共识节点可以将目标聚合模型发送至模型发布节点中。

通过图11中的各个步骤,实现对模型训练的多次迭代,以训练生成最终的目标聚合模型,提高目标聚合模型的准确性。

其中,本申请实施例可以应用于交通领域或游戏领域等,在此不做限制。例如,模型发布节点为交通监测机构,该交通监测机构向业务节点发送待训练模型,向参与共识节点发送发布测试数据集,以使业务节点、参与共识节点及领导共识节点等对待训练模型进行多次迭代更新,生成收敛的第二聚合模型,将收敛的第二聚合模型确定为目标聚合模型。交通监测机构对该目标聚合模型进行部署,监测交通工具的行驶行为,基于目标聚合模型对该行驶行为进行预测,得到该交通工具的行为检测结果,若该行为检测结果为行为异常结果,则向交通工具发送处罚提示消息。

例如,模型发布节点为游戏监测部门,则该业务节点可以是该游戏的游戏用户(如使用用户及测试用户等)所在的用户设备等,该参与共识节点可以为支持该游戏运行的服务器等。此时,该节点属性信息可以包括游戏用户的用户行为操作、用户游戏资源变化数据及用户社交关系等;业务节点p与业务节点q之间的距离信息可以是根据业务节点p与业务节点q的共同任务数据所确定的,如组队数据等。该游戏监测部门向业务节点发送待训练模型,向参与共识节点发送发布测试数据集,以使业务节点、参与共识节点及领导共识节点等对待训练模型进行多次迭代更新,生成收敛的第二聚合模型,将收敛的第二聚合模型确定为目标聚合模型。游戏监测部门对该目标聚合模型进行部署,监测游戏用户的游戏行为,基于目标聚合模型对该游戏行为进行预测,得到该游戏用户的游戏行为检测结果,该游戏行为检测结果用于表示该游戏用户是否违规,若游戏行为检测结果为游戏违规结果,则根据该游戏违规结果,对该游戏用户进行处罚。

进一步地,请参见图12a,图12a是本申请实施例提供的一种基于区块链的数据处理装置示意图。该基于区块链的数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码等),例如该基于区块链的数据处理装置可以为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。如图12a所示,该基于区块链的数据处理装置120a可以用于图3所对应实施例中的计算机设备,具体的,该装置可以包括:第一模型获取模块11、模型筛选模块12、有效模型发送模块13、第二模型获取模块14及模型共识模块15。

第一模型获取模块11,用于从来自N个业务组的N个主业务节点中获取第一聚合模型,获取模型发布节点发送的测试模型;第一聚合模型为主业务节点i对业务组i中的M个业务节点分别对应的初始模型进行参数聚合得到的模型,N个业务组包括业务组i,M个业务节点包括主业务节点i;N与M均为正整数;i为小于或等于N的正整数;

模型筛选模块12,用于获取第一聚合模型与测试模型之间的模型相似度,将模型相似度大于或等于模型有效阈值的第一聚合模型确定为有效聚合模型;

有效模型发送模块13,用于将有效聚合模型发送至领导共识节点,以使领导共识节点对有效聚合模型进行参数聚合,生成第二聚合模型;

第二模型获取模块14,用于获取领导共识节点发送的第二聚合模型;

模型共识模块15,用于对第二聚合模型进行共识,若共识通过,则向领导共识节点发送模型共识通过消息,以使领导共识节点基于模型共识通过消息,将第二聚合模型上传至模型区块链中,向N个主业务节点发送模型更新消息。

其中,该第一模型获取模块11,包括:

第一签名生成单元111,用于获取来自N个业务组的N个主业务节点分别对应的业务节点公钥,根据N个主业务节点分别对应的业务节点公钥,生成N个主业务节点分别对应的第一验证签名;

模型删除单元112,用于获取N个主业务节点分别发送的待验证聚合模型携带的业务节点签名,删除业务节点签名与第一验证签名不同的主业务节点发送的待验证聚合模型,将删除后所剩余的待验证聚合模型确定为第一聚合模型。

其中,该第二模型获取模块14,包括:

区块获取单元141,用于获取领导共识节点发送的模型交易区块,获取领导共识节点的领导节点公钥;

第二签名生成单元142,用于从模型交易区块中获取领导共识节点的领导节点签名及第二聚合模型,采用领导节点公钥生成第二聚合模型的第二验证签名;

异常反馈单元143,用于若第二验证签名与领导节点签名不同,则向领导共识节点发送节点信息异常消息;

共识调用单元144,用于若第二验证签名与领导节点签名相同,则执行对第二聚合模型进行共识的步骤。

其中,该模型共识模块15,包括:

测试数据获取单元151,用于获取模型发布节点发送的发布测试数据集;

模型验证单元152,用于在第一共识阶段,基于发布测试数据集对第二聚合模型进行验证,根据验证结果生成针对第二聚合模型的第一验证结果;

第一投票确定单元153,用于获取h个参与共识节点发送的针对第二聚合模型的第二验证结果,根据第一验证结果与第二验证结果,确定第一投票数量;h为正整数;

投票广播单元154,用于根据第一投票数量生成第一投票结果,将第一投票结果广播至h个参与共识节点;

第二投票确定单元155,用于在第二共识阶段,获取h个参与共识节点发送的第二投票结果,根据第一投票结果与第二投票结果,确定第二投票数量;

投票检测单元156,用于若第二投票数量大于或等于共识通过阈值,则确定对第二聚合模型共识通过;

该投票检测单元156,还用于若第二投票数量小于共识通过阈值,则确定对第二聚合模型共识不通过,向领导共识节点发送交易数据异常消息。

其中,发布测试数据集包括发布测试样本及发布测试样本的样本标签;

该模型验证单元152,包括:

差异预测子单元1521,用于将发布测试样本输入第二聚合模型进行预测,得到发布测试样本对应的预测数据特征,获取预测数据特征与样本标签之间的差异值;

阈值匹配子单元1522,用于若差异值小于或等于模型异常阈值,则将验证通过结果确定为针对第二聚合模型的第一验证结果;

该阈值匹配子单元1522,还用于若差异值大于模型异常阈值,则将验证失败结果确定为针对第二聚合模型的第一验证结果;

该第一投票确定单元153,具体用于:

统计第一验证结果及第二验证结果中为验证通过结果的验证结果数量,将为验证通过结果的验证结果数量确定为第一投票数量。

其中,该投票广播单元154,包括:

成功确定子单元1541,用于若第一投票数量大于或等于投票共识阈值,则将投票成功结果确定为第一投票结果;

失败确定子单元1542,用于若第一投票数量小于投票共识阈值,则将投票失败结果确定为第一投票结果;

该第二投票确定单元155,具体用于:

统计第一投票结果与第二投票结果中为投票成功结果的投票结果数量,将投票结果数量确定为第二投票数量。

其中,该投票广播单元154,包括:

结果生成子单元1543,用于根据第一投票数量生成第一投票结果;

节点签名子单元1544,用于若第一投票结果为投票成功结果,则针对第一投票结果生成投票结果签名,将第一投票结果及投票结果签名广播至h个参与共识节点;

投票失败子单元1545,用于若第一投票结果为投票失败结果,则将投票失败结果广播至h个参与共识节点。

其中,该装置120a还包括:

路边验证模块16,用于获取至少两个路边单元,将至少两个路边单元分别对应的路边单元信息发送至可信机构,以使可信机构基于至少两个路边单元分别对应的路边单元信息对至少两个路边单元信息进行身份验证,将身份验证结果发送至对应的路边单元;

共识节点确定模块17,用于接收可信机构发送的身份验证结果,若身份验证结果为身份验证通过结果,则将身份验证结果为身份验证通过结果的路边单元确定为参与共识节点。

其中,该装置120a还包括:

节点信息获取模块18,用于获取至少两个参与共识节点分别对应的参与节点信息;参与节点信息包括参与节点网络带宽及参与节点空闲内存;

节点质量确定模块19,用于采用节点选取算法对参与节点网络带宽及参与节点空闲内存进行转换,得到至少两个参与共识节点分别对应的节点质量;

领导节点确定模块20,用于根据至少两个参与共识节点分别对应的节点质量,确定领导共识节点。

其中,该装置120a还包括:

属性矩阵生成模块21,用于获取e个业务节点的节点属性信息,根据每个业务节点的节点属性信息生成节点属性矩阵;

距离矩阵生成模块22,用于获取e个业务节点中业务节点p与业务节点q之间的距离信息,根据业务节点p与业务节点q之间的距离信息生成距离属性矩阵;p为位于1至e之间正整数,q为位于1至e之间的正整数;

关联系数确定模块23,用于根据节点属性矩阵与距离属性矩阵,确定业务节点p与业务节点q之间的节点关联系数;

组划分模块24,用于建立节点关联系数大于或等于节点关联阈值的两个业务节点之间的关联关系,基于关联关系确定N个业务组;

主节点选取模块25,用于从N个业务组中分别选取一个主业务节点。

其中,该关联系数确定模块23,包括:

属性匹配单元231,用于根据节点属性矩阵,获取业务节点p的节点属性信息与业务节点q的节点属性信息之间的属性相似度;

距离匹配单元232,用于根据距离属性矩阵,确定业务节点p与业务节点q之间的距离属性数据,根据距离属性数据确定业务节点p与业务节点q之间的位置相似度;

系数确定单元233,用于基于属性相似度及位置相似度确定业务节点p与业务节点q之间的节点关联系数。

进一步地,请参见图12b,图12b是本申请实施例提供的一种基于区块链的数据处理的主业务节点装置示意图。该基于区块链的数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码等),例如该基于区块链的数据处理装置可以为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。如图12b所示,该基于区块链的数据处理装置120b可以用于图5所对应实施例中的计算机设备,具体的,该装置可以包括:第一模型聚合模块31、链中获取模块32及参数调整模块33。

第一模型聚合模块31,用于获取M个业务节点分别对应的初始模型,对M个初始模型进行参数聚合,生成待验证聚合模型,将待验证聚合模型发送至参与共识节点,以使参与共识节点根据接收到的N个待验证聚合模型确定第一聚合模型,对第一聚合模型进行检测得到有效聚合模型,将有效聚合模型发送至领导共识节点,N个待验证聚合模型包括本地业务节点发送的待验证聚合模型;M和N均为正整数;

链中获取模块32,用于接收领导共识节点发送的模型更新消息,基于模型更新消息从模型区块链中获取第二聚合模型;第二聚合模型是领导共识节点对有效聚合模型进行参数聚合所生成的,第二聚合模型被参与共识节点共识通过;

参数调整模块33,用于获取训练数据集,基于训练数据集对第二聚合模型进行参数调整,将参数调整后的第二聚合模型确定为初始模型,直至第二聚合模型的参数收敛。

进一步地,请参见图12c,图12c是本申请实施例提供的一种基于区块链的数据处理的领导共识节点装置示意图。该基于区块链的数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码等),例如该基于区块链的数据处理装置可以为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。如图12c所示,该基于区块链的数据处理装置120c可以用于图6所对应实施例中的计算机设备,具体的,该装置可以包括:第二模型聚合模块41、聚合模型发送模块42、模型上链模块43、模型生成模块44及模型更新模块45。

第二模型聚合模块41,用于获取参与共识节点发送的有效聚合模型,对有效聚合模型进行参数聚合,生成第二聚合模型;有效聚合模型是参与共识节点对接收到的N个第一聚合模型进行选取得到的;第一聚合模型为对应的业务组中的主业务节点对M个业务节点分别对应的初始模型进行参数聚合得到的;M为正整数;

聚合模型发送模块42,用于将第二聚合模型发送至参与共识节点,以使参与共识节点对第二聚合模型进行共识;

模型上链模块43,用于接收参与共识节点在对第二聚合模型共识通过时发送的模型共识通过消息,基于模型共识通过消息,将第二聚合模型上传至模型区块链中;

模型生成模块44,用于检测第二聚合模型的模型参数的收敛性,若第二聚合模型的模型参数收敛,则向N个主业务节点广播模型完成消息;

模型更新模块45,用于若第二聚合模型的模型参数不收敛,则向N个主业务节点广播模型更新消息,以使与N个主业务节点关联的业务组中的e个业务节点更新第二聚合模型,e为正整数。

图12a至图12c所示的申请实施例,提供了基于区块链的数据处理的不同节点对应的装置,如图12a中装置可以运行于参与共识节点,如图12b中装置可以运行于主业务节点,如图12c中装置可以运行于领导共识节点。在本申请实施例中,存在N个业务组,每个业务组中的主业务节点可以获取该业务组中的其他业务节点的初始模型,对其他业务节点的初始模型进行参数聚合,得到聚合模型,其中,每个业务组可以得到一个聚合模型。参与共识节点对应的装置可以从N个业务组的N个主业务节点中获取第一聚合模型,获取模型发布节点发送的测试模型,获取第一聚合模型与测试模型之间的模型相似度,将模型相似度大于或等于模型有效阈值的第一聚合模型确定为有效聚合模型;将有效聚合模型发送至领导共识节点。领导共识节点对应的装置获取到该有效聚合模型后,对该有效聚合模型进行参数聚合,生成第二聚合模型,将该第二聚合模型发送至参与共识节点。参与共识节点对应的装置获取领导共识节点发送的第二聚合模型,对第二聚合模型进行共识,若共识通过,则向领导共识节点发送模型共识通过消息。领导共识节点对应的装置在获取到该模型共识通过消息后,将第二聚合模型上传至模型区块链中,向N个主业务节点发送模型更新消息。N个主业务节点获取到模型更新消息,基于该模型更新消息更新第二聚合模型,直至第二聚合模型收敛。通过该过程,实现对模型的两次参数聚合,一次基于业务组中的业务节点对初始模型进行聚合,生成第一聚合模型,将该第一聚合模型上传至区块链网络,具体发送至参与共识节点,使得参与共识节点所需处理验证的模型的数据量减少,减少了参与共识节点的工作量,一次是领导共识节点对第一聚合模型进行参数聚合,生成第二聚合模型,使得领导共识节点可以在无需获取各个业务节点的原始数据的情况下,实现对模型的聚合训练,提高了数据处理的安全性。而且,参与共识节点在模型训练过程中会进行多次验证,基于模型发布节点发送的测试模型,对第一聚合模型进行筛选,得到有效聚合模型,由于该模型发布节点为发布该模型训练任务的节点,即最终训练好的模型要尽可能地满足模型发布节点的需求,因此,通过与模型发布节点发送的测试模型进行匹配,对第一聚合模型进行筛选,可以提高模型训练的准确性;对领导共识节点生成的第二聚合模型进行共识验证,以确保最终训练好的模型得到大多数参与共识节点的认可,从而提高模型的准确性,提高数据处理的效率及可靠性。

参见图13,图13是本申请实施例提供的一种计算机设备的结构示意图。如图13所示,本申请实施例中的计算机设备可以包括:一个或多个处理器1301、存储器1302和输入输出接口1303。该处理器1301、存储器1302和输入输出接口1303通过总线1304连接。存储器1302用于存储计算机程序,该计算机程序包括程序指令,输入输出接口1303用于接收数据及输出数据,如用于业务节点与业务节点之间进行数据交互,共识节点与共识节点之间进行数据交互,或业务节点与共识节点之间进行数据交互等;处理器1301用于执行存储器1302存储的程序指令。

其中,该处理器1301运行于参与共识节点中时,可以执行如下操作:

从来自N个业务组的N个主业务节点中获取第一聚合模型,获取模型发布节点发送的测试模型;第一聚合模型为主业务节点i对业务组i中的M个业务节点分别对应的初始模型进行参数聚合得到的模型,N个业务组包括业务组i,M个业务节点包括主业务节点i;N与M均为正整数;i为小于或等于N的正整数;

获取第一聚合模型与测试模型之间的模型相似度,将模型相似度大于或等于模型有效阈值的第一聚合模型确定为有效聚合模型;

将有效聚合模型发送至领导共识节点,以使领导共识节点对有效聚合模型进行参数聚合,生成第二聚合模型;

获取领导共识节点发送的第二聚合模型,对第二聚合模型进行共识,若共识通过,则向领导共识节点发送模型共识通过消息,以使领导共识节点基于模型共识通过消息,将第二聚合模型上传至模型区块链中,向N个主业务节点发送模型更新消息。

其中,该处理器1301运行于主业务节点中时,可以执行如下操作:

获取M个业务节点分别对应的初始模型,对M个初始模型进行参数聚合,生成待验证聚合模型,将待验证聚合模型发送至参与共识节点,以使参与共识节点根据接收到的N个待验证聚合模型确定第一聚合模型,对第一聚合模型进行检测得到有效聚合模型,将有效聚合模型发送至领导共识节点,N个待验证聚合模型包括本地业务节点发送的待验证聚合模型;M和N均为正整数;

接收领导共识节点发送的模型更新消息,基于模型更新消息从模型区块链中获取第二聚合模型;第二聚合模型是领导共识节点对有效聚合模型进行参数聚合所生成的,第二聚合模型被参与共识节点共识通过;

获取训练数据集,基于训练数据集对第二聚合模型进行参数调整,将参数调整后的第二聚合模型确定为初始模型,直至第二聚合模型的参数收敛。

其中,该处理器1301运行于领导共识节点中时,可以执行如下操作:

获取参与共识节点发送的有效聚合模型,对有效聚合模型进行参数聚合,生成第二聚合模型;有效聚合模型是参与共识节点对接收到的第一聚合模型进行选取得到的;第一聚合模型为对应的业务组中的主业务节点对M个业务节点分别对应的初始模型进行参数聚合得到的;M为正整数;

将第二聚合模型发送至参与共识节点,以使参与共识节点对第二聚合模型进行共识;

接收参与共识节点在对第二聚合模型共识通过时发送的模型共识通过消息,基于模型共识通过消息,将第二聚合模型上传至模型区块链中;

检测第二聚合模型的模型参数的收敛性,若第二聚合模型的模型参数收敛,则向N个主业务节点广播模型完成消息;

若第二聚合模型的模型参数不收敛,则向N个主业务节点广播模型更新消息,以使与N个主业务节点关联的业务组中的e个业务节点更新第二聚合模型,e为正整数。

在一些可行的实施方式中,该处理器1301可以是中央处理单元(centralprocessing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

该存储器1302可以包括只读存储器和随机存取存储器,并向处理器1301和输入输出接口1303提供指令和数据。存储器1302的一部分还可以包括非易失性随机存取存储器。例如,存储器1302还可以存储设备类型的信息。

具体实现中,该计算机设备可通过其内置的各个功能模块执行如该图3、图5或图6中各个步骤所提供的实现方式,具体可参见该图3、图5或图6中各个步骤所提供的实现方式,在此不再赘述。

本申请实施例通过提供一种计算机设备,包括:处理器、输入输出接口、存储器,通过处理器获取存储器中的计算机程序,执行该图3、图5或图6中所示方法的各个步骤,进行基于区块链的数据处理操作。本申请实施例具体可参见该图3、图5或图6中各个步骤所提供的实现方式,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序适于由该处理器加载并执行图3、图5或图6中各个步骤所提供的基于区块链的数据处理方法,具体可参见该图3、图5或图6中各个步骤所提供的实现方式,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,计算机程序可被部署为在一个计算机设备上执行,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行。

该计算机可读存储介质可以是前述任一实施例提供的基于区块链的数据处理装置或者该计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flashcard)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。

本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行图3、图5或图6中的各种可选方式中所提供的方法,实现对模型的两次参数聚合,一次基于业务组中的业务节点对初始模型进行聚合,生成第一聚合模型,将该第一聚合模型上传至区块链网络,具体发送至参与共识节点,使得参与共识节点所需处理验证的模型的数据量减少,减少了参与共识节点的工作量,一次是领导共识节点对第一聚合模型进行参数聚合,生成第二聚合模型,使得领导共识节点可以在无需获取各个业务节点的原始数据的情况下,实现对模型的聚合训练,提高了数据处理的安全性。而且,参与共识节点在模型训练过程中会进行多次验证,基于模型发布节点发送的测试模型,对第一聚合模型进行筛选,得到有效聚合模型,由于该模型发布节点为发布该模型训练任务的节点,即最终训练好的模型要尽可能地满足模型发布节点的需求,因此,通过与模型发布节点发送的测试模型进行匹配,对第一聚合模型进行筛选,可以提高模型训练的准确性;对领导共识节点生成的第二聚合模型进行共识验证,以确保最终训练好的模型得到大多数参与共识节点的认可,从而提高模型的准确性,提高数据处理的效率及可靠性。

本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在该说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程基于区块链的数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程基于区块链的数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程基于区块链的数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程基于区块链的数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。

以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

相关技术
  • 电子装置、基于区块链的数据处理方法和计算机存储介质
  • 基于区块链的数据处理方法、装置、计算机设备及存储介质
技术分类

06120112939628