一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于区块链中双链技术的数据共享系统及方法与流程

2021-10-30 03:21:00 来源:中国专利 TAG:区块 方法 共享 链中 数据


1.本发明涉及区块链技术领域,尤其涉及一种基于区块链中双链技术的数据共享系统及方法。


背景技术:

2.区块链是最近比较时兴的一项技术,它采用分布式的存储,利用块链式数据结构来验证与存储数据,利用分布式节点共识算法来生成和更新数据,利用密码学的方式保证数据传输和访问的安全,利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新分布式基础架构与计算范式。
3.在智慧农业中,涉及到许多病虫害数据的分类任务,要想获得较高的分类精确度,病虫害图片的数量是一个很关键因素,因此病虫害图片数据具有较高的研究与利用价值,但是目前由于缺少有效激励机制以及版权问题,一般的个人或者机构不愿意数据共享,数据共享度低;另一方面,现有的区块链技术所采用计算哈希的工作量证明(proof of work, pow)共识算法,造成了极大的算力浪费。


技术实现要素:

4.有鉴于此,本发明提出一种基于区块链中的双链技术的数据共享系统及方法,以解决数据共享程度低以及存在的数据版权问题,同时也解决算力浪费问题,节省社会资源。
5.第一方面,提供了一种基于区块链中双链技术的数据共享系统,包括资源链模块与任务链模块, 其中,资源链模块:用于数据上传与存储,包含数据上传模块,数据特征提取模块,数据判断验证模块;任务链模块:用于发布训练任务,进行任务训练以及模型提交验证,包含任务发布模块,模型训练模块,模型共识模块,模型存储模块。
6.进一步,所述的一种基于区块链中双链技术的数据共享系统中,所述的资源链模块中的数据上传模块,用户使用电脑或者手机将图片数据上传至客户端服务器中,并进行暂时存储,等待后续数据验证,其中的客户端服务器是linux服务器。
7.进一步,所述的一种基于区块链中双链技术的数据共享系统中,所述的资源链模块中的数据特征提取模块,用于对上传的图片运用深度卷积神经网络进行特征提取。
8.进一步,所述的一种基于区块链中双链技术的数据共享系统中,所述的资源链模块中的数据判断验证模块,运用拜占庭算法,验证提交的图片是否是新图片(数据)。
9.进一步,所述的一种基于区块链中双链技术的数据共享系统中,所述的任务链模块中的任务发布模块,用于管理员发布模型训练任务,等待节点进行模型训练。
10.进一步,所述的一种基于区块链中双链技术的数据共享系统中,所述的任务链模块中的模型训练模块,各节点读取任务中的数据的地址,根据地址从资源链模块中获取训练图像,利用自己的算力进行线下模型训练。
11.进一步,所述的一种基于区块链中双链技术的数据共享系统中,所述的任务链模块中的模型共识模块,基于pow共识机制原理,当节点训练过程中准确率超过阈值a时,将模型存储到缓冲数据库中并广播模型存储地址,等待其他子节点的读取和验证,验证通过则将模型信息写入区块中,并给与奖励,否则验证不成功则继续训练。
12.进一步,所述的一种基于区块链中双链技术的数据共享系统中,所述的任务链模块中的模型存储模块,将验证成功的模型信息存储在区块链的区块中,并将验证成功的模型文件存储在hadoop中。
13.第二方面,提供了一种基于区块链中双链技术的数据共享方法,包括资源链上链过程以及任务链上链过程,其中资源链上链过程包括如下步骤:s101)数据上传:用户使用手机或者电脑提交图片数据到资源服务器,在上传图片同时用户需要选择图片所属类别,所述的类别包括作物种类和疾病种类两类,然后将图片暂时存储在客户端上,其中客户端是一台服务器, 下称客户端。
14.s102)数据验证,数据上传模块内置了二分类模型,可以对用户上传的图片进行初步判断,如果图片属于用户上传图片时选择的类别则验证通过,进行s103)操作,否则验证失败返回失败信息。
15.s103) 特征提取:将验证通过的图片使用卷积神经网络进行特征提取,形成唯一图片id,其中图片id为提取后的图像特征。
16.s104)提交上链请求:系统使用拜占庭算法进行广播和验证,具体包含如下步骤:s104.1)客户端向资源链主节点发送验证请求:客户端将图像id广播至资源链主节点,其中资源链主节点就是资源链服务器。
17.s104.2)资源链主节点将验证请求和图像id广播至所有资源链子节点,其中资源链子节点是资源链中除主节点服务器外的其他服务器。
18.s104.3)所有资源链子节点都执行验证请求,并将结果发回客户端,具体步骤如下:sa1)资源链子节点将区块链上的区块数据下载到本地,将新图id与区块中的图片id进行余弦相似度比较;sa2)若id相似度超过阈值b则说明该图片已经存储在区块链上,返回“验证不通过”信息,若余弦相似度小于阈值b时,返回“验证通过”信息。
19.s104.4)客户端需要等待不低于(n

1)/3 个资源链子节点发回“验证通过”的结果,作为上链依据,其中n为系统中所有节点的个数。
20.s104.5) 由资源链中心节点将该图片id,写入区块中并给予图片上传用户积分奖励a1,所述的上传用户即为同过手机或者电脑上传图片至客户端的用户。
21.进一步,所述的一种基于区块链中双链技术的数据共享方法中,所述的任务链上链过程包括如下步骤:s201)提交训练任务:区块链中的任务链中心节点随机选择数量为c的图片,形成任务文件,然后将任务广播到区块链中的任务链子节点。
22.s202) 模型训练:子节点接受到训练任务后,加载任务文件中的图片地址从hadoop中下载图片,形成训练集,然后使用automl对其进行训练,不断调整模型类别和参数,直至模型在测试集上准确率超过阈值d,如果训练集或者测试集中包含用户上传的图
片,则给予用户积分奖励a2。
23.s203)模型共识:当某一任务链节点训练的模型在测试集上的准确率超过阈值d时,如任务链子节点e,会对整个网络进行广播,并将训练好的模型存储在hadoop中,等待任务链其他子节点验证:子节点将模型在测试集上进行验证,如果准确率超过阈值d,则返回成功信息,如果没有则返回失败信息。
24.s204)模型存储:如果返回成功信息的数量多于f,则任务链子节点e将模型信息写入区块链中并获得一定的奖励a3,用户的总积分是上述a1、a2、a3积分的总和,总积分可以换取商品或者获取更多数据的下载权限或者是其他订阅服务。
25.进一步,所述步骤s202)模型训练中所述的automl模型训练方式,使用基于谷歌tensorflow的autokeras进行模型训练工作。
26.本发明的有益效果是:(1)通过积分机制,激励用户上传数据,实现数据共享,解决了深度学习过程中数据集少而导致的模型训练准确率不高的问题;(2)对上传的数据进行验证,解决数据共享中的版权问题,保护了用户切身利益;(3)运用pow算力用来进行大数据的深度学习模型训练,降低了成本,节约了社会资源,将算力用到有意义的工作上,有效解决算力浪费问题;(4)任务链读取资源链上的数据,资源链可以加载任务链信息,双链即独立又统一,实现了数据存好、数据用好、数据循环好。
附图说明
27.图1 是本发明实施例中提供的基于区块链中双链技术的数据共享系统的系统总模块图;图2是本发明实施例中提供的基于区块链中双链技术的数据共享方法中资源链上链流程图;图3是本发明实施例中提供的基于区块链中双链技术的数据共享方法中任务链上链流程图;图4是本发明实施例中提供的基于区块链中双链技术的数据共享方法中资源链区块结构图;图5是本发明实施例中提供的基于区块链中双链技术的数据共享方法中任务链区块结构图。
具体实施方式
28.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
29.本发明实施例中,一种基于区块链中双链技术的数据共享系统,图1示出了本发明实施例提供的基于区块链中双链技术的数据共享系统及方法系统总模块图。
30.参照图1,该系统包括资源链模块11与任务链模块12。
31.资源链模块11:用于数据上传与存储,包含数据上传模块,数据特征提取模块,数据判断验证模块。
32.数据上传模块,用户使用电脑或者手机将图片数据上传至客户端服务器中,并进行暂时存储,等待后续数据验证,其中的客户端服务器是linux服务器,安装在服务器上使用java web开发,负责将用户上传的图片进行接受并暂时存储在mysql数据库中,同时可以调用超级账本中心节点完成数据上传到区块链的操作,同时安装有python解释器和卷积神经网络算法进行二分类识别,卷积神经网络使用resnet。
33.数据特征提取模块,用于对上传的图片运用深度卷积神经网络进行特征提取,安装有训练好的resnet101模型,最后全连接层修改为128个神经元,负责输出图像特征,其中训练使用的数据来源于plantvillage数据集,使用tensorflow实现resnet101模型并将最后一层的softmax激活函数去除并把最后一层神经元从1000修改为128最后输出1x128维向量,向量中的每个数值保留两位小数并归一化为0

1之间,首位以此链接形成图片id,至此resnet101作为植物图片特征提取器。
34.数据判断验证模块,运用拜占庭算法,验证提交的图片是否是新图片(数据)。
35.任务链模块12:用于发布训练任务,进行任务训练以及模型提交验证,包含任务发布模块,模型训练模块,模型共识模块,模型存储模块。
36.任务发布模块,用于管理员发布模型训练任务,等待节点进行模型训练。
37.模型训练模块,各节点读取任务中的数据的地址,根据地址从资源链模块中获取训练图像,利用自己的算力进行线下模型训练。
38.模型共识模块,基于pow共识机制原理,当节点训练过程中准确率超过阈值a时,将模型存储到缓冲数据库中并广播模型存储地址,等待其他子节点的读取和验证,验证通过则将模型信息写入区块中,并给与奖励,否则验证不成功则继续训练。
39.模型存储模块,将验证成功的模型信息存储在区块链的区块中,并将验证成功的模型文件存储在hadoop中。
40.对应于上文实施例所述的基于区块链中双链技术的数据共享系统的系统总模块图,本发明提供一种基于区块链中双链技术的数据共享方法,包括资源链上链过程与任务链上链过程。
41.参照图2,资源链上链过程包括如下步骤:s101)数据上传:如图2中的21所示,用户使用手机或者电脑提交图片数据到客户端服务器,下称客户端,客户端安装的java web和mysql环境,用于获取用户上传的图片数据和类别选项,其中类别选项为包括作物种类和疾病种类两类,如脐橙,黄龙病,果实部位,上传的图片数据和类别选项暂时存储在客户端上,s102)数据验证:如图2中的22所示,数据上传模块内置了二分类模型,可以对用户上传的图片进行初步判断,如果图片属于用户上传图片时选择的类别则验证通过,具体过程为将暂存的图片数据输入到训练好的resnet二分类模型中,得出该图片是否与用户选择的类别选项已知,如果一致则等进行s103)操作如果不一致则返回错误信息,否则验证失败返回失败信息,让用户重新上传。
42.s103) 特征提取:如图2中的23所示,将验证通过的图片使用卷积神经网络进行特征提取,形成唯一图片id,其中图片id为提取后的图像特征。
43.s104)提交上链请求:系统使用拜占庭算法进行广播和验证,具体包含如下步骤:s104.1)客户端向资源链主节点发送验证请求:如图2中的24.1所示,首先客户端使用超级账本提供的sdk将把上链请求发送到区块链节点上,其中上链请求中包含图像id,时间戳,以往数据的哈希值,中心节点会把上链请求和智能合约发送至资源链主节点,其中资源链主节点就是资源链服务器。
44.s104.2)如图2中的24.2所示,资源链主节点将验证请求和图像id广播至所有资源链子节点,其中资源链子节点是资源链中除主节点外的其他节点。
45.s104.3)如图2中的24.3所示,所有资源链子节点都执行验证请求,并将结果发回客户端,具体步骤如下:sa1)资源链子节点将区块链上的区块数据下载到本地,将新图id与区块中的图片id进行余弦相似度比较;sa2)若id相似度超过阈值b则说明该图片已经存储在区块链上,返回“验证不通过”信息,若余弦相似度小于阈值b时,返回“验证通过”信息。
46.所述的阈值b的取值范围为0到1,越接近1说明新图片与区块中已有的某一张图片越相似,则不同意上链,此实施例中b取值为0.6。
47.s104.4)如图2中的24.4所示客户端需要等待不低于(n

1)/3 个资源链子节点发回“验证通过”的结果,作为上链依据,其中n为系统中所有节点的个数。
48.s104.5) 如图2中的24.5所示,由资源链中心节点将该图片id,写入区块中并给予图片上传用户积分奖励a1,所述的上传用户即为同过手机或者电脑上传图片至客户端的用户。
49.图4示出了本发明实施例中提供的基于区块链中双链技术的数据共享方法中资源链区块结构图。用户的id和图片id会写入资源链区块体中,并会生成数据的哈希值,确保数据不会被篡改。
50.参照图3,任务链上链过程包括如下步骤:s201)提交训练任务:如图3中的31所示,区块链中的任务链中心节点随机选择数量为c的图片,此实施例中c取值5000,c的值根据节点算力和已有的图片数量进行动态调整,选取出来的图片形成任务文件,然后将任务广播到区块链中的任务链子节点。
51.所述的c的值根据节点算力和已有图片数量进行动态调整,即节点使用英伟达显卡进行计算,全部节点的算力总和代表集群的计算能力,动态调整图片数量使训练时间维持在15分钟左右。
52.s202) 模型训练:如图3中的32所示,子节点接受到训练任务后,加载任务文件中的图片地址从hadoop中下载图片,形成训练集,然后使用automl对其进行训练,不断调整模型类别和参数,直至模型在测试集上准确率超过阈值d,如果训练集或者测试集中包含用户上传的图片,则给予用户积分奖励a2。
53.所述的automl 模型训练方式,使用基于谷歌tensorflow的autokeras进行模型训练工作。
54.s203)模型共识:如图3中的33所示,当某一任务链节点训练的模型在测试集上的准确率超过阈值d时,如任务链子节点e,会对整个网络进行广播,并将训练好的模型存储在hadoop中,等待任务链其他子节点验证:子节点将模型在测试集上进行验证,如果准确率超
过阈值d,则返回成功信息,如果没有则返回失败信息。
55.所述的阈值d会根据所选图片质量进行动态调整,此实施例中设置为0.8。如果最快训练完成节点训练时间小于15分钟,则下次任务的d设置为:此次训练实际与15分钟相比,每少1分钟d值增加0.01,不满1分钟按照1分钟算,最高0.95;如果最快训练完成节点训练完成时间超过15分钟,则下次任务的d取值为:此次训练实际与15分钟相比,每多1分钟d值减少0.01,不满1分钟按照1分钟算,最低0.65;如果某次设置阈值为0.65,节点最快训练完成时间超过30分钟或者30分钟内无节点报告训练完成,则此次任务失效重新选择图片进行任务分发与训练。
56.s204)模型存储:如图3中的34所示,如果返回成功信息的数量多于f,则任务链子节点e将模型信息写入区块链中并获得一定的奖励a3,用户的总积分是上述a1、a2、a3积分的总和,总积分可以换取商品或者获取更多数据的下载权限或者是其他订阅服务。
57.图5示出了本发明实施例中提供的基于区块链中双链技术的数据共享方法中任务链区块结构图。用户的id、任务id和模型地址会写入任务链区块体中,并会生成数据的哈希值,确保数据不会被篡改。
58.本发明实施例中基于区块链中双链技术的数据共享方法,每个节点上安装“算力应用组件包”,其中“算力应用组件包”中包含有英伟达cuda安装文件、cudnn 深度学习训练驱动、python3.6安装文件、tensorflow的gpu版本安装包以及快速安装脚本。用户双击快速安装脚本,电脑会首先安装cuda然后将cudnn复制到cuda根目录下,然后安装python3.6然后安装tensorflow的gpu 版本,最后安装一些必要的python第三方库比如pyhdfs操作hadoop文件系统,全部安装成果后等待任务链发放任务。谷歌tensorflow的autokeras工具,在安装上述“算力应用组件包”时同时安装。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜