一种基于区块链的分布式计算方法及系统与流程

文档序号:18705252发布日期:2019-09-17 23:35阅读:413来源:国知局
一种基于区块链的分布式计算方法及系统与流程

本发明涉及计算机技术领域,更具体地,涉及一种基于区块链的分布式计算方法及系统。



背景技术:

随着大数据时代的到来,如何利用大量的数据去创造价值成为了当下的热点,很多科研机构和公司都希望针对大规模数据进行分布式计算,进而对大规模数据进行分析和学习。以医疗数据为例,每一家正规的医疗机构在医疗行为中都会产生大量的数据,从宏观来讲,大量的数据必然能提高科学研究的准确性;从个体而言,随着精准医疗的推行,医疗要结合患者的实际情况进行,需要尽可能获得患者的各种身体状况和医疗记录。因此,如何对各个医疗机构的医疗数据进行分布式计算,以实现对大规模医疗数据的研究与学习突显得尤为重要。

现有的分布式计算方案(如mapreduce)需要数据在集中的物理位置,并且需要执行计算的一方拥有很强的计算资源,同时现有的分布式计算方案在对数据进行分布式计算的同时,难以确保数据的安全性,容易导致数据的泄漏。然而,目前个体或机构越来越重视数据隐私性,对于数据的分享越来越谨慎,以医疗数据为例,医疗数据是极为敏感的,一旦泄露,后果不堪设想。因此,在对大规模数据进行分布式计算的同时,如何安全地共享数据,已然成为难点。



技术实现要素:

本发明实施例为了克服现有技术中在对大规模数据进行分布式计算的同时,难以确保数据安全性的问题,提供一种基于区块链的分布式计算方法及系统。

第一方面,本发明实施例提供一种基于区块链的分布式计算方法,包括:

根据计算需求编写智能合约,将所述智能合约发布至区块链,所述智能合约中包含分布式计算函数和结果汇总函数,以使得区块链中的每个从节点根据所述智能合约中的分布式计算函数和本地的数据集进行分布式计算,并将计算结果上传至区块链;

从区块链上获取每个从节点的计算结果,并根据所述智能合约中的结果汇总函数将所有从节点的计算结果进行汇总。

第二方面,本发明实施例提供一种基于区块链的分布式计算方法,包括:

从区块链上获取主节点发布的智能合约,所述智能合约中包含分布式计算函数和结果汇总函数;

根据所述智能合约中的分布式计算函数和本地的数据集进行分布式计算,并将计算结果上传至区块链,以使得所述主节点根据所述智能合约中的结果汇总函数对所述计算结果进行汇总。

第三方面,本发明实施例提供一种基于区块链的分布式计算系统,包括任务发布模块和结果汇总模块,其中:

所述任务发布模块,用于根据计算需求编写智能合约,将所述智能合约发布至区块链,所述智能合约中包含分布式计算函数和结果汇总函数,以使得区块链中的每个从节点根据所述智能合约中的分布式计算函数和本地的数据集进行分布式计算,并将计算结果上传至区块链;

所述结果汇总模块,用于从区块链上获取每个从节点的计算结果,并根据所述智能合约中的结果汇总函数将所有从节点的计算结果进行汇总。

第四方面,本发明实施例提供一种基于区块链的分布式计算系统,包括任务获取模块和分布式计算模块,其中:

所述任务获取模块,用于从区块链上获取主节点发布的智能合约,所述智能合约中包含分布式计算函数和结果汇总函数;

所述分布式计算模块,用于根据所述智能合约中的分布式计算函数和本地的数据集进行分布式计算,并将计算结果上传至区块链,以使得所述主节点根据所述智能合约中的结果汇总函数对所述计算结果进行汇总。

第五方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面或第二方面所提供的方法的步骤。

第六方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面或第二方面所提供的方法的步骤。

本发明实施例提供的基于区块链的分布式计算方法及系统,区块链中的主节点根据自身的计算需求编写智能合约并将智能合约发布至区块链,以使得区块链中的从节点根据本地的计算资源和智能合约中的分布式计算函数进行分布式计算,最终,主节点根据智能合约中的结果汇总函数将所有从节点的计算结果进行汇总。该方法及系统在现有区块链系统的基础上进行重新设计和改进,将整个区块链的交易流程转变为分布式计算框架,从而在实现对大规模数据进行分布式计算的同时,还能有效实现数据的安全共享,以确保数据的安全性,防止数据发生泄露。

附图说明

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

图1为本发明实施例提供的基于区块链的分布式计算方法的流程示意图;

图2为本发明实施例提供的基于区块链的分布式计算方法的流程示意图;

图3为本发明实施例提供的基于区块链的分布式计算系统的结构示意图;

图4为本发明实施例提供的基于区块链的分布式计算系统的结构示意图;

图5为本发明实施例提供的电子设备的实体结构示意图。

具体实施方式

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

需要说明的是,本发明实施例在现有区块链系统的基础上进行重新设计和改进,将整个区块链的交易流程转变为分布式计算框架,从而在实现对大规模数据进行分布式计算的同时,还能有效实现数据的安全共享,以确保数据的安全性,防止数据发生泄露。

图1为本发明实施例提供的基于区块链的分布式计算方法的流程示意图,如图1所示,本发明实施例提供一种基于区块链的分布式计算方法,该方法的执行主体为区块链中具有计算需求的节点,记为主节点,具体包括:

s101,根据计算需求编写智能合约,将智能合约发布至区块链,智能合约中包含分布式计算函数和结果汇总函数,以使得区块链中的每个从节点根据智能合约中的分布式计算函数和本地的数据集进行分布式计算,并将计算结果上传至区块链;

具体地,本发明实施例中,当区块链中的某个节点具有计算需求时,将该节点作为主节点,在此基础上,主节点根据自身的计算需求编写智能合约。需要说明的是,智能合约是一种特殊协议,在区块链内制定合约时使用,当中内含了程式码函式,亦能与其他合约进行互动、做决策、储存资料及传送以太币等功能。本发明实施例中,智能合约中包含分布式计算函数和结果汇总函数。可以理解的是,智能合约中的分布式计算函数表示的是对数据进行何种分布式计算,智能合约中的结果汇总函数表示的是如何对分布式计算的结果进行汇总,智能合约中的分布式计算函数和结果汇总函数共同组成了分布式计算框架。此外,智能合约中还包括智能合约的描述,智能合约的描述概括了智能合约的主要内容。在其他实施例中,智能合约中还可以包含其他内容,可以根据实际需求进行设置,此处不做具体限定。

进一步地,主节点将编写好的智能合约发布至区块链,区块链中的其他节点便可从区块链中查看智能合约,区块链中的其他节点通过查看智能合约的描述确定自身是否具备计算资源。本发明实施例中,将具备计算资源的节点作为从节点,每个从节点在查看智能合约之后,将采用认领机制从区块链上获取智能合约并存储至本地,同时每个从节点对智能合约的获取操作将记录在区块链的账本上,以进行永久存证。每个从节点在获取到智能合约之后,根据智能合约中的分布式计算函数和本地的数据集进行分布式计算,即,将本地数据集输入至分布式计算函数中进行分布式计算。最终,每个从节点将各自的计算结果上传至区块链。

s102,从区块链上获取每个从节点的计算结果,并根据智能合约中的结果汇总函数将所有从节点的计算结果进行汇总。

具体地,在每个从节点将各自的计算结果上传至区块链之后,主节点便可从区块链中获取每个从节点的计算结果,在此基础上,主节点根据所有从节点的计算结果判断智能合约中的分布式计算任务是否完成,若智能合约中的分布式计算任务全部完成,则主节点将根据智能合约中的结果汇总函数对所有从节点的计算结果进行汇总。

需要说明的是,本发明实施例中,利用区块链中的节点进行分布式计算和结果汇总,由于区块链中的节点的任何操作都将被记录在区块链账本中,且区块链中的数据具有不可篡改的特性,因此,本发明实施例在实现分布式计算的同时,还能够有效确保数据的真实性和安全性。

本发明实施例提供的基于区块链的分布式计算方法,区块链中的主节点根据自身的计算需求编写智能合约并将智能合约发布至区块链,以使得区块链中的从节点根据本地的计算资源和智能合约中的分布式计算函数进行分布式计算,最终,主节点根据智能合约中的结果汇总函数将所有从节点的计算结果进行汇总。该方法在现有区块链系统的基础上进行重新设计和改进,将整个区块链的交易流程转变为分布式计算框架,从而在实现对大规模数据进行分布式计算的同时,还能有效实现数据的安全共享,以确保数据的安全性,防止数据发生泄露。

基于上述任一实施例,提供一种基于区块链的分布式计算方法,根据智能合约中的结果汇总函数将所有从节点的计算结果进行汇总,之前还包括:利用预设算法对所有从节点的计算结果进行筛选,获得筛选后的所有计算结果;相应地,根据智能合约中的结果汇总函数将所有从节点的计算结果进行汇总,具体为:根据智能合约中的结果汇总函数将筛选后的所有计算结果进行汇总。

具体地,在上述技术方案的基础上,倘若所有从节点中存在不诚实的节点,则将导致计算结果中可能出现异常数据;同时若某些从节点的本地数据集存在误差,也将导致计算结果中可能出现异常数据。有鉴于此,本发明实施例中,主节点在获得所有从节点的计算结果之后,利用预设算法对所有从节点的计算结果进行筛选,获得筛选后的所有计算结果,在此基础上,主节点再根据智能合约中的结果汇总函数将筛选后的所有计算结果进行汇总。其中,预设算法可以为离群点检测算法,可以根据实际需求进行设置,此处不做具体限定。

本发明实施例提供的基于区块链的分布式计算方法,主节点在获得所有从节点的计算结果之后,利用预设算法对所有从节点的计算结果进行筛选,再根据智能合约中的结果汇总函数将筛选后的所有计算结果进行汇总。该方法通过对所有从节点的计算结果进行筛选,能够有效筛选出计算结果中的异常数据,有利于确保汇总结果的准确性。

基于上述任一实施例,提供一种基于区块链的分布式计算方法,利用预设算法对所有从节点的计算结果进行筛选,具体为:从区块链账本中获取每个从节点的历史计算记录;根据每个从节点的历史计算记录确定每个从节点的权重;根据离群点检测算法和每个从节点的权重确定每个从节点的计算结果对应的局部离群因子;根据所有从节点的计算结果各自对应的局部离群因子对所有从节点的计算结果进行筛选。

具体地,本发明实施例中,主节点利用预设算法对所有从节点的计算结果进行筛选,具体实现过程如下:

由于区块链中每个从节点参与的历史计算均被记录在区块链账本中,因此主节点可以从区块链账本中获取每个从节点的历史计算记录。其中,每个从节点的历史计算记录中包含每个从节点参与的历史计算的次数、每次历史计算所涉及的数据条数和每次历史计算距离当前的时间。主节点根据每个从节点的历史计算记录中所包含每个从节点参与的历史计算的次数、每次历史计算所涉及的数据条数和每次历史计算距离当前的时间确定每个从节点的权重。假设某个从节点的权重为p,则p的具体计算公式为:

其中,n表示从节点参与的历史计算的次数;si表示第i(i不大于n)次历史计算所涉及的数据条数;ti表示第i(i不大于n)次历史计算距离当前的时间。

通过上述方法步骤即可确定每个从节点的权重,在此基础上,主节点根据离群点检测算法和每个从节点的权重确定每个从节点的计算结果对应的局部离群因子。其中,在离群点检测算法中,设样本集合为d,样本o与样本p之间的距离为d(o,p),定义dk(o)为点o的第k距离,满足以下条件时dk(o)=d(o,p):(1)在点集中存在k个点p′∈d\{o},使得d(o,p′)≤d(o,p);(2)在点集中存在k-1个点p′∈d\{o},使得d(o,p′)<d(o,p);即p是距离o距离最近的第k个点。定义nk(p)为点p的第k距离邻域,满足nk(p)={p′∈d\{o}|d(o,p′)≤dk(o)}。定义点p到点o的第k可达距离为dk(o,p)=max{dk(o),d(o,p)}。定义局部可达密度为:

定义点o的局部离群因子lofk(o)的计算公式为:

结合上述公式,即可计算获得样本集合d中各个样本的局部离群因子,某个样本的局部离群因子越大,则该样本越可能为异常样本。

基于上述离群点检测算法,本发明实施例中,将所有从节点的计算结果的组合作为样本集合,并将每个从节点的计算结果作为样本集合中的一个样本。在此基础上,选择pos算法对上述离群点检测算法中的距离进行改进。设新的距离为pos距离:d′(o,p),则新的距离其中,pn表示的是第n个从节点的权重。对于每个从节点的计算结果而言,将每个从节点的计算结果对应的pos距离代入到离群点检测算法中即可求出每个从节点的计算结果对应的局部离群因子。

最终,主节点根据所有从节点的计算结果各自对应的局部离群因子对所有从节点的计算结果进行筛选。具体地,可以预先设置局部离群因子阈值,在此基础上,若某个从节点的计算结果对应的局部离群因子大于局部离群因子阈值,则将该从节点的计算结果进行删除;若某个从节点的计算结果对应的局部离群因子不大于局部离群因子阈值,则将该从节点的计算结果进行保留。此外,还可以通过预先设置异常数据比例的方式对所有从节点的计算结果进行筛选,可以根据实际需求进行设置,此处不做具体限定。

本发明实施例提供的基于区块链的分布式计算方法,主节点从区块链账本中获取每个从节点的历史计算记录;根据每个从节点的历史计算记录确定每个从节点的权重;根据离群点检测算法和每个从节点的权重确定每个从节点的计算结果对应的局部离群因子;根据所有从节点的计算结果各自对应的局部离群因子对所有从节点的计算结果进行筛选。该方法通过对所有从节点的计算结果进行筛选,能够有效筛选出计算结果中的异常数据,有利于确保汇总结果的准确性。

图2为本发明实施例提供的基于区块链的分布式计算方法的流程示意图,如图2所示,本发明实施例提供一种基于区块链的分布式计算方法,该方法的执行主体为区块链中具有计算资源的节点,记为从节点,具体包括:

s201,从区块链上获取主节点发布的智能合约,智能合约中包含分布式计算函数和结果汇总函数;

具体地,本发明实施例中,当区块链中的某个节点具有计算需求时,将该节点作为主节点,在此基础上,主节点根据自身的计算需求编写智能合约,其中,智能合约中包含分布式计算函数和结果汇总函数。可以理解的是,智能合约中的分布式计算函数表示的是对数据进行何种分布式计算,智能合约中的结果汇总函数表示的是如何对分布式计算的结果进行汇总,智能合约中的分布式计算函数和结果汇总函数共同组成了分布式计算框架。此外,智能合约中还包括智能合约的描述,智能合约的描述概括了智能合约的主要内容。在其他实施例中,智能合约中还可以包含其他内容,可以根据实际需求进行设置,此处不做具体限定。

进一步地,主节点将编写好的智能合约发布至区块链,区块链中的其他节点便可从区块链中查看智能合约,区块链中的其他节点通过查看智能合约的描述确定自身是否具备计算资源。本发明实施例中,将具备计算资源的节点作为从节点,每个从节点在查看智能合约之后,将采用认领机制从区块链上获取智能合约并存储至本地,同时每个从节点对智能合约的获取操作将记录在区块链的账本上,以进行永久存证。

s202,根据智能合约中的分布式计算函数和本地的数据集进行分布式计算,并将计算结果上传至区块链,以使得主节点根据智能合约中的结果汇总函数对计算结果进行汇总。

具体地,每个从节点在获取到智能合约之后,根据智能合约中的分布式计算函数和本地的数据集进行分布式计算,即,将本地数据集输入至分布式计算函数中进行分布式计算。最终,每个从节点将各自的计算结果上传至区块链。在每个从节点将各自的计算结果上传至区块链之后,主节点便可从区块链中获取每个从节点的计算结果,在此基础上,主节点根据所有从节点的计算结果判断智能合约中的分布式计算任务是否完成,若智能合约中的分布式计算任务全部完成,则主节点将根据智能合约中的结果汇总函数对所有从节点的计算结果进行汇总。

本发明实施例提供的基于区块链的分布式计算方法,区块链中的主节点根据自身的计算需求编写智能合约并将智能合约发布至区块链,以使得区块链中的从节点根据本地的计算资源和智能合约中的分布式计算函数进行分布式计算,最终,主节点根据智能合约中的结果汇总函数将所有从节点的计算结果进行汇总。该方法在现有区块链系统的基础上进行重新设计和改进,将整个区块链的交易流程转变为分布式计算框架,从而在实现对大规模数据进行分布式计算的同时,还能有效实现数据的安全共享,以确保数据的安全性,防止数据发生泄露。

基于上述任一实施例,提供一种基于区块链的分布式计算方法,将计算结果上传至区块链,之前还包括:利用主节点的公钥对计算结果进行加密,获得加密后的计算结果;相应地,将计算结果上传至区块链,具体为:将加密后的计算结果上传至区块链,以使得主节点根据自身的私钥对加密后的计算结果进行解密,并根据智能合约中的结果汇总函数对解密后的计算结果进行汇总。

具体地,本发明实施例中,为了确保计算结果的安全性,每个从节点在将计算结果上传至区块链之前,利用主节点的公钥对计算结果进行加密,获得加密后的计算结果,并将加密后的计算结果上传至区块链。在此基础上,主节点根据自身的私钥对所有加密后的计算结果进行解密,并根据智能合约中的结果汇总函数对所有解密后的计算结果进行汇总。

需要说明的是,每个节点在加入区块链时将被分配各自的公钥和私钥,且区块链中每个节点的私钥由自身保存,而每个节点的公钥均会被上传至区块链进行共享。因此,本发明实施例中,每个从节点可以从区块链中获取主节点的公钥,以利用主节点的公钥对计算结果进行加密。由于每个从节点的计算结果均是通过主节点的公钥进行加密的,因此,主节点可以根据自身的私钥对所有加密后的计算结果进行解密。

本发明实施例提供的基于区块链的分布式计算方法,每个从节点在将计算结果上传至区块链之前,利用主节点的公钥对计算结果进行加密,并将加密后的计算结果上传至区块链,以使得主节点根据自身的私钥对所有加密后的计算结果进行解密,并根据智能合约中的结果汇总函数对所有解密后的计算结果进行汇总,有利于确保计算结果的安全性,防止计算结果发生泄漏。

基于上述任一实施例,提供一种基于区块链的分布式计算方法,根据智能合约中的分布式计算函数和本地的数据集进行分布式计算,之后还包括:获取计算结果的哈希值,并将哈希值上传至区块链。

具体地,本发明实施例中,每个从节点在根据智能合约中的分布式计算函数和本地的数据集进行分布式计算之后,为了证明其计算成果,每个从节点将获取其计算结果的哈希值,并将计算结果的哈希值上传至区块链。可以理解的是,每个从节点的计算结果的哈希值一旦上传至区块链,则将不可篡改,同时由于哈希值的唯一性,对应的计算结果也将无法篡改,此外,哈希值是不可逆的,所以保证了计算结果的隐私,从而通过区块链的方式实现了计算结果的确权和隐私保护。

本发明实施例提供的基于区块链的分布式计算方法,每个从节点在根据智能合约中的分布式计算函数和本地的数据集进行分布式计算之后,获取其计算结果的哈希值,并将计算结果的哈希值上传至区块链,有利于实现计算结果的确权和隐私保护。

图3为本发明实施例提供的基于区块链的分布式计算系统的结构示意图,该系统应用于上述方法实施例中的主节点端,如图3所示,该系统包括:任务发布模块31和结果汇总模块32,其中:

任务发布模块31,用于根据计算需求编写智能合约,将智能合约发布至区块链,智能合约中包含分布式计算函数和结果汇总函数,以使得区块链中的每个从节点根据智能合约中的分布式计算函数和本地的数据集进行分布式计算,并将计算结果上传至区块链;

具体地,本发明实施例中,当区块链中的某个节点具有计算需求时,将该节点作为主节点,在此基础上,主节点通过任务发布模块31根据自身的计算需求编写智能合约,其中,智能合约中包含分布式计算函数和结果汇总函数。可以理解的是,智能合约中的分布式计算函数表示的是对数据进行何种分布式计算,智能合约中的结果汇总函数表示的是如何对分布式计算的结果进行汇总,智能合约中的分布式计算函数和结果汇总函数共同组成了分布式计算框架。此外,智能合约中还包括智能合约的描述,智能合约的描述概括了智能合约的主要内容。在其他实施例中,智能合约中还可以包含其他内容,可以根据实际需求进行设置,此处不做具体限定。

进一步地,主节点通过任务发布模块31将编写好的智能合约发布至区块链,区块链中的其他节点便可从区块链中查看智能合约,区块链中的其他节点通过查看智能合约的描述确定自身是否具备计算资源。本发明实施例中,将具备计算资源的节点作为从节点,每个从节点在查看智能合约之后,将采用认领机制从区块链上获取智能合约并存储至本地,同时每个从节点对智能合约的获取操作将记录在区块链的账本上,以进行永久存证。每个从节点在获取到智能合约之后,根据智能合约中的分布式计算函数和本地的数据集进行分布式计算,即,将本地数据集输入至分布式计算函数中进行分布式计算。最终,每个从节点将各自的计算结果上传至区块链。

结果汇总模块32,用于从区块链上获取每个从节点的计算结果,并根据智能合约中的结果汇总函数将所有从节点的计算结果进行汇总。

具体地,在每个从节点将各自的计算结果上传至区块链之后,主节点通过结果汇总模块32便可从区块链中获取每个从节点的计算结果,在此基础上,主节点通过结果汇总模块32根据所有从节点的计算结果判断智能合约中的分布式计算任务是否完成,若智能合约中的分布式计算任务全部完成,则主节点通过结果汇总模块32根据智能合约中的结果汇总函数对所有从节点的计算结果进行汇总。

本发明实施例提供的基于区块链的分布式计算系统,具体执行上述主节点对应的各方法实施例流程,具体请详见上述主节点对应的各方法实施例的内容,此处不再赘述。

本发明实施例提供的基于区块链的分布式计算系统,通过任务发布模块根据自身的计算需求编写智能合约并将智能合约发布至区块链,以使得区块链中的从节点根据本地的计算资源和智能合约中的分布式计算函数进行分布式计算,最终,通过结果汇总模块根据智能合约中的结果汇总函数将所有从节点的计算结果进行汇总。该系统在实现对大规模数据进行分布式计算的同时,还能有效实现数据的安全共享,以确保数据的安全性,防止数据发生泄露。

图4为本发明实施例提供的基于区块链的分布式计算系统的结构示意图,该系统应用于上述方法实施例中的从节点端,如图4所示,该系统包括:任务获取模块41和分布式计算模块42,其中:

任务获取模块41,用于从区块链上获取主节点发布的智能合约,智能合约中包含分布式计算函数和结果汇总函数;

具体地,本发明实施例中,当区块链中的某个节点具有计算需求时,将该节点作为主节点,在此基础上,主节点根据自身的计算需求编写智能合约,其中,智能合约中包含分布式计算函数和结果汇总函数。可以理解的是,智能合约中的分布式计算函数表示的是对数据进行何种分布式计算,智能合约中的结果汇总函数表示的是如何对分布式计算的结果进行汇总,智能合约中的分布式计算函数和结果汇总函数共同组成了分布式计算框架。此外,智能合约中还包括智能合约的描述,智能合约的描述概括了智能合约的主要内容。在其他实施例中,智能合约中还可以包含其他内容,可以根据实际需求进行设置,此处不做具体限定。

进一步地,主节点将编写好的智能合约发布至区块链,区块链中的其他节点便可从区块链中查看智能合约,区块链中的其他节点通过查看智能合约的描述确定自身是否具备计算资源。本发明实施例中,将具备计算资源的节点作为从节点,每个从节点通过任务获取模块41查看智能合约,并采用认领机制从区块链上获取智能合约并存储至本地,同时每个从节点对智能合约的获取操作将记录在区块链的账本上,以进行永久存证。

分布式计算模块42,用于根据智能合约中的分布式计算函数和本地的数据集进行分布式计算,并将计算结果上传至区块链,以使得主节点根据智能合约中的结果汇总函数对计算结果进行汇总。

具体地,每个从节点通过任务获取模块41获取到智能合约之后,再通过分布式计算模块42根据智能合约中的分布式计算函数和本地的数据集进行分布式计算,即,将本地数据集输入至分布式计算函数中进行分布式计算。最终,每个从节点通过分布式计算模块42将各自的计算结果上传至区块链。在每个从节点将各自的计算结果上传至区块链之后,主节点便可从区块链中获取每个从节点的计算结果,在此基础上,主节点根据所有从节点的计算结果判断智能合约中的分布式计算任务是否完成,若智能合约中的分布式计算任务全部完成,则主节点将根据智能合约中的结果汇总函数对所有从节点的计算结果进行汇总。

本发明实施例提供的基于区块链的分布式计算系统,具体执行上述从节点对应的各方法实施例流程,具体请详见上述从节点对应的各方法实施例的内容,此处不再赘述。

本发明实施例提供的基于区块链的分布式计算系统,通过任务获取模块从区块链上获取主节点发布的智能合约,再通过分布式计算模块根据智能合约中的分布式计算函数和本地的数据集进行分布式计算,并将计算结果上传至区块链,以使得主节点根据智能合约中的结果汇总函数对计算结果进行汇总。该系统在实现对大规模数据进行分布式计算的同时,还能有效实现数据的安全共享,以确保数据的安全性,防止数据发生泄露。

图5为本发明实施例提供的电子设备的实体结构示意图,参照图5,所述电子设备,包括:处理器(processor)51、存储器(memory)52和总线53;其中,所述处理器51和存储器52通过所述总线53完成相互间的通信;所述处理器51用于调用所述存储器52中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:根据计算需求编写智能合约,将智能合约发布至区块链,智能合约中包含分布式计算函数和结果汇总函数,以使得区块链中的每个从节点根据智能合约中的分布式计算函数和本地的数据集进行分布式计算,并将计算结果上传至区块链;从区块链上获取每个从节点的计算结果,并根据智能合约中的结果汇总函数将所有从节点的计算结果进行汇总。

此外,上述的存储器52中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的方法,例如包括:根据计算需求编写智能合约,将智能合约发布至区块链,智能合约中包含分布式计算函数和结果汇总函数,以使得区块链中的每个从节点根据智能合约中的分布式计算函数和本地的数据集进行分布式计算,并将计算结果上传至区块链;从区块链上获取每个从节点的计算结果,并根据智能合约中的结果汇总函数将所有从节点的计算结果进行汇总。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1