CN111797068A - 一种基于区块链和ipfs的物联网数据管理系统和方法 - Google Patents
一种基于区块链和ipfs的物联网数据管理系统和方法 Download PDFInfo
- Publication number
- CN111797068A CN111797068A CN202010704983.2A CN202010704983A CN111797068A CN 111797068 A CN111797068 A CN 111797068A CN 202010704983 A CN202010704983 A CN 202010704983A CN 111797068 A CN111797068 A CN 111797068A
- Authority
- CN
- China
- Prior art keywords
- internet
- snapshot
- data
- things
- ipfs
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于区块链和IPFS的物联网数据管理系统,用于物联网数据的存储和管理,包括:分支划分模块:根据数据属性将物联网数据划分为多个分支,分支为同一属性的物联网数据;快照生成模块:将各分支内的物联网数据切分为多个快照文件;存储管理模块:通过分支合并,向IPFS系统中存储或索引快照文件;智能合约:存储快照切分规则和快照索引表,分别用于管理快照文件的切分和快照文件的索引,与现有技术相比,本发明具有存储价格低、资源利用率高且保证隐私安全等优点。
Description
技术领域
本发明涉及区块链领域,尤其是涉及一种基于区块链和IPFS的物联网数据管理系统和方法。
背景技术
随着物联网技术的不断发展和广泛应用,物联网设备的数据生成总量大幅度提升。现有物联网设备的计算、存储和带宽有限,大规模的物联网设备管理和数据存储就成了一个令人头疼的问题。如何实现物联网设备网络的有效标识,保证信息的传输安全,同时对设备产生的数据进行有效的管理,是许多物联网的应用场景都需要解决的问题,而区块链的去中心化特性以及非对称加密算法的使用,可以有效地降低物联网系统的维护成本,同时提高网络的抗攻击能力。
随着诸如IPFS的去中心化存储系统的出现,在去中心化环境中存储大规模数据有了可能,这些存储系统通过使用Merkle DAG或者分布式哈希表,将区块链中原本高度冗余的账本数据进行拆分存储,可以降低数据的存储成本。
如Ayoade Gbadebo等人提出使用一种可信的处理环境(TEE)来维护并且存储物联网设备记录的信息,Ali Muhammad Salek等人提出使用IPFS存储物联网设备的隐私数据。IPFS作为一种去中心化的文件存储协议,以公开文件数据为代价保证了其内容的可信程度,用另一种方式实现了TEE的需求。
通过结合区块链和去中心化存储系统能够以较低的开销实现物联网数据的安全管理,然而现有的基于区块链的物联网数据管理应用依然有着存储价格高、资源利用率低、隐私难以保证的问题,会在记录数据时产生大量的存储冗余。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种存储价格低、资源利用率高且保证隐私安全的基于区块链和IPFS的物联网数据管理系统和方法。
本发明的目的可以通过以下技术方案来实现:
一种基于区块链和IPFS的物联网数据管理系统,用于物联网数据的存储和管理,包括:
分支划分模块:根据数据属性将物联网数据划分为多个分支,分支为同一属性的物联网数据;
快照生成模块:将各分支内的物联网数据切分为多个快照文件;
存储管理模块:通过分支合并,向IPFS系统中存储或索引快照文件;
智能合约:存储快照切分规则和快照索引表,分别用于管理快照文件的切分和快照文件的索引。
进一步地,所述的数据属性包括数据名称、数据生产者或数据来源,即拥有相同名称、相同生产者或是相同数据来源的物联网数据可以被分作同一分支,例如:某地连续的气温数据可以被视作是一个分支;某个物联网设备记录的所有数据可以被视作是一个分支;针对某个特定商品的溯源数据也可以被视作是一个分支。但是在数据更新存储过程中,拥有相同名称或者相同数据来源的分支才可能发生分支合并,而以相同生产者划分的分支将仅由单机维护,一般不会有合并分支的需求。
进一步地,所述的快照文件以唯一对应的哈希值为依据,存储于IPFS系统中。在本发明的区块链当中,智能合约的每一笔调用交易都会被分别存储在不同区块当中,它们以生成时间的先后次序连接在一起,并且凭借哈希值支持迭代验证。
进一步地,所述的快照生成模块将各分支内的物联网数据切分为多个快照文件,具体为:根据各物联网数据的生成时间将各分支内的物联网数据切分为多个快照文件,可以按照生成时间的先后顺序进行排序,即快照文件是分支中从一个时间点到另一个时间点的状态变化的集合。
更进一步地,同一时刻产生的物联网数据具有相同的时间戳,所述的快照生成模块根据各时间戳所处的时间区间,将对应的物联网数据划分为多个快照文件。所述的时间区间的长度主要根据区块链平台的不同,在综合考虑时效性等因素下通过经验对时间区间进行划分。
一种如所述的基于区块链和IPFS的物联网数据管理系统的数据存储管理方法,包括以下步骤:
S1:获取新生成的物联网数据,进行分支和快照文件的划分并提交上链;
S2:从智能合约中读取新物联网数据所属快照文件的哈希值;
S3:利用该哈希值从IPFS系统中获取对应快照文件;
S4:合并快照文件内容,得到新版快照文件;
S5:将新版快照文件存入IPFS系统,并获取对应的新哈希值;
S6:将新哈希值存入智能合约替换旧值。
进一步地,所述的步骤S3具体包括:
S31:判断哈希值是否为空,若是,则执行步骤S32,否则执行步骤S33;
S32:新建空白快照文件;
S33:利用哈希值从IPFS系统中下载旧快照文件。
进一步地,该方法中,区块链上的所有协作者均按照智能合约中存储的快照切分规则进行快照文件的切分,所以分支中不同快照文件之间的数据内容不存在重合,这样在网络延时较大的情况下,可以允许协作者同时修改分支中的连续多个快照而不会造成内容的重叠。
优选地,考虑到IPFS的文件上传、新快照文件的生成、区块链的交易上链和新区块的广播都需要消耗一定的时间,分支合并过程存在快照冲突的可能,该方法的步骤S3之前还包括冲突检测,所述的冲突检测通过对合约事件的监听实现。
进一步优选地,所述的冲突检测具体包括:
监听IPFS系统中与新物联网数据所属快照文件对应的快照文件是否已经发生更新,若是,则重新将新物联网数据提交上链并返回执行步骤S2,否则继续执行步骤S3。如果协作者提交的快照文件还未上链,但是对应快照的版本已经发生了更新,则证明冲突将要发生,为了避免其他协作者的数据丢失,可以重新提交并执行分支合并流程,这一监听将持续一定的时间,直到新的快照文件无冲突上链为止。
与现有技术相比,本发明具有以下优点:
1)本发明中将物联网数据进行分支和快照文件的划分,并通过分支合并流程创造一种数据缓存迭代机制,使得物联网数据将能够有序地存储,提高物联网数据的更新效率和资源利用率;
2)本发明通过设置智能合约,对分支和快照文件的划分以及快照文件的索引进行管理,保证物联网数据存储过程和结果的可信程度,提高数据存储和管理的安全性;
3)本发明中每个快照文件都以唯一确定的哈希值为依据被存储,随着分支的合并进行少量的版本更新,在使用区块链和去中心化存储的过程中,能够以最小的冗余记录最多的内容,使得区块链调用的频率大幅降低,降低使用成本并提高处理性能;
4)本发明的物联网数据管理系统和方法可以满足多种场景的需求,适用于智能家居、车联网、传感器网络等场景,均能够起到降低使用成本,提高网络安全以及数据处理性能等作用,适用范围广,实用性强。
附图说明
图1为以数据类型为分支的快照文件划分;
图2为本发明方法流程示意图;
图3为同时合并多个连续快照文件示意图;
图4为快照文件冲突示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
实施例
本发明提供一种基于区块链和IPFS的物联网数据管理系统,用于物联网数据的存储和管理,包括:
分支划分模块:根据数据属性将物联网数据划分为多个分支;
快照生成模块:将各分支内的物联网数据切分为多个快照文件;
存储管理模块:通过分支合并,向IPFS系统中存储或索引快照文件;
智能合约:存储快照切分规则和快照索引表,分别用于管理快照文件的切分和快照文件的索引。
如图1所示,分支作为数据存储以及版本控制的基本单位,是整个物联网数据管理系统的基础,本发明中,分支定义为同一属性的物联网数据,即拥有相同名称、相同生产者或是相同数据来源的数据可以被分作同一分支。例如:某地连续的气温数据可以被视作是一个分支;某个物联网设备记录的所有数据可以被视作是一个分支;针对某个特定商品的溯源数据也可以被视作是一个分支。然而在协作的过程中,拥有相同名称或者相同数据来源的分支才可能发生分支合并,以相同生产者为划分的分支将仅由单机维护,不能进行分支合并。
在大部分的物联网场景中,设备产生的数据之间缺少一定的逻辑联系,为了赋予这些数据一个逻辑坐标,可以生成一个时间戳,并以时间的先后为依据对各数据进行排序。本发明中,快照文件的切分就是以各物联网数据的时间戳为依据,即照文件是分支内从一个时间点到另一个时间点的状态变化的集合。对于新生成的物联网数据,本发明其生成时间为依据,将提交数据按照智能合约中定义的快照生成规则划分为分支和快照文件,以实现每一份快照的自动化提交。
因为在区块链上,任何的交易在上链之后都不能够再发生修改,所以我们定义的每一个快照都将以唯一确定的哈希值为依据被存储,并且随着分支的合并进行少量的版本更新。由此,本发明在使用区块链和去中心化存储的过程中,能够以最小的冗余记录最多的内容。
如图2所示,本发明还提供一种基于区块链和IPFS的物联网数据存储管理方法(主要为分支合并流程),增加了对智能合约的调用过程,分支合并流程主要包括以下七个步骤:
1、从智能合约读取分支中对应快照文件的哈希值;
2、使用该哈希值从IPFS系统下载对应的旧快照文件;
3、使用智能合约规定的校验方式对文件进行验证;
4、向快照文件中写入本地缓存的数据修改操作,进行快照合并;
5、将新版快照文件上传到IPFS系统;
6、获取一个新版快照的哈希值;
7、将该哈希值提交到智能合约,替换掉旧哈希值。
该流程中,因为所有的协作者都按照智能合约规定的方式进行快照划分,所以分支中不同数据文件之间的数据内容不存在重合。如图3所示,在网络延时较大的情况下,本发明可以允许协作者同时修改分支中的连续多个快照,而且不会造成内容的分叉。
考虑到IPFS的文件上传、新快照文件的生成、区块链的交易上链和新区块的广播都需要消耗一定的时间,分支合并过程存在快照冲突的可能。
图4就展示了这种情况的发生。由于提交1和提交2同时写入快照2,导致了两个版本快照文件之间的哈希值在合约内互相覆盖,必然造成其中一个提交内容的丢失。
为了检测这种冲突的发生,我们在分支合并流程开始时开启一次针对合约事件的监听。如果协作者提交的快照文件还未上链,但是对应快照的版本已经发生了更新,则证明冲突将要发生。为了避免其他协作者的数据丢失,可以重新执行分支合并流程,这一监听将持续一定的时间,直到新的快照哈希无冲突上链为止。
本发明提供的系统和方法可以使用以太坊和IPFS实现,使用Solidity编写和合约,并借助Java和Web3j实现了区块链和IPFS的对接。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的工作人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种基于区块链和IPFS的物联网数据管理系统,用于物联网数据的存储和管理,其特征在于,包括:
分支划分模块:根据数据属性将物联网数据划分为多个分支;
快照生成模块:将各分支内的物联网数据切分为多个快照文件;
存储管理模块:通过分支合并,向IPFS系统中存储或更新快照文件;
智能合约:存储快照切分规则和快照索引表,分别用于管理快照文件的切分和快照文件的索引。
2.根据权利要求1所述的一种基于区块链和IPFS的物联网数据管理系统,其特征在于,所述的数据属性包括数据名称、数据生产者或数据来源。
3.根据权利要求1所述的一种基于区块链和IPFS的物联网数据管理系统,其特征在于,所述的快照文件以唯一对应的哈希值为依据,存储于IPFS系统中。
4.根据权利要求1所述的一种基于区块链和IPFS的物联网数据管理系统,其特征在于,所述的快照生成模块将各分支内的物联网数据切分为多个快照文件,具体为:根据各物联网数据的生成时间将各分支内的物联网数据切分为多个快照文件。
5.根据权利要求4所述的一种基于区块链和IPFS的物联网数据管理系统,其特征在于,同一时刻产生的物联网数据具有相同的时间戳,所述的快照生成模块根据各时间戳所处的时间区间,将对应的物联网数据划分为多个快照文件。
6.一种如权利要求1-5任一项所述的基于区块链和IPFS的物联网数据管理系统的数据存储管理方法,其特征在于,包括以下步骤:
S1:获取同一时间区间内新生成的物联网数据,进行分支和快照文件的划分并提交上链;
S2:从智能合约中读取新物联网数据所属快照文件的哈希值;
S3:利用该哈希值从IPFS系统中获取对应快照文件;
S4:合并快照文件内容,得到新版快照文件;
S5:将新版快照文件存入IPFS系统,并获取对应的新哈希值;
S6:将新哈希值存入智能合约替换旧值。
7.根据权利要求6所述的基于区块链和IPFS的物联网数据存储管理方法,其特征在于,所述的步骤S3具体包括:
S31:判断哈希值是否为空,若是,则执行步骤S32,否则执行步骤S33;
S32:新建空白快照文件;
S33:利用哈希值从IPFS系统中下载旧快照文件。
8.根据权利要求6所述的一种基于区块链和IPFS的物联网数据存储管理方法,其特征在于,该方法中,区块链上的所有协作者均按照智能合约中存储的快照切分规则进行快照文件的切分。
9.根据权利要求6所述的一种基于区块链和IPFS的物联网数据存储管理方法,其特征在于,该方法的步骤S3之前还包括冲突检测,所述的冲突检测通过对合约事件的监听实现。
10.根据权利要求9所述的一种基于区块链和IPFS的物联网数据存储管理方法,其特征在于,所述的冲突检测具体包括:
监听IPFS系统中与新物联网数据所属快照文件对应的快照文件是否已经发生更新,若是,则重新将新物联网数据提交上链并返回执行步骤S2,否则继续执行步骤S3。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010704983.2A CN111797068A (zh) | 2020-07-21 | 2020-07-21 | 一种基于区块链和ipfs的物联网数据管理系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010704983.2A CN111797068A (zh) | 2020-07-21 | 2020-07-21 | 一种基于区块链和ipfs的物联网数据管理系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111797068A true CN111797068A (zh) | 2020-10-20 |
Family
ID=72808231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010704983.2A Pending CN111797068A (zh) | 2020-07-21 | 2020-07-21 | 一种基于区块链和ipfs的物联网数据管理系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111797068A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360940A (zh) * | 2021-06-04 | 2021-09-07 | 永旗(北京)科技有限公司 | 一种基于区块链的物联网数据管理方法 |
CN116319815A (zh) * | 2023-05-17 | 2023-06-23 | 驿羚江苏大数据有限公司 | 引入SaaS特征的云数据放置策略管理系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190018887A1 (en) * | 2017-04-12 | 2019-01-17 | Vijay K. Madisetti | Method and System for Tuning Blockchain Scalability, Decentralization, and Security for Fast and Low-Cost Payment and Transaction Processing |
CN109714652A (zh) * | 2018-12-18 | 2019-05-03 | 京信通信系统(中国)有限公司 | Odn管理系统的数据存储方法、系统、存储介质及设备 |
CN109889522A (zh) * | 2019-02-25 | 2019-06-14 | 重庆邮电大学 | 一种基于区块链的物联网信息安全保护方法 |
CN111177080A (zh) * | 2019-12-31 | 2020-05-19 | 西安理工大学 | 一种基于区块链和ipfs的知识图谱存储与验证方法 |
-
2020
- 2020-07-21 CN CN202010704983.2A patent/CN111797068A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190018887A1 (en) * | 2017-04-12 | 2019-01-17 | Vijay K. Madisetti | Method and System for Tuning Blockchain Scalability, Decentralization, and Security for Fast and Low-Cost Payment and Transaction Processing |
CN109714652A (zh) * | 2018-12-18 | 2019-05-03 | 京信通信系统(中国)有限公司 | Odn管理系统的数据存储方法、系统、存储介质及设备 |
CN109889522A (zh) * | 2019-02-25 | 2019-06-14 | 重庆邮电大学 | 一种基于区块链的物联网信息安全保护方法 |
CN111177080A (zh) * | 2019-12-31 | 2020-05-19 | 西安理工大学 | 一种基于区块链和ipfs的知识图谱存储与验证方法 |
Non-Patent Citations (2)
Title |
---|
GBADEBO AYOADE等: "Decentralized IoT Data Management Using BlockChain and Trusted Execution Environment", 2018 IEEE INTERNATIONAL CONFERENCE ON INFORMANTION REUSE AND INTEGRATION(IRI) * |
JIANGFENG LI, SHILI HU, YANG SHI 等: "A Blockchain-Based Trustable Framework for IoT Data Storage and Access", INTERNATIONAL CONFERENCE ON BLOCKCHAIN AND TRUSTWORTHY SYSTEMS.BLOCKSYS 2019: BLOCKCHAIN AND TRUSTWORTHY SYSTEMS, pages 3 - 5 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360940A (zh) * | 2021-06-04 | 2021-09-07 | 永旗(北京)科技有限公司 | 一种基于区块链的物联网数据管理方法 |
CN116319815A (zh) * | 2023-05-17 | 2023-06-23 | 驿羚江苏大数据有限公司 | 引入SaaS特征的云数据放置策略管理系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111417938B (zh) | 针对客户端同步服务更新本地树 | |
CN109857724B (zh) | 基于区块链实现支持多种数据库的方法及设备 | |
CN109684333A (zh) | 一种数据存储及裁剪方法、设备和存储介质 | |
CN101577735A (zh) | 一种接管故障元数据服务器的方法、装置及系统 | |
US8315978B2 (en) | Synchronization adapter for synchronizing data to applications that do not directly support synchronization | |
CN102750322B (zh) | 一种机群文件系统分布式元数据一致性保证方法和系统 | |
US9438676B2 (en) | Speculative data processing of streaming data | |
CN111444027B (zh) | 事务处理方法、装置、计算机设备及存储介质 | |
US11960363B2 (en) | Write optimized, distributed, scalable indexing store | |
CN111797068A (zh) | 一种基于区块链和ipfs的物联网数据管理系统和方法 | |
CN103793493A (zh) | 一种处理车载终端海量数据的方法和系统 | |
CN109544344B (zh) | 基于dag的区块链的交易处理方法及设备 | |
US10268776B1 (en) | Graph store built on a distributed hash table | |
CN110599166A (zh) | 一种区块链内获取交易依赖关系的方法及装置 | |
US20230229652A1 (en) | Merging and unmerging entity representations via resolver trees | |
US20130086133A1 (en) | Method and apparatus for file revision tracking | |
CN111522791A (zh) | 一种分布式文件重复数据删除系统及方法 | |
CN114422331A (zh) | 容灾切换方法、装置及系统 | |
CN102597995B (zh) | 同步数据库和非数据库资源 | |
CN111708835B (zh) | 区块链数据存储方法及装置 | |
CN103399943A (zh) | 集群数据库并行查询的通讯方法和通讯装置 | |
CN111404737B (zh) | 一种容灾处理方法以及相关装置 | |
US11093348B2 (en) | Method, device and computer program product for recovering metadata | |
CN112015819A (zh) | 分布式图数据库的数据更新方法、装置、设备及介质 | |
CN110096505B (zh) | 一种数据存储方法和系统、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |