首页 > 专利 > 杭州电子科技大学 > 一种支持物联网数据增量更新的区块链存储方法专利详情

一种支持物联网数据增量更新的区块链存储方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2020-07-30
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2020-12-04
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2021-11-30
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2040-07-30
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN202010748945.7 申请日 2020-07-30
公开/公告号 CN111949672B 公开/公告日 2021-11-30
授权日 2021-11-30 预估到期日 2040-07-30
申请年 2020年 公开/公告年 2021年
缴费截止日
分类号 G06F16/23G06F16/22G06F16/27G06Q20/38 主分类号 G06F16/23
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 5
权利要求数量 6 非专利引证数量 0
引用专利数量 2 被引证专利数量 0
非专利引证
引用专利 CN109377363A、CN109302405A 被引证专利
专利权维持 2 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 杭州电子科技大学 当前专利权人 杭州电子科技大学
发明人 殷昱煜、叶炳跃、梁婷婷、李尤慧子、万健 第一发明人 殷昱煜
地址 浙江省杭州市钱塘新区白杨街道2号大街 邮编 310018
申请人数量 1 发明人数量 5
申请人所在省 浙江省 申请人所在市 浙江省杭州市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
浙江千克知识产权代理有限公司 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
周希良
摘要
本发明公开了一种支持物联网数据增量更新的区块链存储方法。本发明对数据进行分块操作,处理成碎片数据后再计算MD5值,处理后的MD5值被传输至全节点域。全节点调用智能合约,执行自适应PoW算法完成上链操作。碎片数据被传输至存储域进行存储,存储节点存储成功后,发送存储凭证至全节点域。在数据更新阶段,边缘节点对比修改前后的碎片数据的MD5值,筛选出发生数据变更的碎片进行上传,降低了存储空间的浪费。本发明实现了数据的增量更新,有效降低了数据服务器中存储空间的消耗。此外,利用难度自适应的PoW算法,提高了区块链网络的交易效率。
  • 摘要附图
    一种支持物联网数据增量更新的区块链存储方法
  • 说明书附图:图1
    一种支持物联网数据增量更新的区块链存储方法
  • 说明书附图:图2
    一种支持物联网数据增量更新的区块链存储方法
  • 说明书附图:图3
    一种支持物联网数据增量更新的区块链存储方法
  • 说明书附图:图4
    一种支持物联网数据增量更新的区块链存储方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2021-11-30 授权
2 2020-12-04 实质审查的生效 IPC(主分类): G06F 16/23 专利申请号: 202010748945.7 申请日: 2020.07.30
3 2020-11-17 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种支持物联网数据增量更新的区块链存储方法,该方法涉及边缘域、全节点域、存储域和Tangle域,其特征在于:
所述边缘域中的边缘节点在数据存储阶段负责对数据进行预处理,将数据分块成碎片后传输至存储域,计算出来的MD5值传输至全节点域;在数据更新阶段,负责对碎片的MD5值进行对比,筛选出要二次上传的碎片;
所述全节点域中的全节点接收来自边缘域的索引信息,并调用智能合约对索引信息进行处理,智能合约在收到来自存储域的存储凭证后,通知全节点对交易进行打包,并通过执行自适应PoW算法,将交易发布到Tangle域中;
所述存储域接收来自边缘域的碎片数据,按MD5值在相应位置存储后,生成存储凭证,传输至全节点调用的智能合约处;
所述Tangle域存储有各类智能合约以及全节点发布的交易;交易中记录了碎片数据的MD5值以及对应的存储凭证;
该方法具体包括以下步骤:
步骤1:边缘节点完成对数据的收集,以二进制形式进行存储;
步骤2:边缘节点将完整数据均等分割成n份数据碎片,并由数据碎片计算得到对应的MD5值;
步骤3:打包数据索引对象rawJSON,将碎片的MD5值、版本号、多个数据源的存储地址、时间戳打包成索引信息,签名后将其发送到指定的全节点处;
步骤4:全节点对收到数据包中的签名进行验证,验证通过后调用DSC智能合约等待来自对应数据源的存储凭证;
步骤5:边缘节点将数据上传至多份数据源地址,数据源存储成功后,发送存储凭证到智能合约执行所在的交易上;
步骤6:智能合约接收到正确的存储凭证后,通知全节点进行交易发布;
步骤7:全节点打包索引信息以及对应的存储凭证,创建交易,执行自适应PoW算法,将交易广播至区块链网络中。

2.根据权利要求1所述的一种支持物联网数据增量更新的区块链存储方法,其特征在于:所述的Tangle域中包含有节点身份控制合约、节点身份管理合约和数据管理合约。

3.根据权利要求2所述的一种支持物联网数据增量更新的区块链存储方法,其特征在于:所述的节点身份管理合约包括节点身份创建合约和边缘节点注册合约;所述的数据管理合约包含数据存储合约和链上数据更新合约。

4.根据权利要求3所述的一种支持物联网数据增量更新的区块链存储方法,其特征在于:所述数据存储合约将收到的数据索引信息进一步处理,等待存储节点发送凭证信息,对比确认后,将相应的索引信息存储到Tangle域中的Tangle网络中;所述链上数据更新合约对更新后的数据进行切分,并与原始数据进行比较,筛选本次更新需上传的碎片数据,生成对应的索引信息。

5.根据权利要求3所述的一种支持物联网数据增量更新的区块链存储方法,其特征在于:所述数据存储合约用于实现自适应PoW算法的关键部分;该合约计算节点的贡献值,并通过映射方式得到PoW算法的执行难度。

6.根据权利要求1所述的一种支持物联网数据增量更新的区块链存储方法,其特征在于:通过全节点域与Tangle域的协作,共同完成对数据索引对象rawJSON的存储;全节点从边缘域接收rawJSON后,检查签名,确认该签名所属节点是否在本地进行过注册;接着,全节点将rawJSON发送到Tangle域中的数据存储合约进行处理,并返回一个签名消息给边缘节点,消息中包含执行数据存储合约的交易地址;数据存储合约被调用后,对rawJSON进行解析,获得数据源的身份标识信息,并进入等待状态,直到对应的数据源即存储节点发送存储凭证至当前交易;智能合约会检查存储凭证中签名是否与rawJSON中包含的数据源信息匹配,如果匹配,智能合约会通知全节点将该索引信息打包进交易,进行发布;如果不匹配,智能合约会一直处于等待状态。
说明书

技术领域

[0001] 本发明涉及通过数据分块操作、智能合约、低功耗共识算法等技术实现一种支持物联网数据增量更新的区块链存储方法,尤其在当前物联网设备产生的数据越来越多的情况下,应用碎片数据存储、低功耗共识算法等技术,可以实现物联网数据增量更新、提高区块链网络的交易效率。

背景技术

[0002] 越来越多的设备与互联网连接,成为物联网设备。随着这些设备收集数据的能力越来越强,其数据规模也越来越庞大。这些数据中往往蕴含了很大的价值,可以被用于分析一座城市的管理效率或是反映一个人的健康状况。因此,如何正确高效地对这些数据进行存储是利用这些数据的基础。
[0003] 利用区块链技术,可以解决物联网数据存储中存在的安全性差、防篡改性弱等问题,即将物联网设备的数据存储在中心化数据服务器中,对应的索引信息存储在区块链上,一旦数据被篡改,其生成的索引信息也会发生改变,通过对比存储在区块链上的索引信息,就能判断数据是否被篡改。然而,这种区块链存储方案仍然存在如下问题:
[0004] 1)数据服务器中会有大量存储空间被浪费。在数据更新阶段,为了保证链上索引信息的有效性,设备二次上传的数据不能覆盖原始数据,需要重新计算数据的存储地址进行存储,而二次上传的数据中必然会包含与原始数据内容相同的数据片段,这就会造成存储空间的浪费。
[0005] 2)无法确保数据的可靠性。传统方案中,设备根据一致性哈希算法计算出数据的存储地址,并将数据存储在某台数据服务器中。一旦该数据服务器发生单点故障,存储的数据就有可能丢失。
[0006] 3)传统的区块链共识算法不适合资源受限的物联网设备。参考比特币挖矿所需的算力,如果采用传统的工作量证明(Proof‑of‑Work,以下简称PoW)作为共识算法,运行在物联网设备上的区块链网络的交易效率会处于极低的水平。但如果选择降低PoW算法的难度,就会降低整个区块链网络的安全性。因此,为了适应物联网场景数据存储的特点,降低对设备算力的要求,需要设计一个低功耗的支持数据增量更新的区块链存储方法。
[0007] 区块链是一种综合运用了分布式数据存储、点对点传输、共识算法、加密算法等多种计算机技术的新型应用程序模型,其本质是一个去中心化的数据库。区块链的底层数据结构是通过加密算法生成的一系列数据块,这些数据块被称作区块。区块中记录了区块链网络中关于交易的信息,同时还包含了前一个区块的哈希值。这个特性保证了这一系列区块是不可篡改的,并且是不能在密码学上伪造的。
[0008] 区块链使用区块存储数据,通过共识算法来将新的区块发布在区块链上,并使用加密算法对发布的区块进行签名,以实现传输、访问环节的身份识别。此外,节点通过使用由脚本语言编写的智能合约,可以对链上数据进行较复杂的处理。当前流行的区块链按照结构可以被分为两类,一类是基于链的区块链,另一类是基于有向无环图的区块链。链式区块链中,区块按照区块上记录的时间戳顺序写入到区块链网络中。由于链式区块链不支持并发的交易执行,因此链式区块链的交易效率通常较低。当区块链上的交易数量增加时,区块链的性能就会线性下降。
[0009] 共识算法是用于解决分布式系统中数据一致性问题的算法,常见的共识算法包括传统分布式系统领域中的Paxos、Raft以及加密货币领域中使用的工作量证明、权益证明、委托权益证明等。当前最大的区块链网络——比特币就使用了基于工作量证明的一致性共识算法。该算法要求网络中的节点去解决一个难度较高但答案易于验证的问题。第一个解决了该问题的节点就获得了当前区块的记账权。但是,基于工作量证明的共识算法存在交易效率低、消耗算力高等问题。以比特币为例,比特币大约每10分钟产生一个区块,区块的大小被设定为1MB,仅仅能够包含3000‑4000笔交易,即平均每秒只能处理5‑7笔交易。随着比特币上需要处理的交易也越来越多,比特币网络的拥堵情况也越来越严重,交易费用也开始增加。针对这个问题,越来越多的人开始讨论区块链的扩展性问题。基于有向无环图的区块链带来了解决扩展性问题的新思路,有向无环图式区块链是由交易构成的,其中每个节点都可以是交易的发起方或交易的验证方。在节点向区块链网络广播交易前,它需要验证另外两个随机交易,并将当前发布交易链接到这两个随机交易上,这种处理交易的方式被称为异步处理模式,Tangle网络是有向无环图式区块链的一个实现。

发明内容

[0010] 本发明针对现有技术的不足,提出了一种支持数据增量更新、数据可靠性较高的区块链存储方法。
[0011] 本发明解决技术问题所采取的技术方案为:
[0012] 本发明方法涉及边缘域、全节点域、存储域和Tangle域。
[0013] 所述边缘域中的边缘节点在数据存储阶段负责对数据进行预处理,将数据分块成碎片后传输至存储域,计算出来的MD5值传输至全节点域;在数据更新阶段,负责对碎片的MD5值进行对比,筛选出要二次上传的碎片。
[0014] 所述全节点域中的全节点接收来自边缘域的索引信息,并调用智能合约对索引信息进行处理,智能合约在收到来自存储域的存储凭证后,通知全节点对交易进行打包,并通过执行自适应PoW算法,将交易发布到Tangle域中。
[0015] 所述存储域接收来自边缘域的碎片数据,按MD5值在相应位置存储后,生成存储凭证,传输至全节点调用的智能合约处。
[0016] 所述Tangle域存储有各类智能合约以及全节点发布的交易。交易中记录了碎片数据的MD5值以及对应的存储凭证;
[0017] 该方法具体包括以下步骤:
[0018] 步骤1:边缘节点完成对数据的收集,以二进制形式进行存储。
[0019] 步骤2:边缘节点将完整数据均等分割成n份数据碎片,并由数据碎片计算得到对应的MD5值。
[0020] 步骤3:打包数据索引对象rawJSON,将碎片的MD5值、版本号、多个数据源的存储地址、时间戳打包成索引信息,签名后将其发送到指定的全节点处。
[0021] 步骤4:全节点对收到数据包中的签名进行验证,验证通过后调用DSC智能合约等待来自对应数据源的存储凭证。
[0022] 步骤5:边缘节点将数据上传至多份数据源地址,数据源存储成功后,发送存储凭证到智能合约执行所在的交易上。
[0023] 步骤6:智能合约接收到正确的存储凭证后,通知全节点进行交易发布。
[0024] 步骤7:全节点打包索引信息以及对应的存储凭证,创建交易,执行自适应PoW算法,将交易广播至区块链网络中。
[0025] 本发明的有益效果:
[0026] 本发明在存储阶段,边缘域中的边缘节点对数据进行分块操作。在数据更新阶段,边缘节点并对索引信息进行对比,筛选出需要二次上传的碎片数据,实现了数据的增量更新,有效降低了数据服务器中存储空间的消耗。此外,利用难度自适应的PoW算法,提高了区块链网络的交易效率。

实施方案

[0031] 以下结合附图对本发明作进一步说明。
[0032] 如图1所示,该存储方法利用智能合约不可篡改和一致性的特点向模型中的各类节点提供节点身份管理服务和数据管理服务。Tangle域中的各类智能合约包括了节点身份控制合约(node identity controller contract,以下简称NICC)、节点身份管理合约(node identity manage contract,以下简称NIMC)和数据管理合约(data manage contract,以下简称DMC)等。
[0033] 如图2所示,NICC合约负责对方法中的节点进行统一管理,包括节点身份的识别、注册,以及在获取合法节点身份后对其行为的管理,如数据存储、数据更新、执行自适应PoW算法等。合约检查节点的身份标识信息(NODE‑ID)与其持有的公钥(PUB‑KEY)是否匹配。如果节点身份尚未创建,本合约会调用NIMC合约注册其身份。
[0034] NIMC合约通过节点主动发起注册的方式让其加入存储模型。子合约包括节点身份创建合约(node identity creation contract,以下简称NICC2)和边缘节点注册合约(light node register contract,以下简称LNRC):节点调用NICC2合约生成唯一的公私钥对,公钥经过单向哈希算法生成对应的NODE‑ID;新节点拥有合法身份后,可以向算力较强的节点请求调用LNRC合约,向该节点注册,由该节点代理其交易事务,成为该节点的边缘节点。
[0035] DMC合约用于实现设备数据及其索引信息的存储、读取与更新,子合约包括数据存储合约(data storage contract,以下简称DSC)和链上数据更新合约(on‑chain data update contract,以下简称ODUC):DSC合约将收到的数据索引信息进一步处理,等待存储节点发送凭证信息,对比确认后,将相应的索引信息存储到Tangle网络上。索引信息即数据索引对象(rawJSON),包含数据的哈希值、版本号、存储地址等信息;ODUC合约对更新后的数据进行切分,并与原始数据进行比较,筛选本次更新需上传的碎片数据,生成对应的索引信息。Tangle网络中的新交易会引用包含原始数据索引信息的旧交易。
[0036] DSC合约用于实现自适应PoW算法的关键部分。该合约计算节点的贡献值,并通过映射方式得到PoW算法的执行难度。
[0037] 1)边缘域
[0038] 边缘域中的边缘节点是物联网中资源受限的设备,如智能家具或传感器等。由于有限的存储空间及受限的算力,这些设备不参与区块链中交易的处理。边缘节点通过数据分块操作将数据切分成碎片并生成相应的索引信息。数据分块操作表示对二进制形式存储的数据进行平均切分。碎片数据与由碎片生成的索引信息被分别传输到存储域和全节点域进行处理。
[0039] 边缘域中的节点会预先准备数据索引对象rawJSON,该流程见算法1。rawJSON是以JSON格式序列化存储的摘要信息,其中包含了数据的MD5值、版本号、多个数据源的存储地址、时间戳等信息,rawJSON的结构如下:
[0040] {
[0041] "ID":"D836DFF83FD9DAB1FH2AEF8701 BA64CF",
[0042] "MD5":"c4d801 c2cf089d8f4f25d5af034867d7",
[0043] "VERSION":1,
[0044] "STORAGE_NODE_ID":{
[0045] "010966776006953D5567439E5E39F86A0D273BEE",
[0046] "E934765D0A68F93EEEB37255D359600677669010"
[0047] "F93EE376EB00596006255D76953D556EB3769010"
[0048] },
[0049] "TIMESTAMP":"1588989385*,
[0050] "LABEL":{
[0051] "小米温度计",
[0052] "卧室"
[0053] },
[0054] "SLICE":{
[0055] {
[0056] "ID":"AB1FD8019DH2AEF8BA64CF36DFF83FD7",
[0057] "MD5":"c2cf089d8f4f2501 af03d5486c4d87d7",
[0058] "SORT":1
[0059] },
[0060] {
[0061] "ID":"FF83F870D9DABD836D1FHBA64CF2AEF1",
[0062] "MD5":"89d8c4d801c2cf0f4f2534867d7d5af0",
[0063] "SORT":2
[0064] }
[0065] }
[0066] }
[0067] 边缘节点将数据DRaw切分为多个碎片 并通过MD5(Message‑Digest Algorithm 5)信息摘要算法为每份数据碎片计算MD5值
并生成数据索引对象rawJSON,
表示构成rawJSON的元数据信息,包括数据的哈希值、版本号、存储地址等。边缘节点对rawJSON签名后,将rawJSON传输到其注册的全节点。
[0068]
[0069]
[0070] 2)全节点域&Tangle域
[0071] 全节点域中的节点相比边缘域中的节点,其算力更强,被称为全节点。全节点借助部署在Tangle域中的智能合约,将索引信息打包进交易,收集来自存储域的存储凭证,最后执行自适应PoW算法,将交易传输至Tangle域中,完成交易上链、广播交易等操作。Tangle域中包括了Tangle网络、协调节点和各类智能合约。协调节点会定期检查Tangle网络中发布的交易,可以加快某一区域交易的确认速度、提高Tangle网络的安全性。
[0072] 通过全节点域与Tangle域的协作,共同完成对数据索引对象rawJSON的存储。全节点从边缘域接收rawJSON后,检查签名,确认该签名所属节点是否在本地进行过注册。接着,全节点将rawJSON发送到Tangle域中的DSC合约进行处理,并返回一个签名消息给边缘节点,消息中包含执行DSC合约的交易地址。DSC合约被调用后,会对rawJSON进行解析,获得数据源的身份标示信息,即STORAGE_NODE_ID字段,并进入等待状态,直到对应的数据源即存储节点发送存储凭证至当前交易。合约会检查存储凭证中签名是否与rawJSON中包含的数据源信息匹配,如果匹配,合约会通知全节点将该索引信息打包进交易,进行发布。如果不匹配,智能合约会一直处于等待状态,具体流程见算法2。
[0073]
[0074]
[0075] 3)存储域
[0076] 存储域中的节点是具有数据存储功能的数据服务器,被称为存储节点。存储节点根据边缘域传来的存储地址信息,将碎片的数据副本存储在多个独立存储节点中。数据存储完成后,每个存储节点会发送一份存储凭证到Tangle域,该凭证会被打包进待发布的交易中,作为数据存储的证明被记录在区块链上,具体流程见算法3。
[0077]
[0078] 图3为存储节点、边缘节点、全节点之间的数据流图。ODUC合约实现了数据的增量更新,具体流程见算法4。首先,边缘节点从全节点处获取原始数据所在的交易位置接着从存储节点获取原始数据。设备对原始数据修改后,按照相同的数据切分策略对新数据进行切分,得到piecenew list,并对其使用MD5算法得到md5new list。
设备对比得到的md5new list与之前计算得到的md5list,若值相同,则表示该MD5值对应的数据碎片未被修改,无需更新;若数值不同,则表示该数据碎片被修改了,需要被重传。设备筛选出需要被二次上传的数据碎片后,将其打包为md5upload list和pieceupload list。接下来的流程与数据存储阶段类似,不同之处在于,ODUC智能合约要求本次全节点验证的交易中必须包含原始交易,原始交易即原始数据碎片对应的索引信息所在的交易。全节点需要验证原始交易并将新交易链接至原始交易,用于数据修改的溯源。
[0079]
[0080]
[0081] 4)自适应PoW算法
[0082] 自适应PoW算法会根据全节点的行为动态调整PoW算法的执行难度。该算法在提高交易效率的同时,减少了系统因为PoW算法难度降低而增加的安全风险。
[0083] 定义系统中全节点i具有贡献值Ci的属性。贡献值表示节点在其最近的生命周期中对区块链网络的贡献程度。影响贡献值的因素包括索引对象rawJSON中SLICE字段序列的元素数目是否超过阈值、节点是否对Tangle网络中的其他交易进行了正确的验证、节点发布的交易是否合法。rawJSON中SLICE字段序列的每一个元素表示了一个数据碎片的MD5值,元素过多会加大Tangle网络查询和存储的压力。因此,模型设定了一个阈值以限制rawJSON中SLICE字段序列的元素数目。基于有向无环图的区块链需要解决懒惰问题,发生懒惰问题意味着全节点会始终验证大多数全节点都已经确认的旧交易,而不是验证那些等待确认的交易。Tangle网络中的协调节点会定期对Tangle网络中的交易进行检查,一旦发现节点的懒惰行为或恶意攻击行为,协调节点会将检查结果打包进交易,然后广播到Tangle网络中。全节点需要根据检查结果重新计算贡献值,并调整PoW算法的执行难度。
[0084] 全节点的Ci值越小,表示节点的贡献值越低,PoW算法的执行难度也就越大,发布交易所需的时间也就越多。因此,自适应PoW算法会鼓励节点执行有益于Tangle网络的操作,增加恶意节点发起攻击的成本,在提高交易效率的同时,防止系统安全性下降。
[0085] 使用以下公式计算全节点的贡献值:
[0086]
[0087] 其中 表示对不同属性的交易进行验证的影响因子, 表示恶意行为的影响因子, 表示rawJSON中SLICE字段元素数目的影响因子,λ1,λ2,λ3代表每个影响因子的权重值。
[0088] 被表示为:
[0089]
[0090] 其中,ni表示全节点在一个单位时间内发布的交易数。T1(t)代表时间衰减函数,该函数随着时间增加,值会逐渐减小。表示历史交易距离当前时间越近,重要性越大。α(b)代表行为behavior对贡献值影响的权重。当节点至少引用验证了一个待确认交易时,α(b)的值为N,否则,α(b)的值为‑N。α(b)可定义为:
[0091]
[0092] 表示被检测出的恶意行为对贡献值的影响因子,可以被表示为:
[0093]
[0094] 不同的恶意行为对应不同的β(b)值。行为破坏性越大,β(b)值越高。β(b)可被表示为:
[0095]
[0096] T2(t)也是时间衰减函数,但T2(t)中的常量值与T1(t)中的常量值不同,代表了两种不同的时间衰减特征。
[0097] 展示了rawJSON中SLICE字段序列的元素数目如何影响节点的贡献值,其公式如下:
[0098]
[0099] Numpieces表示当前交易中SLICE字段序列的元素数量,Numbase表示模型设定的阈值。 的值越大,节点的贡献值越低。
[0100] 在全节点打包完交易后,会把当前节点的NODE_ID、rawJSON中SLICE字段的内容、验证的交易位置 发送到区块链上的DAC合约,即难度自动设定合约,计算本次节点的贡献值,并设定PoW算法的执行难度。
[0101] 如图4所示,本发明方法的具体步骤是:
[0102] 步骤1:物联网设备(即边缘设备)完成对数据的收集,以二进制形式进行存储。
[0103] 步骤2:数据分块操作,边缘设备将完整数据均等分割成n份数据碎片,并由数据碎片计算得到对应的MD5值。
[0104] 步骤3:打包数据索引对象rawJSON,将碎片的MD5值、版本号、多个数据源的存储地址、时间戳打包成索引信息,签名后将其发送到指定的全节点处。
[0105] 步骤4:全节点对收到数据包中的签名进行验证,验证通过后调用DSC智能合约等待来自对应数据源的存储凭证。
[0106] 步骤5:边缘节点将数据上传至多份数据源地址,数据源存储成功后,发送存储凭证到智能合约执行所在的交易上。
[0107] 步骤6:智能合约接收到正确的存储凭证后,通知全节点进行交易发布。
[0108] 步骤7:全节点打包索引信息以及对应的存储凭证,创建交易,执行自适应PoW算法,将交易广播至区块链网络中。

附图说明

[0027] 图1为本发明使用的系统架构图。
[0028] 图2为智能合约架构图。
[0029] 图3为存储节点、边缘节点、全节点之间的数据流图。
[0030] 图4为本发明执行流程图。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号