CN114358776A - 基于fisco bcos与ipfs的物联网溯源方法、及其相关设备 - Google Patents
基于fisco bcos与ipfs的物联网溯源方法、及其相关设备 Download PDFInfo
- Publication number
- CN114358776A CN114358776A CN202210023224.9A CN202210023224A CN114358776A CN 114358776 A CN114358776 A CN 114358776A CN 202210023224 A CN202210023224 A CN 202210023224A CN 114358776 A CN114358776 A CN 114358776A
- Authority
- CN
- China
- Prior art keywords
- ipfs
- chain
- bcos
- fisco
- hash
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000012545 processing Methods 0.000 claims abstract description 19
- 238000012795 verification Methods 0.000 claims description 7
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 230000006855 networking Effects 0.000 claims 1
- 239000010410 layer Substances 0.000 description 23
- 230000007246 mechanism Effects 0.000 description 21
- 238000005516 engineering process Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 14
- 238000007726 management method Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 239000012792 core layer Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 125000002015 acyclic group Chemical group 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000003032 molecular docking Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 238000007634 remodeling Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例属于物联网技术领域,涉及一种基于FISCO BCOS与IPFS的物联网溯源系统,包括物品管理模块,用于对物品进行智能识别以及数字化跟踪并生成物品信息,其中物品信息包括物品当前状态、物品性能参数以及物品编码;数据处理模块,根据采集的物品当前状态进行整理汇总并提供相关接口以供调用;IPFS存储模块,用于存储汇总的物品当前状态并生成物品hash;FISCO BCOS存储模块,用于将物品信息的hash、物品性能参数以及物品编码存储至FISCO BCOS的链上,并与FISCO BCOS的链下建立点对点关系。本申请还提供一种基于FISCO BCOS与IPFS的物联网溯源方法、装置、计算机设备及存储介质。本申请完成对基于FISCO BCOS与IPFS的物联网溯源。
Description
技术领域
本申请涉及物联网技术领域,尤其涉及一种基于FISCO BCOS与IPFS的物联网溯源方法、系统、装置、计算机设备及存储介质。
背景技术
物联网检测获取的数据量庞大,大量数据需要可靠实时地存储,并且在未来需要得到验证时,必须将数据以某种形式存入区块链,而传统区块链系统为了“安全”而牺牲“效率”,因此其数据存储的容量与速率非常低下,不能存放大规模数据。
发明内容
本申请实施例的目的在于提出一种基于FISCO BCOS与IPFS的物联网溯源方法、系统、装置、计算机设备及存储介质,以解决传统区块链无法解决物联网获取的大量数据的技术问题。
为了解决上述技术问题,本申请实施例提供一种基于FISCO BCOS与IPFS的物联网溯源系统,采用了如下所述的技术方案:
物品管理模块,用于对物品进行智能识别以及数字化跟踪并生成物品信息,其中物品信息包括物品当前状态、物品性能参数以及物品编码;
数据处理模块,根据采集的物品当前状态进行整理汇总并提供相关接口以供调用;
IPFS存储模块,用于存储汇总的物品当前状态并生成物品hash;
FISCO BCOS存储模块,用于将物品信息的hash、物品性能参数以及物品编码存储至FISCO BCOS的链上,并与FISCO BCOS的链下建立点对点关系。
为了解决上述技术问题,本申请实施例还提供一种基于FISCO BCOS与IPFS的物联网溯源方法,所述方法包括以下步骤:
获取通过物联网采集的物品信息;
将物品信息通过IPFS进行分布式管理并存储;
获取物品信息在IPFS中的hash;
将hash存储至FISCO BCOS的链上,并与FISCO BCOS的链下建立点对点关系。
为了解决上述技术问题,本申请实施例还提供一种基于FISCO BCOS与IPFS的物联网溯源装置,包括:
物联网模块,用于获取的所有设备采集的传感器数据;
IPFS处理模块,用于将传感器数据存储于IPFS中生成多个IPFS节点,将多个IPFS节点连接搭建IPFS集群,其中,每个IPFS节点内的节点内容生成对应的hash;
区块链模块,用于将hash存储在FISCO BCOS的链上,并与FISCO BCOS的链下建立点对点关系。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如上述的基于FISCO BCOS与IPFS的物联网溯源方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上所述的基于FISCO BCOS与IPFS的物联网溯源方法的步骤。
与现有技术相比,在本申请中通过引入IPFS以及FISCO BCOS区块链技术,使得物联网获取的大量数据能够的好很好的排序梳理以及存储,获取通过物联网采集的物品信息,将物品信息通过IPFS进行分布式管理并存储,获取物品信息在IPFS中的hash,将hash存储至FISCO BCOS的链上,并与FISCO BCOS的链下建立点对点关系。利用FISCO BCOS区块链+分布式存储的方式解决物联网中的大规模数据上链的问题,将原始数据存于类似IPFS等分布式系统中,并将源文件的地址存储于区块链内永久保存,用户可以通过区块链上文件的地址信息随时去获取这些数据,同时Hash算法结果也一并存入FISCO BCOS区块链,这样用户可以将得到的链上数据进行验证,以确定数据的完整性与可靠性,保证IPFS上数据不被篡改。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性系统架构图;
图2是基于FISCO BCOS与IPFS的物联网溯源系统的一个实施例的结构示意图;
图3是基于FISCO BCOS与IPFS的物联网溯源方法的一个实施例的流程图;
图4是基于FISCO BCOS与IPFS的物联网溯源装置的一个实施例的结构示意图;
图5是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的基于FISCO BCOS与IPFS的物联网溯源方法一般由服务器执行,相应地,基于FISCO BCOS与IPFS的物联网溯源装置一般设置于服务器中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2。所述的基于FISCO BCOS与IPFS的物联网溯源系统200,包括:
物品管理模块201,用于对物品进行智能识别以及数字化跟踪并生成物品信息,其中物品信息包括物品当前状态、物品性能参数以及物品编码;
物联网通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术进行实时采集任何需要监控、连接、互动的物体或过程,采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息,通过各类可能的网络接入,实现物与物、物与人的泛在连接,实现对物品和过程的智能化感知、识别和管理。其中,物品信息包括物品当前状态、物品性能参数以及物品编码,还包括物品信息产生位置地址(如域名,I P地址,文件路径)。
数据处理模块202,根据采集的物品当前状态进行整理汇总并提供相关接口以供调用;数据处理模块202包括:拆分组,将物联网获取的数据进行拆分;关联组,以单一设备作为最小单元查询与之关联的传感器数据;排序组,以数据获取时间排序单一设备中关联的传感器数据。
IPFS存储模块203,用于存储汇总的物品当前状态并生成物品hash;
所述IPFS存储模块203包括:将处理后的数据存储于IPFS中生成多个IPFS节点,将多个IPFS节点连接搭建IPFS集群,其中,每个IPFS节点内的节点内容生成对应的hash;
所述IPFS存储模块203包括:设置组,将处理后的数据存储于IPFS中,每个设备以及数据获取时间分别作为IPFS节点,其中,IPFS节点的节点内容为在该节点获取的传感器数据;搭建组,将多个IPFS节点进行关联连接搭建IPFS集群,IPFS集群存储由物联网获取的所有数据;获取组,获取IPFS节点内的节点内容生成对应的hash。
IPFS把数据如何存储、索引和传输都预先自定义好,也就是将上传好的数据转换成专门的数据格式进行存储,同时IPFS会将相同的文件进行了hash计算,确定其唯一的地址,在IPFS网络里的文件,会被赋予一个hash,这个hash类似于文件ID,它是从文件内容中被计算出来的。IPFS中会对重复的内容进行去重处理,在保证整个IPFS存储文件的冗余量以及IPFS的轻便与快捷。每个IPFS节点仅存储它感兴趣的内容,通过索引信息,可帮助确定存储内容的IPFS节点,在本申请中,设置多个IPFS节点,并对IPFS节点按之间的数据获取时间作为关联连接成IPFS集群。在查找要查看或下载的文件时,用户需要让网络找到对应内容的存储IPFS节点,最后确定所需求的文件内容。
需要说明的是,IPFS中存储所有源数据的数据块,数据块存储没有顺序,只是每个数据块与hash地址的关系一一对应,而hash地址与具体信息的映射关系存储于FISCO BCOS区块链中。IPFS可单节点运行。
IPFS是通用目的的基础架构,基本没有存储上的限制。大文件会被切分成小的分块,下载的时候可以从多个服务器同时获取。IPFS的网络是不固定的、细粒度的、分布式的网络,可以很好的适应内容分发网络(CDN)的要求。这样的设计可以很好的共享各类数据,包括图像、视频流、分布式数据库、整个操作系统、模块链、8英寸软盘的备份,还有最重要的——静态网站。
把文件放到IPFS节点,它会得到一个新名字QmXGTaGWTT1uUtfSb2sBAvArMEVLK4rQEcQg5bv7wwdzwU(就是象比特币或FISCO BCOS的地址),是一个由文件内容计算出的加密hash值。hash值直接反映文件的内容,哪怕只修改1比特,hash值也会完全不同。当IPFS被请求一个文件hash时,它会使用一个分布式hash表找到文件所在的节点,取回文件并验证文件数据。
FISCO BCOS存储模块204,用于将物品信息的hash、物品性能参数以及物品编码存储至FISCO BCOS的链上,并与FISCO BCOS的链下建立点对点关系。
具体地,FISCO BCOS是一个区块链底层平台,在BCOS开源平台基础上进行模块升级与功能重塑。FISCO BCOS包括:实现群组架构,在多个节点组成的一个全局网络中,可以存在多个节点子集组成的子网络,这些子网络维护一个独立的账本,这些账本之间的共识、存储都是相互独立的,具备良好的扩展性和安全性,在群组架构中,可以更好地实现平行扩展,满足金融级高频交易场景的需求,同时,群组架构可以快速支持组链需求,极大降低运维难度,真正能够实现企业间建链就像建“聊天群”一样简便;支持分布式存储,使存储突破单机限制,支持横向扩展,计算和存储分离,提高了系统健壮性,即使节点执行服务器故障,数据也不会受影响,分布式存储定义了标准的数据访问CRUD接口,可以适配多种存储系统,同时支持SQL和NoSQL两种数据管理方式,可以更简便地支持多种业务场景;实现预编译合约框架,突破EVM性能瓶颈,支持交易并发处理,大幅提升交易处理吞吐量,预编译合约采用C++实现,内置于底层系统中,区块链自动识别调用合约的交易互斥信息,构建DAG依赖,规划出一个高效的并行交易执行路径,最佳情况下,性能提升N倍(N=CPU核数)。
在整体架构上,FISCO BCOS划分成基础层、核心层、管理层和接口层:基础层:提供区块链的基础数据结构和算法库。核心层:实现了区块链的核心逻辑,核心层分为两大部分:链核心层:实现区块链的链式数据结构、交易执行引擎和存储驱动;互联核心层:实现区块链的基础P2P网络通信、共识机制和区块同步机制;管理层:实现区块链的管理功能,包括参数配置、账本管理和AMOP;接口层:面向区块链用户,提供多种协议的RPC接口、SDK和交互式控制台。
FISCO BCOS基于多群组架构实现了强扩展性的群组多账本,基于清晰的模块设计,构建了稳定、健壮的区块系统。FISCO BCOS的群组架构和系统运行时的交易流(包括交易提交、打包、执行和上链)。
同步,是区块链节点非常重要的功能。它是共识的辅助,给共识提供必需的运行条件。同步分为交易的同步和状态的同步。交易的同步,确保了每笔交易能正确的到达每个节点上。状态的同步,能确保区块落后的节点能正确的回到最新的状态。只有持有最新区块状态的节点,才能参与到共识中去。
为了增强区块链系统在网络带宽受限情况下的可扩展性,FISCO BCOS对区块同步进行了优化:为了降低单个节点的出带宽,消除网络带宽对网络规模的限制,支持更大网络规模,采用树状拓扑进行区块同步;采用gossip协议来保障树状拓扑区块同步的健壮性,定期同步区块状态,使得在部分节点网络断连的情况下,所有节点均能同步到最新区块状态。
在区块链系统中,为了保障客户端发送的交易能到达所有节点,SDK直连的区块链节点需要将收到的交易广播给其他节点,SDK直连节点的出带宽与区块链节点总数成正比,随着区块链系统节点数的增加,该节点必然成为整个系统的瓶颈。此外,为了保障节点网络断连的情况下,交易也能尽量到达所有节点,还引入了交易转发逻辑,节点收到其他节点广播过来的交易后,会随机选取25%的邻居节点转发收到的交易,在网络全连的情况下,这种交易转发策略无疑会带来巨大的带宽浪费,且节点数目越多,因交易转发带来的数据包冗余越多。为降低SDK直连节点的出带宽、降低交易转发引起的大量冗余消息包,提升区块链系统的可扩展性,FISCO BCOS v2.2.0提出了交易广播优化策略和交易转发优化策略。
区块链系统通过共识算法保障系统一致性。理论上,共识是对某个提案(proposal)达成一致意见的过程,分布式系统中提案的含义十分宽泛,包括事件发生顺序、谁是leader等。区块链系统中,共识是各个共识节点对交易执行结果达成一致的过程。
共识算法可分为容错(CrashFault Tolerance,CFT)类算法和拜占庭容错(Byzantine FaultTolerance,BFT)类算法:CFT类算法:普通容错类算法,当系统出现网络、磁盘故障,服务器宕机等普通故障时,仍能针对某个提议达成共识,经典的算法包括Paxos、Raft等,这类算法性能较好、处理速度较快、可以容忍不超过一半的故障节点。BFT类算法:拜占庭容错类算法,除了容忍系统共识过程中出现的普通故障外,还可容忍部分节点故意欺骗(如伪造交易执行结果)等拜占庭错误,经典算法包括PBFT等,这类算法性能较差,能容忍不超过三分之一的故障节点。
交易的执行是区块链节点上的一个重要的功能。交易的执行,是把交易中的智能合约二进制代码取出来,用执行器(Executor)执行。共识模块(Consensus)把交易从交易池(TxPool)中取出,打包成区块,并调用执行器去执行区块中的交易。在交易的执行过程中,会对区块链的状态(State)进行修改,形成新区块的状态储存下来(Storage)。执行器在这个过程中,类似于一个黑盒,输入是智能合约代码,输出是状态的改变。
随着技术的发展,人们开始关注执行器的性能和易用性。一方面,人们希望智能合约在区块链上能有更快的执行速度,满足大规模交易的需求。另一方面,人们希望能用更熟悉更好用的语言进行开发。进而出现了一些替代传统的执行器(EVM)的方案,如:JIT、WASM_甚至JVM。然而,传统的EVM是耦合在节点代码中的。首先要做的,是将执行器的接口抽象出来,兼容各种虚拟机的实现。因此,EVMC被设计出来。
EVMC(Ethereum Client-VM ConnectorAPI),是以太坊抽象出来的执行器的接口,旨在能够对接各种类型的执行器。FISCO BCOS目前采用了以太坊的智能合约语言Solidity,因此也沿用了以太坊对执行器接口的抽象。
在节点上,共识模块会调用EVMC,将打包好的交易交由执行器执行。执行器执行时,对状态进行的读写,会通过EVMC的回调反过来操作节点上的状态数据。经过EVMC一层的抽象,FISCO BCOS能够对接今后出现的更高效、易用性更强的执行器。目前,FISCO BCOS采用的是传统的EVM根据EVMC抽象出来的执行器—Interpreter。因此能够支持基于Solidity语言的智能合约。目前其他类型的执行器发展尚未成熟,后续将持续跟进。
FISCO BCOS继承以太坊存储的同时,引入了高扩展性、高吞吐量、高可用、高性能的分布式存储。存储模块主要包括两部分:世界状态:可进一步划分成MPTState和StorageState;MPTState:使用MPT树存储账户的状态,与以太坊一致;StorageState:使用分布式存储的表结构存储账户状态,不存历史信息,去掉了对MPT树的依赖,性能更高;
分布式存储(AdvancedMass Database,AMDB):通过抽象表结构,实现了SQL和NOSQL的统一,通过实现对应的存储驱动,可以支持各类数据库,目前已经支持LevelDB和MySQL。基于分布式存储,提出分布式存储权限控制的机制,以灵活、细粒度的方式进行有效的权限控制,设计并实现了权限控制机制限制外部账户(tx.origin)对存储的访问,权限控制范围包括合约部署、表的创建、表的写操作。
为了保障节点间通信安全性,以及对节点数据访问的安全性,FISCO BCOS引入了节点准入机制、CA黑名单和权限控制三种机制,在网络和存储层面上做了严格的安全控制。网络层面安全控制:节点使用SSL连接,保障了通信数据的机密性;引入网络准入机制,可将指定群组的作恶节点从共识节点列表或群组中删除,保障了系统安全性;通过群组白名单机制,保证每个群组仅可接收相应群组的消息,保证群组间通信数据的隔离性;引入CA黑名单机制,可及时与作恶节点断开网络连接;提出分布式存储权限控制机制,灵活、细粒度地控制外部账户部署合约和创建、插入、删除和更新用户表的权限。
FISCO BCOS P2P模块提供高效、通用和安全的网络通信基础功能,支持区块链消息的单播、组播和广播,支持区块链节点状态同步,支持多种协议。P2P主要功能:区块链节点标识,通过区块链节点标识唯一标识一个区块链节点,在区块链网络上通过区块链节点标识对区块链节点进行寻址;管理网络连接,维持区块链网络上区块链节点间的TCP长连接,自动断开异常连接,自动发起重连;消息收发,在区块链网络的区块链节点间,进行消息的单播、组播或广播;状态同步,在区块链节点间同步状态。
区块链节点标识由ECC算法的公钥生成,每个区块链节点必须有唯一的ECC密钥对,区块链节点标识在区块链网络中唯一标识一个区块链节点。通常情况下,一个节点要加入区块链网络,至少要准备三个文件:node.key节点密钥,ECC格式;node.crt节点证书,由CA颁发;ca.crt CA证书,CA机构提供。
区块链节点除了有唯一区块链节点标识,还能关注Topic,供寻址使用。区块链节点寻址:区块链节点标识寻址,通过区块链节点标识,在区块链网络中定位唯一的区块链节点;Topic寻址,通过Topic,在区块链网络中定位一组关注该Topic的节点。
区块链节点间,会自动发起和维持TCP长连接,在系统故障、网络异常时,主动发起重连
区块链节点间建立连接时,会使用CA证书进行认证。区块链节点间消息支持单播、组播和广播:单播,单个区块链节点向单个区块链节点发送消息,通过区块链节点标识寻址;组播,单个区块链节点向一组区块链节点发送消息,通过Topic寻址;广播,单个区块链节点向所有区块链节点发送消息。每个节点会维护自身的状态,并将状态的Seq在全网定时广播,与其它节点同步。
一个无环的有向图称做有向无环图(DirectedAcyclic Graph),简称DAG图。在一批交易中,可以通过一定方法识别出每笔交易需要占用的互斥资源,再根据交易在Block中的顺序及互斥资源的占用关系构造出一个交易依赖DAG图。其中主要流程包括:用户直接或间接通过SDK发起交易。交易可以是能够并行执行的交易和不能并行执行的交易;交易进入节点的交易池中,等待打包;交易被Sealer打包为区块,经过共识后,发送至BlockVerifier进行验证;BlockVerifier根据区块中的交易列表生成交易DAG;BlockVerifier构造执行上下文,并行执行交易DAG;区块验证通过后,区块上链。
本实施例通过引入IPFS以及FISCO BCOS区块链技术,使得物联网获取的大量数据能够的好很好的排序梳理以及存储,获取通过物联网采集的物品信息,将物品信息通过IPFS进行分布式管理并存储,获取物品信息在IPFS中的hash,将hash存储至FISCO BCOS的链上,并与FISCO BCOS的链下建立点对点关系。利用FISCO BCOS区块链+分布式存储的方式解决物联网中的大规模数据上链的问题,将原始数据存于类似IPFS等分布式系统中,并将源文件的地址存储于区块链内永久保存,用户可以通过区块链上文件的地址信息随时去获取这些数据,同时Hash算法结果也一并存入FISCO BCOS区块链,这样用户可以将得到的链上数据进行验证,以确定数据的完整性与可靠性,保证IPFS上数据不被篡改。
本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-On ly Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图3,作为对上述图2所示系统的实现,本申请提供了一种基于FISCOBCOS与IPFS的物联网溯源方法的一个实施例,该方法实施例与图2所示的系统实施例相对应。
如图3所示,本实施例所述基于FISCO BCOS与IPFS的物联网溯源方法包括以下步骤:
步骤S301,获取通过物联网采集的物品信息;
步骤S302,将物品信息通过IPFS进行分布式管理并存储;
步骤S303,获取物品信息在IPFS中的hash;
步骤S304,将hash存储至FISCO BCOS的链上,并与FISCO BCOS的链下建立点对点关系。
具体地,FISCO BCOS是一个区块链底层平台,在BCOS开源平台基础上进行模块升级与功能重塑。FISCO BCOS包括:实现群组架构,在多个节点组成的一个全局网络中,可以存在多个节点子集组成的子网络,这些子网络维护一个独立的账本,这些账本之间的共识、存储都是相互独立的,具备良好的扩展性和安全性,在群组架构中,可以更好地实现平行扩展,满足金融级高频交易场景的需求,同时,群组架构可以快速支持组链需求,极大降低运维难度,真正能够实现企业间建链就像建“聊天群”一样简便;支持分布式存储,使存储突破单机限制,支持横向扩展,计算和存储分离,提高了系统健壮性,即使节点执行服务器故障,数据也不会受影响,分布式存储定义了标准的数据访问CRUD接口,可以适配多种存储系统,同时支持SQL和NoSQL两种数据管理方式,可以更简便地支持多种业务场景;实现预编译合约框架,突破EVM性能瓶颈,支持交易并发处理,大幅提升交易处理吞吐量,预编译合约采用C++实现,内置于底层系统中,区块链自动识别调用合约的交易互斥信息,构建DAG依赖,规划出一个高效的并行交易执行路径,最佳情况下,性能提升N倍(N=CPU核数)。
在整体架构上,FISCO BCOS划分成基础层、核心层、管理层和接口层:基础层:提供区块链的基础数据结构和算法库。核心层:实现了区块链的核心逻辑,核心层分为两大部分:链核心层:实现区块链的链式数据结构、交易执行引擎和存储驱动;互联核心层:实现区块链的基础P2P网络通信、共识机制和区块同步机制;管理层:实现区块链的管理功能,包括参数配置、账本管理和AMOP;接口层:面向区块链用户,提供多种协议的RPC接口、SDK和交互式控制台。
FISCO BCOS基于多群组架构实现了强扩展性的群组多账本,基于清晰的模块设计,构建了稳定、健壮的区块系统。FISCO BCOS的群组架构和系统运行时的交易流(包括交易提交、打包、执行和上链)。
同步,是区块链节点非常重要的功能。它是共识的辅助,给共识提供必需的运行条件。同步分为交易的同步和状态的同步。交易的同步,确保了每笔交易能正确的到达每个节点上。状态的同步,能确保区块落后的节点能正确的回到最新的状态。只有持有最新区块状态的节点,才能参与到共识中去。
为了增强区块链系统在网络带宽受限情况下的可扩展性,FISCO BCOS对区块同步进行了优化:为了降低单个节点的出带宽,消除网络带宽对网络规模的限制,支持更大网络规模,采用树状拓扑进行区块同步;采用gossip协议来保障树状拓扑区块同步的健壮性,定期同步区块状态,使得在部分节点网络断连的情况下,所有节点均能同步到最新区块状态。
在区块链系统中,为了保障客户端发送的交易能到达所有节点,SDK直连的区块链节点需要将收到的交易广播给其他节点,SDK直连节点的出带宽与区块链节点总数成正比,随着区块链系统节点数的增加,该节点必然成为整个系统的瓶颈。此外,为了保障节点网络断连的情况下,交易也能尽量到达所有节点,还引入了交易转发逻辑,节点收到其他节点广播过来的交易后,会随机选取25%的邻居节点转发收到的交易,在网络全连的情况下,这种交易转发策略无疑会带来巨大的带宽浪费,且节点数目越多,因交易转发带来的数据包冗余越多。为降低SDK直连节点的出带宽、降低交易转发引起的大量冗余消息包,提升区块链系统的可扩展性,FISCO BCOS v2.2.0提出了交易广播优化策略和交易转发优化策略。
区块链系统通过共识算法保障系统一致性。理论上,共识是对某个提案(proposal)达成一致意见的过程,分布式系统中提案的含义十分宽泛,包括事件发生顺序、谁是leader等。区块链系统中,共识是各个共识节点对交易执行结果达成一致的过程。
共识算法可分为容错(CrashFaultTolerance,CFT)类算法和拜占庭容错(Byzantine FaultTolerance,BFT)类算法:CFT类算法:普通容错类算法,当系统出现网络、磁盘故障,服务器宕机等普通故障时,仍能针对某个提议达成共识,经典的算法包括Paxos、Raft等,这类算法性能较好、处理速度较快、可以容忍不超过一半的故障节点。BFT类算法:拜占庭容错类算法,除了容忍系统共识过程中出现的普通故障外,还可容忍部分节点故意欺骗(如伪造交易执行结果)等拜占庭错误,经典算法包括PBFT等,这类算法性能较差,能容忍不超过三分之一的故障节点。
交易的执行是区块链节点上的一个重要的功能。交易的执行,是把交易中的智能合约二进制代码取出来,用执行器(Executor)执行。共识模块(Consensus)把交易从交易池(TxPool)中取出,打包成区块,并调用执行器去执行区块中的交易。在交易的执行过程中,会对区块链的状态(State)进行修改,形成新区块的状态储存下来(Storage)。执行器在这个过程中,类似于一个黑盒,输入是智能合约代码,输出是状态的改变。
随着技术的发展,人们开始关注执行器的性能和易用性。一方面,人们希望智能合约在区块链上能有更快的执行速度,满足大规模交易的需求。另一方面,人们希望能用更熟悉更好用的语言进行开发。进而出现了一些替代传统的执行器(EVM)的方案,如:JIT、WASM_甚至JVM。然而,传统的EVM是耦合在节点代码中的。首先要做的,是将执行器的接口抽象出来,兼容各种虚拟机的实现。因此,EVMC被设计出来。
EVMC(Ethereum Client-VM ConnectorAPI),是以太坊抽象出来的执行器的接口,旨在能够对接各种类型的执行器。FISCO BCOS目前采用了以太坊的智能合约语言Solidity,因此也沿用了以太坊对执行器接口的抽象。
在节点上,共识模块会调用EVMC,将打包好的交易交由执行器执行。执行器执行时,对状态进行的读写,会通过EVMC的回调反过来操作节点上的状态数据。经过EVMC一层的抽象,FISCO BCOS能够对接今后出现的更高效、易用性更强的执行器。目前,FISCO BCOS采用的是传统的EVM根据EVMC抽象出来的执行器—Interpreter。因此能够支持基于Solidity语言的智能合约。目前其他类型的执行器发展尚未成熟,后续将持续跟进。
FISCO BCOS继承以太坊存储的同时,引入了高扩展性、高吞吐量、高可用、高性能的分布式存储。存储模块主要包括两部分:世界状态:可进一步划分成MPTState和StorageState;MPTState:使用MPT树存储账户的状态,与以太坊一致;StorageState:使用分布式存储的表结构存储账户状态,不存历史信息,去掉了对MPT树的依赖,性能更高;
分布式存储(AdvancedMass Database,AMDB):通过抽象表结构,实现了SQL和NOSQL的统一,通过实现对应的存储驱动,可以支持各类数据库,目前已经支持LevelDB和MySQL。基于分布式存储,提出分布式存储权限控制的机制,以灵活、细粒度的方式进行有效的权限控制,设计并实现了权限控制机制限制外部账户(tx.origin)对存储的访问,权限控制范围包括合约部署、表的创建、表的写操作。
为了保障节点间通信安全性,以及对节点数据访问的安全性,FISCO BCOS引入了节点准入机制、CA黑名单和权限控制三种机制,在网络和存储层面上做了严格的安全控制。网络层面安全控制:节点使用SSL连接,保障了通信数据的机密性;引入网络准入机制,可将指定群组的作恶节点从共识节点列表或群组中删除,保障了系统安全性;通过群组白名单机制,保证每个群组仅可接收相应群组的消息,保证群组间通信数据的隔离性;引入CA黑名单机制,可及时与作恶节点断开网络连接;提出分布式存储权限控制机制,灵活、细粒度地控制外部账户部署合约和创建、插入、删除和更新用户表的权限。
FISCO BCOS P2P模块提供高效、通用和安全的网络通信基础功能,支持区块链消息的单播、组播和广播,支持区块链节点状态同步,支持多种协议。P2P主要功能:区块链节点标识,通过区块链节点标识唯一标识一个区块链节点,在区块链网络上通过区块链节点标识对区块链节点进行寻址;管理网络连接,维持区块链网络上区块链节点间的TCP长连接,自动断开异常连接,自动发起重连;消息收发,在区块链网络的区块链节点间,进行消息的单播、组播或广播;状态同步,在区块链节点间同步状态。
区块链节点标识由ECC算法的公钥生成,每个区块链节点必须有唯一的ECC密钥对,区块链节点标识在区块链网络中唯一标识一个区块链节点。通常情况下,一个节点要加入区块链网络,至少要准备三个文件:node.key节点密钥,ECC格式;node.crt节点证书,由CA颁发;ca.crt CA证书,CA机构提供。
区块链节点除了有唯一区块链节点标识,还能关注Topic,供寻址使用。区块链节点寻址:区块链节点标识寻址,通过区块链节点标识,在区块链网络中定位唯一的区块链节点;Topic寻址,通过Topic,在区块链网络中定位一组关注该Topic的节点。
区块链节点间,会自动发起和维持TCP长连接,在系统故障、网络异常时,主动发起重连
区块链节点间建立连接时,会使用CA证书进行认证。区块链节点间消息支持单播、组播和广播:单播,单个区块链节点向单个区块链节点发送消息,通过区块链节点标识寻址;组播,单个区块链节点向一组区块链节点发送消息,通过Topic寻址;广播,单个区块链节点向所有区块链节点发送消息。每个节点会维护自身的状态,并将状态的Seq在全网定时广播,与其它节点同步。
一个无环的有向图称做有向无环图(DirectedAcyclic Graph),简称DAG图。在一批交易中,可以通过一定方法识别出每笔交易需要占用的互斥资源,再根据交易在Block中的顺序及互斥资源的占用关系构造出一个交易依赖DAG图。其中主要流程包括:用户直接或间接通过SDK发起交易。交易可以是能够并行执行的交易和不能并行执行的交易;交易进入节点的交易池中,等待打包;交易被Sealer打包为区块,经过共识后,发送至BlockVerifier进行验证;BlockVerifier根据区块中的交易列表生成交易DAG;BlockVerifier构造执行上下文,并行执行交易DAG;区块验证通过后,区块上链。
步骤S304之后还包括,步骤S305,获取物联网发起请求获取原始数据;
步骤S306,计算原始数据的当前hash;
步骤S307,对比FISCO BCOS的链上存储的hash与当前hash;
步骤S308,当FISCO BCOS的链上存储的hash与当前hash相同,根据FISCO BCOS的链上存储的hash生成FISCO BCOS的链下链码;
步骤S309,查询链码是否存在IPFS地址信息;
步骤S3010,若不存在,则继续查询IPFS;
步骤S3011,若存在,根据IPFS上对应数据块文件的hash地址从IPFS上拿到原始数据,验证利用FISCO BCOS的链上hash获取的文件指纹比对IPFS上原始数据;
步骤S3012,若两种IPFS上原始数据一致,则确定IPFS上对应数据块文件未被篡改;
步骤S3013,若两种IPFS上原始数据不一致,则确定IPFS上对应数据块文件被篡改,并将FISCO BCOS的链上hash获取的文件指纹与IPFS上原始数据覆盖IPFS上对应数据块文件的hash地址从IPFS上拿到原始数据。
以上为数据查询步骤,具体地,当数据查询时,客户端发起请求获取原始数据,服务启动FISCO BCOS链,然后查询链码是否存在该ID、日期下的IPFS地址信息,若不存在,这说明不存在数据,否则继续查询IPFS。根据IPFS上对应数据块文件的Hash地址从IPFS上拿到原始数据,并可以利用FISCO BCOS上文件指纹与IPFS上原始数据进行比对验证,若两者一致则可以确定该数据块未被篡改。
客户端通过唯一ID值和日期等内容查询相关信息,通过http-get方式向服务后台请求数据。例如请求url:http://localhost:60003/querydata?obdid=X7777-S6665&date=2019-4-3,是用户查询的接口,意思是ID为X7777-S6665日期为2019-4-3这天的该日数据块;后台将会自动启动FISCO BCOS链码容器,执行链码中相应的查询方法;FISCO BCOS将匹配正确的数据(包含IPFS文件存储地址以及文件指纹)返回。例如如下信息:
{“obdid”:“X7777-S6665”,“dataDate”:“2019-4-3”,“ipfsAddr”:“QmfQJujeYWgX2Fn15nSLY7xApG7qQo3imz9S3UVxRcRiTi”,“fileFingerprint”:“21358B2F61C5B5DDD515F7046765BA43E8B643DCE26985BFD45A1BD02E9201A8”}
后台通过FISCO BCOS数据中的IPFS文件存储地址去查询IPFS网络,并返回匹配的整个数据块;IPFS根据Hash地址返回对应的整个数据块的文件信息,随后在服务端可以进行对文件的验证,以检验存储数据是否被篡改。
所述所述物品信息包括物品参数、物品当前状态、物品内预存的持有人签名以及图片、物品内存储的用户身份ID。所述物品信息在IPFS中的物品内存储的用户身份ID、预存的持有人签名、访问地址。
为了增加hash的安全性是否有效,步骤S306之后还包括,步骤S3014,根据FISCOBCOS的链上存储的hash生成FI SCO BCOS的链下链码;
步骤S3015,根据链码验证数字签名;
步骤S3016,当验证通过时,根据链码获取对应的I PFS地址信息;
步骤S3017,根据IPFS地址信息获取物品信息。
其中,步骤S3015的步骤包括:步骤S30151,验证链码的数字签名;
步骤S30152,当数字签名与预存的持有人签名相同时,根据FISCO BCOS的链上存储的hash生成FISCO BCOS的链下链码;
步骤S30153,当数字签名与预存的持有人签名不同时,拒绝访问请求。
本实施例通过引入IPFS以及FISCO BCOS区块链技术,使得物联网获取的大量数据能够的好很好的排序梳理以及存储,获取通过物联网采集的物品信息,将物品信息通过IPFS进行分布式管理并存储,获取物品信息在IPFS中的hash,将hash存储至FISCO BCOS的链上,并与FISCO BCOS的链下建立点对点关系。利用FISCO BCOS区块链+分布式存储的方式解决物联网中的大规模数据上链的问题,将原始数据存于类似IPFS等分布式系统中,并将源文件的地址存储于区块链内永久保存,用户可以通过区块链上文件的地址信息随时去获取这些数据,同时Hash算法结果也一并存入FISCO BCOS区块链,这样用户可以将得到的链上数据进行验证,以确定数据的完整性与可靠性,保证IPFS上数据不被篡改。
进一步参考图4,作为对上述图2所示系统的实现,本申请提供了一种基于FISCOBCOS与IPFS的物联网溯源装置的一个实施例,该装置实施例与图2所示的系统实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,本实施例所述的基于FISCO BCOS与IPFS的物联网溯源装置400包括:物联网模块401、IPFS处理模块402、区块链模块403。其中:
物联网模块401,用于获取的所有设备采集的传感器数据;
IPFS处理模块402,用于将传感器数据存储于IPFS中生成多个IPFS节点,将多个IPFS节点连接搭建IPFS集群,其中,每个IPFS节点内的节点内容生成对应的hash;
区块链模块403,用于将hash存储在FISCO BCOS的链上,并与FISCO BCOS的链下建立点对点关系。
本实施例中通过引入IPFS以及FISCO BCOS区块链技术,使得物联网获取的大量数据能够的好很好的排序梳理以及存储,获取通过物联网采集的物品信息,将物品信息通过IPFS进行分布式管理并存储,获取物品信息在IPFS中的hash,将hash存储至FISCO BCOS的链上,并与FISCO BCOS的链下建立点对点关系。利用FISCO BCOS区块链+分布式存储的方式解决物联网中的大规模数据上链的问题,将原始数据存于类似IPFS等分布式系统中,并将源文件的地址存储于区块链内永久保存,用户可以通过区块链上文件的地址信息随时去获取这些数据,同时Hash算法结果也一并存入FISCO BCOS区块链,这样用户可以将得到的链上数据进行验证,以确定数据的完整性与可靠性,保证IPFS上数据不被篡改。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图5,图5为本实施例计算机设备基本结构框图。
所述计算机设备5包括通过系统总线相互通信连接存储器51、处理器52、网络接口53。需要指出的是,图5中仅示出了具有组件51-53的计算机设备5,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器51至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器51可以是所述计算机设备5的内部存储单元,例如该计算机设备6的硬盘或内存。在另一些实施例中,所述存储器51也可以是所述计算机设备6的外部存储设备,例如该计算机设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器51还可以既包括所述计算机设备5的内部存储单元也包括其外部存储设备。本实施例中,所述存储器51通常用于存储安装于所述计算机设备5的操作系统和各类应用软件,例如基于FISCO BCOS与IPFS的物联网溯源方法的计算机可读指令等。此外,所述存储器51还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器52在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器52通常用于控制所述计算机设备5的总体操作。本实施例中,所述处理器52用于运行所述存储器51中存储的计算机可读指令或者处理数据,例如运行所述基于FISCO BCOS与IPFS的物联网溯源方法的计算机可读指令。
所述网络接口53可包括无线网络接口或有线网络接口,该网络接口53通常用于在所述计算机设备5与其他电子设备之间建立通信连接。
本实施例通过引入IPFS以及FISCO BCOS区块链技术,使得物联网获取的大量数据能够的好很好的排序梳理以及存储,获取通过物联网采集的物品信息,将物品信息通过IPFS进行分布式管理并存储,获取物品信息在IPFS中的hash,将hash存储至FISCO BCOS的链上,并与FISCO BCOS的链下建立点对点关系。利用FISCO BCOS区块链+分布式存储的方式解决物联网中的大规模数据上链的问题,将原始数据存于类似IPFS等分布式系统中,并将源文件的地址存储于区块链内永久保存,用户可以通过区块链上文件的地址信息随时去获取这些数据,同时Hash算法结果也一并存入FISCO BCOS区块链,这样用户可以将得到的链上数据进行验证,以确定数据的完整性与可靠性,保证IPFS上数据不被篡改。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的基于FISCO BCOS与IPFS的物联网溯源方法的步骤。
本实施例通过引入IPFS以及FISCO BCOS区块链技术,使得物联网获取的大量数据能够的好很好的排序梳理以及存储,获取通过物联网采集的物品信息,将物品信息通过IPFS进行分布式管理并存储,获取物品信息在IPFS中的hash,将hash存储至FISCO BCOS的链上,并与FISCO BCOS的链下建立点对点关系。利用FISCO BCOS区块链+分布式存储的方式解决物联网中的大规模数据上链的问题,将原始数据存于类似IPFS等分布式系统中,并将源文件的地址存储于区块链内永久保存,用户可以通过区块链上文件的地址信息随时去获取这些数据,同时Hash算法结果也一并存入FISCO BCOS区块链,这样用户可以将得到的链上数据进行验证,以确定数据的完整性与可靠性,保证IPFS上数据不被篡改。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
Claims (10)
1.一种基于FISCO BCOS与IPFS的物联网溯源系统,其特征在于,所述系统包括:
物品管理模块,用于对物品进行智能识别以及数字化跟踪并生成物品信息,其中物品信息包括物品当前状态、物品性能参数以及物品编码;
数据处理模块,根据采集的物品当前状态进行整理汇总并提供相关接口以供调用;
IPFS存储模块,用于存储汇总的物品当前状态并生成物品hash;
FISCO BCOS存储模块,用于将物品信息的hash、物品性能参数以及物品编码存储至FISCO BCOS的链上,并与FISCO BCOS的链下建立点对点关系。
2.一种基于FISCO BCOS与IPFS的物联网溯源方法,其特征在于,所述方法包括以下步骤:
获取通过物联网采集的物品信息;
将物品信息通过IPFS进行分布式管理并存储;
获取物品信息在IPFS中的hash;
将hash存储至FISCO BCOS的链上,并与FISCO BCOS的链下建立点对点关系。
3.根据权利要求2所述的基于FISCO BCOS与IPFS的物联网溯源方法,其特征在于,所述将物品信息通过IPFS进行分布式管理并存储的步骤之后还包括:
获取物品信息在IPFS中的物品内存储的用户身份ID、预存的持有人签名、访问地址;
将作者、预存的持有人签名、访问地址存储至FISCO BCOS的链上,并与FISCO BCOS的链下建立点对点关系。
4.根据权利要求3所述的基于FISCO BCOS与IPFS的物联网溯源方法,其特征在于,所述将hash存储至FISCO BCOS的链上,并与FISCO BCOS的链下建立点对点关系的步骤之后还包括:
获取物联网发起请求获取原始数据;
计算原始数据的当前hash;
对比FISCO BCOS的链上存储的hash与当前hash;
当FISCO BCOS的链上存储的hash与当前hash相同,根据FISCO BCOS的链上存储的hash生成FISCO BCOS的链下链码;
查询链码是否存在IPFS地址信息;
若不存在,则继续查询IPFS;
若存在,根据IPFS上对应数据块文件的hash地址从IPFS上拿到原始数据,验证利用FISCO BCOS的链上hash获取的文件指纹比对IPFS上原始数据;
若两种IPFS上原始数据一致,则确定IPFS上对应数据块文件未被篡改;
若两种IPFS上原始数据不一致,则确定IPFS上对应数据块文件被篡改,并将FISCOBCOS的链上hash获取的文件指纹与IPFS上原始数据覆盖IPFS上对应数据块文件的hash地址从IPFS上拿到原始数据。
5.根据权利要求4所述的基于FISCO BCOS与IPFS的物联网溯源方法,其特征在于,所述根据FISCO BCOS的链上存储的hash生成FISCO BCOS的链下链码的步骤之前还包括:
验证链码的数字签名;
当数字签名与预存的持有人签名相同时,根据FISCO BCOS的链上存储的hash生成FISCO BCOS的链下链码;
当数字签名与预存的持有人签名不同时,拒绝访问请求。
6.根据权利要求4所述的基于FISCO BCOS与IPFS的物联网溯源方法,其特征在于,所述若两种IPFS上原始数据一致,则确定IPFS上对应数据块文件未被篡改的步骤之前还包括:
根据FISCO BCOS的链上存储的hash生成FISCO BCOS的链下链码;
根据链码验证数字签名;
当验证通过时,根据链码获取对应的IPFS地址信息;
根据IPFS地址信息获取物品信息。
7.根据权利要求3所述的基于FISCO BCOS与IPFS的物联网溯源方法,其特征在于,所述物品信息包括物品参数、物品当前状态、物品内预存的持有人签名以及图片、物品内存储的用户身份ID。
8.一种基于FISCO BCOS与IPFS的物联网溯源装置,其特征在于,包括:
物联网模块,用于获取的所有设备采集的传感器数据;
IPFS处理模块,用于将传感器数据存储于IPFS中生成多个IPFS节点,将多个IPFS节点连接搭建IPFS集群,其中,每个IPFS节点内的节点内容生成对应的hash;
区块链模块,用于将hash存储在FISCO BCOS的链上,并与FISCO BCOS的链下建立点对点关系。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求2至7中任一项所述的基于FISCO BCOS与IPFS的物联网溯源方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求2至7中任一项所述的基于FISCO BCOS与IPFS的物联网溯源方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210023224.9A CN114358776A (zh) | 2022-01-10 | 2022-01-10 | 基于fisco bcos与ipfs的物联网溯源方法、及其相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210023224.9A CN114358776A (zh) | 2022-01-10 | 2022-01-10 | 基于fisco bcos与ipfs的物联网溯源方法、及其相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114358776A true CN114358776A (zh) | 2022-04-15 |
Family
ID=81109121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210023224.9A Withdrawn CN114358776A (zh) | 2022-01-10 | 2022-01-10 | 基于fisco bcos与ipfs的物联网溯源方法、及其相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114358776A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115021914A (zh) * | 2022-06-14 | 2022-09-06 | 广西师范大学 | 一种基于区块链的安全高效的教育资历见证方法 |
-
2022
- 2022-01-10 CN CN202210023224.9A patent/CN114358776A/zh not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115021914A (zh) * | 2022-06-14 | 2022-09-06 | 广西师范大学 | 一种基于区块链的安全高效的教育资历见证方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109472696B (zh) | 资产交易方法、装置、存储介质及计算机设备 | |
CN113711536B (zh) | 从区块链网络中提取数据 | |
EP3769490B1 (en) | Implementing a blockchain-based web service | |
CN111625593B (zh) | 基于区块链的数据处理方法、装置、计算机设备 | |
US20220239496A1 (en) | Blockchain consensus method, device and system | |
CN108377272B (zh) | 一种管理物联网终端的方法及系统 | |
CN111552676A (zh) | 基于区块链的存证方法、装置、设备及介质 | |
WO2022242457A1 (zh) | 一种交易验证方法、装置、设备及存储介质 | |
CN111092896B (zh) | 基于优化paxos的食品溯源分布式数据同步方法 | |
CN101459672B (zh) | 网页内容认证系统及方法 | |
CN106713391B (zh) | 一种session信息的共享方法和共享系统 | |
CN109861992A (zh) | 一种监控终端的信息交互方法和跨场景追踪方法 | |
CN113094334B (zh) | 基于分布式存储的数字服务方法、装置、设备及储存介质 | |
CN112988674A (zh) | 大数据文件的处理方法、装置、计算机设备及存储介质 | |
CN111447068B (zh) | 一种基于区块链的授时存证方法 | |
CN111259022A (zh) | 一种信息同步方法、同步系统、计算机设备和介质 | |
CN114358775A (zh) | 基于Fabric与IPFS的物联网溯源方法、及其相关设备 | |
CN114358776A (zh) | 基于fisco bcos与ipfs的物联网溯源方法、及其相关设备 | |
CN111327680B (zh) | 认证数据同步方法、装置、系统、计算机设备和存储介质 | |
CN114428661A (zh) | 一种镜像管理方法及装置 | |
AU2021105609A4 (en) | A blockchain network based edge computing in iot using deep learning | |
CN104378411A (zh) | 服务交换系统 | |
CN117640575B (zh) | 分布式数字标识的管理方法、装置、设备和介质 | |
CN116862679B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN116760632B (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220415 |
|
WW01 | Invention patent application withdrawn after publication |