一种基于区块链的分布式存储贡献判定方法及装置与流程

文档序号:21182277发布日期:2020-06-20 17:52阅读:163来源:国知局
一种基于区块链的分布式存储贡献判定方法及装置与流程
本发明涉及数据处理
技术领域
,具体涉及一种基于区块链的分布式存储贡献判定方法及装置。
背景技术
:随着互联网、5g和人工智能等技术的快速发展,需要存储的数据急剧膨胀,直接导致用户需要不断购置大量的存储设备来应对不断增长的存储需求。现有技术中的云存储系统虽然具备便于管理、扩容和节约成本等优势,但随着数据的不断增长,存储成本也越来越高,造成云存储系统的优势慢慢减弱,同时,由于其采用中心化控制方式,使得能够掌控数据所有权的为云存储系统的供应商,而不是用户,因此,很容易造成数据泄漏,即:其数据存储的安全性不高。随着区块链技术的发展,基于区块链技术的分布式存储能够解决上述问题。区块链基于p2p网络的基本架构和密码学算法,其让数据的所有权回归到用户,且在充分利用数据产生价值的同时能够充分保护数据的隐私安全。同时,现有技术中也存在其它能够解决上述云存储问题的分布式存储系统,例如,星际文件系统(interplanetaryfilesystem,ipfs),ipfs是一个旨在创建持久且分布式存储和共享文件的网络传输协议,是一个对等的文件系统。ipfs尝试将所有计算设备连接到同一个文件系统,并通过http访问将本地文件添加到ipfs系统并使其具有公开的访问权限。任何节点都可以随时加入和退出,对机器的配置要求也是很低,依此来看,ipfs是一个廉价、可无限扩展的分布式存储系统。但是,由于ipfs通过设置激励层filecoin以挖矿的形式运作,而至今却无矿可挖,所以,其不是一个可信的网络,更无法大面积推广和使用。综上可知,现有技术中基于p2p网络的分布式存储系统虽然有一定的技术优势,但由于其缺少中心化系统的控制,造成无法获知某个存储节点贡献情况,因此,直接导致某些节点不愿意分享数据,或者路由调度到某些存储能力不够的节点,而间接导致分布式存储资源无法充分利用和/或存储失败和/或查询速度慢,获取资源效率低等问题,进而影响系统的使用和用户体验。技术实现要素:鉴于此,本发明实施例提供一种基于区块链的分布式存储贡献判定方法及装置,以解决上述技术问题。为实现上述技术目的,本发明实施例提供一种基于区块链的分布式存储贡献判定方法,其改进之处在于:获取与待判定节点相关的各指标数据;对各指标数据进行评定,以获取各指标数据的评定值;根据各指标数据的评定值构建贡献判定模型,以根据贡献判定模型获取待判定节点的贡献值,进而根据贡献值直观获知对应节点的贡献情况。为实现上述技术目的,本发明实施例还提供一种基于区块链的分布式存储贡献判定装置,其改进之处在于:获取模块,用于获取与待判定节点相关的各指标数据;处理模块,用于对各指标数据进行评定,以获取各指标数据的评定值;判定模块,用于根据各指标数据的评定值构建贡献判定模型,以根据贡献判定模型获取待判定节点的贡献值,进而根据贡献值直观获知对应节点的贡献情况。本发明由于采取以上技术方案,与现有技术相比,其具有以下优点:本发明通过公平公正的获取与待判定节点相关的各指标数据,并对各指标数据进行评定,以及根据评定值构建贡献判定模型,能够比较客观的反映出待判定节点在网络中的贡献情况和运行情况,因此,能够利于节点安全存储数据和\或乐意分享数据等,同时,也可以给节点的路由调度提供参考,确保数据快速高效获取,存储资源无法充分利用,进而有效提高系统的使用和用户体验。本发明流程简单,操作方便,所获取的数据多、可靠、真实,还能够有效提高调度系统写入和读出数据的准确性,促进节点加入网络,进行数据分享,可以广泛应用于数据处理
技术领域
。附图说明图1是本发明的基于区块链的分布式存储贡献判定方法其中一个实施例的流程图;图2是本发明的时空证明算法其中一个实施例的时序图;图3是本发明的复制证明算法其中一个实施例的时序图;图4是本发明的流量证明算法其中一个实施例的时序图;图5是本发明的基于区块链的分布式存储贡献判定装置其中一个实施例的原理图。具体实施方式为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。如图1所示,本发明实施例提供一种基于区块链的分布式存储贡献判定方法,包括以下内容:获取与待判定节点相关的各指标数据;对各指标数据进行评定,以获取各指标数据的评定值;根据各指标数据的评定值构建贡献判定模型,以根据贡献判定模型获取待判定节点的贡献值,进而根据贡献值直观获知对应节点的贡献情况。显然,通过公平公正的获取与待判定节点相关的各指标数据,并对各指标数据进行评定,以及根据评定值构建贡献判定模型,能够比较客观的反映出待判定节点在网络中的贡献情况和运行情况,因此,能够利于节点安全存储数据和\或乐意分享数据等,同时,也可以给节点的路由调度提供参考,确保数据快速高效获取,存储资源无法充分利用,进而有效提高系统的使用和用户体验。同时,上述相关数据和/或贡献值还可以用于验证和奖励发放的依据,既可靠,又可信。在一些实施例中,获取与待判定节点相关的各指标数据,包括以下内容:获取与待判定节点相关的基本指标数据和贡献指标数据,其中,基本指标数据包括机器基本配置数据、在线时长数据和上行/下行带宽数据;贡献指标数据包括存储大小数据和流量大小数据,其中,存储大小数据主要是指节点在网络中贡献的存储情况,另外,在分布式存储的p2p网络中,为了保证数据的快速获取,节点与节点之间存在频繁的数据交换,因此,节点贡献流量大小为较为重要的指标数据。需要说明的是,上述指标数据均可以根据实际需要进行设置,本发明实施例仅以上述指标数据进行说明,而不是仅限于上述指标数据;在实际应用中,可以加入新的指标数据,以使得贡献判定模型更加完善,进而使得贡献值更加可靠和可信,在加入新的指标数据时,需要区块链中各节点达成共识,以保证贡献判定模型公平公正,获取的贡献值真实、有效、有说服力。在一些实施例中,对各指标数据进行评定,以获取各指标数据的评定值,包括以下内容:根据可用存储服务证明算法(proofofavailablestorageservices,poas)对基本指标数据进行评定,以获取基本指标数据评定值;根据时空证明算法(proofofspacetime,post)对存储大小数据进行评定,以获取存储大小数据的第一评定值;根据复制证明算法(proofofreplication,porep)对存储大小数据进行评定,以获取存储大小数据的第二评定值;根据流量证明算法(proofofflow,pof)对流量大小数据进行评定,以获取流量大小数据评定值。显然,通过设置上述多种算法对相应数据进行评定,能够确保数据真实可靠,同时,通过设置两种算法对存储大小数据进行评定,进一步确保了数据的真实可靠性。其中,时空证明算法和复制证明算法主要是用来验证存储提供商是否存储了用户数据,用户可以通过发起挑战来进行验证。时空证明算法主要是验证一段时间内用户存储的数据情况,复制证明算法是验证某一个时间点用户存储数据的情况。在一个实施例中,根据可用存储服务证明算法对基本指标数据进行评定,以获取基本指标数据评定值步骤之前,包括:对基本指标数据进行验证,具体包括:对首次加入网络的节点的基本指标数据进行验证,并将验证通过的节点及其基本指标数据记录于智能合约;已加入网络的节点的基本指标数据变更时,对变更数据进行验证,并根据验证结果判定是否更新智能合约;根据预定时间间隔对目标区域范围内的节点进行验证,以根据验证结果判定相应节点是否从网络中清除和/或是否更新智能约。其中,对首次加入网络的节点的基本指标数据进行验证,并将验证通过的节点及其基本指标数据记录于智能合约,更具体包括:首次加入网络的新增节点根据预设条件向全网发布其基本指标数据;验证节点对新增节点发布的基本指标数据进行验证,若验证不通过,拒绝新增节点加入网络,并将结果反馈给新增节点;若验证通过,允许新增节点加入网络,并将基本指标数据记录于智能合约,其中,记录于智能合约的基本指标数据包括:节点id、配置信息、在线时长、上行带宽、下行带宽、状态和时间。根据预定时间间隔对目标区域范围内的节点进行验证,以根据验证结果判定相应节点是否从网络中清除和/或是否修改智能合约,更具体包括:根据预定时间间隔对目标区域范围内的节点进行验证,以获知各节点信息是否真实,若异常,则通过目标区域范围内的其他节点进行辅助验证,若目标区域范围内2/3以上的节点判定异常,则将相应节点的智能合约信息进行修改和/或从网络中清除。显而易见地,通过以上方案,能够有效避免基本指标数据被伪造和篡改,能够有效提高基本指标数据的真实性,可靠性;同时,当节点退出网络时,能够及时获知,进而避免数据丢失。在一个实施例中,对于验证通过的基本指标数据,可以执行智能合约,根据可用存储服务证明算法对基本指标数据进行定期评定,以定期获取基本指标数据评定值。在一个实施例中,可用存储服务证明算法通过模拟电脑计算获得基本指标数据评定值,其中,通过发送心跳包到服务器,以判断用户是否在线,以获取在线时长数据。在一个实施例中,根据时空证明算法对存储大小数据进行评定,以获取存储大小数据的第一评定值,包括以下内容:根据时空证明算法对存储大小数据进行评定,并将评定通过的存储大小数据的第一评定值记录到智能合约,其中,记录信息包括:节点id及其存储变化量和时间。本实施例中,时空证明算法是验证存储节点(m)在给定时间内存储数据d的方法,其为存储节点(m)的存储容量提供了间接证明,如图2所示,具体包括以下内容:1.数据d被加密以获得唯一副本r,r存储在m上,数据d的merkle树的根哈希为rt=merklecrh(r)。2.验证节点(v)也存储了rt。3.在给定时间t内,存储节点(m)向验证节点(v)请求存储证明挑战。4.验证节点(v)向存储节点(m)发送随机质询c,即副本r的第c个块的存储质询。5.存储节点(m)检索副本r的第c个块rc,并计算pathrc-rt,其包含副本r的哈希值、副本r的第c个块rc和根节点的所有merkle树节点路径,并将副本r的第c个块rc和pathrc-rt发送给验证节点(v)。6.验证节点(v)根据收到的r的第c个块rc和pathrc-rt,生成merkle树根哈希值rt’,并验证该rt’与原始根哈希存储rt是否匹配,即rt’==rt,若否,则证明失败,间隔一段时间后重复步骤3到6;若是,则验证节点(v)验证成功,则说明存储挑战成功。在一个实施例中,根据复制证明算法对存储大小数据进行评定,以获取存储大小数据的第二评定值,包括以下内容:根据复制证明算法对存储大小数据进行评定,并将评定通过的存储大小数据的第二评定值记录到智能合约,其中,记录信息包括:节点id及其存储变化量和时间。本实施例中,复制证明算法是验证存储节点(m)是否正确地从用户(u)复制数据d并将其存储在其存储上的方法,如图3所示,具体包括以下内容:1.用户(u)生成密钥对pkseal,并对数据d进行加密,并生成唯一副本r=seal(d;pkseal),并在在副本r上构建merkle树,计算merkle树的根哈希rt=merklecrh(r),并将merkle树的根哈希rt发送给验证节点(v)。2.用户(u)将副本r发送给存储节点(m)。3.存储节点(m)向验证节点(v)请求复制证明质询挑战,验证节点(v)接受该请求并向存储节点(m)发送随机质询c,即:挑战副本r的第c个数据块的存储。4.存储节点(m)检索作为副本r的第c个块的rc,并计算pathrc-rt,其包含从副本r的第c个块的rc到根节点的所有merkle树节点路径的散列值,存储节点(m)将副本r的第c个块rc和pathrc-rt发送给验证节点(v)。5.验证节点(v)接收到的副本r的第c个块rc和pathrc-rt,生成merkle树根哈希rt’,验证是否与从用户(u)收到的根哈希一致,即rt’==rt,如果一致则挑战成功,否则挑战失败。在一个实施例中,根据流量证明算法对流量大小数据进行评定,以获取流量大小数据评定值,其中,流量大小数据包括流出流量大小(send_bytes)数据和流入流量(recv_bytes)大小数据,并将评定通过的流量大小数据评定值记录到智能合约,其中,记录信息包括:节点id及其流入流量、流出流量和时间。本实施例中,如图4所示,流量证明算法,包括以下内容:1.存储节点(m)定期将流量信息上报给验证节点(v)。2.验证节点(v)在收到存储节点(m)的流量信息时,验证其流出的流量大小数据和某节点流入流量大小数据是否相对应,其流入流量大小数据与某节点流出流量大小数据是否相对应,若对应,则将流量大小数据记录于智能合约,并将验证结果反馈给存储节点(m)。本实施例中,流量证明算法,还包括根据验证结果构建计算模型,以通过计算模型获取流量大小数据评定值;本实施例中,计算模型如下所示:*40%+*60%由于节点流出流量是贡献资源,流入流量是获取资源,因此,流出贡献权重设置为60%,流入贡献权重设置为40%,但是,并不限于此,实践中可以在流出贡献权重大于流入贡献权重的前提下,结合需要进行调整设置。在一个实施例中,根据各指标数据的评定值构建贡献判定模型,以根据贡献判定模型获取待判定节点的贡献值,进而根据贡献值直观获知对应节点的贡献情况,包括以下内容:根据各指标数据及各指标数据评定值的获取方式设置比例因子,本实施例中设置的比例因子如下表1所示,但是并不限于此,实际中应用中,可以根据需要进行调整,以使其更加客观,准确。表1:比例因子对应表比例因子描述默认值α时空证明算法40%β复制证明算法20%r流量证明算法30%d可用存储服务证明算法10%根据节点可靠性程度,设置调剂参数;根据比例因子、调剂参数和各指标的评定值构建贡献判定模型,其中贡献判定模型如下所示:其中,r代表待判定节点的贡献值;α代表通过时空证明算法获取的存储大小数据的第一评定值的比例因子;β代表通过复制证明算法获取的存储大小数据的第二评定值的比例因子;r代表通过流量证明算法获取的流量大小数据评定值的比例因子;d代表待通过可用存储服务证明算法获取的基本指标数据评定值的比例因子;f(post)代表存储大小数据的第一评定值;f(porep)代表存储大小数据的第二评定值;f(pof)代表流量大小数据评定值;f(poas)代表基本指标数据评定值;x代表调剂参数。在一些实施例中,根据各指标数据的评定值构建贡献判定模型,以根据贡献判定模型获取待判定节点的贡献值,进而根据贡献值直观获知对应节点的贡献情况,包括以下内容:根据各指标数据的评定值构建贡献判定模型,并将贡献判定模型创建在智能合约中,以当符合预设条件时通过智能合约自动触发贡献判定模型,获取待判定节点的贡献值,并将相应节点的贡献值记录于区块链。本发明通过提供基于多种算法的分布式存储贡献判定方法,能够根据预设条件,例如预设时间等,获取p2p网络的节点相关情况,同时公平、有效、不可篡改,有效提高资源利用率和获取内容的效率。基于同样的发明构思,如图5所示,本发明实施例还提供一种基于区块链的分布式存储贡献判定装置,包括:获取模块1,用于获取与待判定节点相关的各指标数据;处理模块2,用于对各指标数据进行评定,以获取各指标数据的评定值;判定模块3,用于根据各指标数据的评定值构建贡献判定模型,以根据贡献判定模型获取待判定节点的贡献值,进而根据贡献值直观获知对应节点的贡献情况。显然,通过公平公正的获取与待判定节点相关的各指标数据,并对各指标数据进行评定,以及根据评定值构建贡献判定模型,能够比较客观的反映出待判定节点在网络中的贡献情况和运行情况,因此,能够利于节点安全存储数据和\或乐意分享数据等,同时,也可以给节点的路由调度提供参考,确保数据快速高效获取,存储资源无法充分利用,进而有效提高系统的使用和用户体验。同时,上述相关数据和/或贡献值还可以用于验证和奖励发放的依据,既可靠,又可信。在一些实施例中,获取模块1包括:基本指标数据获取模块,用于获取与待判定节点相关的基本指标数据,其中,基本指标数据包括机器基本配置数据、在线时长数据和上行/下行带宽数据;贡献指标数据获取模块,用于获取与待判定节点相关的贡献指标数据,其中,贡献指标数据包括存储大小数据和流量大小数据。需要说明的是,上述指标数据均可以根据实际需要进行设置,本发明实施例仅以上述指标数据进行说明,而不是仅限于上述指标数据;在实际应用中,可以加入新的指标数据,以使得贡献判定模型更加完善,进而使得贡献值更加可靠和可信,在加入新的指标数据时,需要区块链中各节点达成共识,以保证贡献判定模型公平公正,获取的贡献值真实、有效、有说服力。在一些实施例中,处理模块2包括:基本指标数据评定模块,用于根据可用存储服务证明算法对基本指标数据进行评定,以获取基本指标数据评定值;存储大小数据的第一评定模块,用于根据时空证明算法对存储大小数据进行评定,以获取存储大小数据的第一评定值;存储大小数据的第二评定模块,用于根据复制证明算法对存储大小数据进行评定,以获取存储大小数据的第二评定值;流量大小数据评定模块,用于根据流量证明算法对流量大小数据进行评定,以获取流量大小数据评定值。显然,通过设置上述多种算法对相应数据进行评定,能够确保数据真实可靠,同时,通过设置两种算法对存储大小数据进行评定,进一步确保了数据的真实可靠性。在一个实施例中,处理模块还包括:基本指标数据验证模块,用于对基本指标数据进行验证,并将验证通过的数据发送给基本指标数据评定模块进行评定。本实施例中,基本指标数据验证模块包括:新增节点数据验证模块,用于对首次加入网络的节点的基本指标数据进行验证,并将验证通过的节点及其基本指标数据记录于智能合约;变更数据验证模块,用于当已加入网络的节点的基本指标数据变更时,对变更数据进行验证,并根据验证结果判定是否更新智能合约;自主验证模块,用于根据预定时间间隔对目标区域范围内的节点进行验证,以根据验证结果判定相应节点是否从网络中清除和/或是否更新智能约。显而易见地,通过以上方案,能够有效避免基本指标数据被伪造和篡改,能够有效提高基本指标数据的真实性,可靠性;同时,当节点退出网络时,能够及时获知,进而避免数据丢失。在一个实施例中,流量大小数据评定模块包括:流出流量大小数据评定模块,用于通过流量证明算法模块对流出流量大小数据评定,并将评定通过的流出流量大小数据评定值记录到智能合约;流入流量大小数据评定模块,用于通过流量证明算法模块对流入流量大小数据评定,并将评定通过的流入流量大小数据评定值记录到智能合约。本实施例中,流量证明算法模块包括:上报模块,用于存储节点(m)定期将流量信息上报给验证节点(v)。验证模块,用于验证节点(v)在收到存储节点(m)的流量信息时,验证其流出的流量大小数据和某节点流入流量大小数据是否相对应,其流入流量大小数据与某节点流出流量大小数据是否相对应,若对应,则将流量大小数据记录于智能合约,并将验证结果反馈给存储节点(m)。本实施例中,流量证明算法模块还包括:计算模块,用于根据验证结果构建计算模型,以通过计算模型获取流量大小数据评定值;本实施例中,计算模型如下所示:*40%+*60%由于节点流出流量是贡献资源,流入流量是获取资源,因此,流出贡献权重设置为60%,流入贡献权重设置为40%,但是,并不限于此,实践中可以在流出贡献权重大于流入贡献权重的前提下,结合需要进行调整设置。在一个实施例中,判定模块3包括:比例因子设置模块,用于根据各指标数据及各指标数据评定值的获取方式设置比例因子;调剂参数设置模块,用于根据节点可靠性程度,设置调剂参数;构建模块,用于根据比例因子、调剂参数和各指标的评定值构建贡献判定模型;输出模块,用于根据贡献判定模型输出贡献值。本发明通过提供基于多种算法的分布式存储贡献判定装置,能够根据预设条件,例如预设时间等,获取p2p网络的节点相关情况,同时公平、有效、不可篡改,有效提高资源利用率和获取内容的效率。显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1