一种基于区块链的遥感数据存储方法和存储系统与流程

文档序号:17989829发布日期:2019-06-22 00:41阅读:533来源:国知局
一种基于区块链的遥感数据存储方法和存储系统与流程
本发明涉及计算机
技术领域
,尤其涉及一种基于区块链的遥感数据存储方法和存储系统。
背景技术
:近年来,随着遥感技术的不断发展,时间维的遥感信息越来越多地受到重视,需要获取某一区域的长时间序列遥感数据以对遥感数据进行研究分析。在现有技术中,通常采用离散文件的方式组织长时间序列遥感影像,目前,用于时间序列分析的遥感数据集通常是以一种常用格式的文件为基本存储单元,例如taggedimagefileformat(geo-tiff)、hierarchicaldataformat(hdf),以及遥感商用软件自带格式(如envi和erdas),其中,envi和erdas软件自带数据格式只能存储3维立方体数据,每个文件对应一个时间的数据;hdf和geo-tiff数据格式有所不同,内部采用更加复杂的数据结构(例如树状结构或链表结构),可以将几个时间的3维立方体影像组织在一个文件中,当组织长时间序列遥感影像数据时,首先将长时间序列按时间分成若干组,每一个组包含一个或多个时间,每个组对应一个hdf文件存储,每个文件中采用树状结构或链表结构组织在一起。现有技术中这种以离散文件的方式组织长时间序列遥感影像,数据处理的对象在逻辑上实际上是一些离散的数据。这种方式一方面导致时间和空间的数据没有形成一体化,获取时序数据时需要读取多个文件,针对每一个文件还需要遍历其中的树状结构或者链表结构中的数据,过程繁琐,不利于研究分析;另一方面,存储的遥感数据可以进行手工修改,不能阻止被篡改,也很难得知数据被篡改,从而在一些需要使用遥感序列数据作为证据的场景下就很难有说服力,例如土地确权等。因此,需要对现有技术进行改进,以解决目前遥感数据离散存储导致的时序化数据获取困难以及遥感数据容易被篡改的问题。技术实现要素:本发明实施例提供了一种基于区块链的遥感数据存储方法和存储系统,用于提高遥感数据存储的安全性。根据本发明的第一方面,提供了一种基于区块链的遥感数据存储方法。该方法包括:将遥感数据基于采集时间点存储为多个遥感文件;对所述多个遥感文件进行哈希运算得到对应的哈希值;在区块链网络中通过设计智能合约存储所述多个遥感文件的关联信息,其中,所述智能合约包括所述多个遥感文件对应的哈希值。在一个实施例中,将遥感数据基于采集时间点存储为多个遥感文件包括以下子步骤:将每个采集时间点对应的遥感数据存储到一个文件中,获得所述多个遥感文件,其中,一个遥感文件对应一个采集时间点;将一个地理区域的不同采集时间点的遥感文件存储至一个文件夹,获得多个文件夹,其中一个文件夹对应一个地理区域的不同采集时间点的遥感文件。在一个实施例中,对于所述多个遥感文件的每一个,以对应的哈希值标识其文件名称。在一个实施例中,所述智能合约还包括遥感数据所属的区域名称、区域标识、创建时间点、遥感数据的实际存储位置信息。在一个实施例中,在所述智能合约中,对于同一地理区域不同采集时间点的遥感数据分配相同的区域标识。在一个实施例中,将所述多个遥感文件存储于独立于所述区块链网络的文件系统并且利用中心数据库存储所述多个遥感文件不在区块链网络上的关联信息。在一个实施例中,所述不在区块链网络上的关联信息包括用户信息、相应地理区域信息。根据本发明的第二方面,提供了一种遥感数据的存储系统。该系统包括:遥感数据处理和存储单元:用于将遥感数据基于采集时间点存储为多个遥感文件以及对所述多个遥感文件进行哈希运算得到对应的哈希值;区块链网络:用于通过设计智能合约存储所述多个遥感文件的关联信息,其中,所述智能合约包括所述多个遥感文件对应的哈希值。根据本发明的第三方面,提供了一种电子设备,包括存储器、处理器,所述处理器用于执行存储器中存储的计算机程序时实现本发明的基于区块链的遥感数据存储方法的步骤。根据本发明的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明的基于区块链的遥感数据存储方法的步骤。与现有技术相比,本发明的优点在于:将遥感数据的关联信息存储到区块链上,实现了遥感数据的时序化存储,从而便于获取某一个区域的时序化数据,解决了现有技术中离散化存储遥感数据而导致的获取和分析复杂的问题;将遥感图像以hash的形式存储在区块链上,如果遥感图像被篡改,那么对应的图像hash会发生变化,从而防止了遥感图像被篡改,保证了数据的真实可信。附图说明以下附图仅对本发明作示意性的说明和解释,并不用于限定本发明的范围,其中:图1示出了根据本发明一个实施例的基于区块链的遥感数据存储系统的结构图;图2示出了根据本发明另一个实施例的基于区块链的遥感数据存储系统的结构图;图3示出了根据本发明一个实施例的基于区块链的遥感数据存储方法的流程图;图4示出了根据本发明一个实施例的区块链上存储的遥感数据格式的示意图;图5示出了根据本发明一个实施例的电子设备的结构图。具体实施方式为了使本发明的目的、技术方案、设计方法及优点更加清楚明了,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,本文所描述的具体实施例仅用以解释本发明,并不用于限定本发明。在本文示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。图1示出了根据本发明一个实施例的基于区块链的遥感数据存储系统。该系统100包括遥感数据采集和处理平台110、后台服务器120、区块链平台130,其中,后台服务器120与中心数据库140和文件系统150具有通信连接。遥感数据采集和处理平台110用于采集和处理遥感数据,可使用现有的遥感卫星和相应的处理平台,得到遥感图像数据。后台服务器120用于对遥感数据采集和处理平台110输出的遥感数据进行存储,例如,保存用户信息,管理对后台服务器120的访问权限等,后台服务器120可将获取的遥感数据存储到中心化数据库140、文件系统150以及区块链平台130。后台服务器120例如包括接口层、业务层、与区块链系统交互的sdk(软件开发工具包)等,接口层用于接入后台服务器的api,业务层用于处理后台服务器的业务请求,与区块链系统交互的sdk用于与区块链系统进行通信,实现后台服务器120和区块链平台130之间的信息交互。在一个实施例中,中心化数据库140用于存储一些不在链上的数据,或者存储与链关联的数据,例如用户信息,相应区域的信息等。在一个实施例中,文件系统150用于存储遥感影像,例如,将每个时间点对应的遥感影像存储到一个文件中,然后将各个区域的遥感影像存储到一个文件夹,通过这种方式,每个文件夹所包含文件为该区域按时间序列存储的文件。在一个优选实施例中,为了提高文件存储的安全性,将各文件的名称标识为文件的hash值。区块链平台130用于存储遥感影像数据,可采用开源框架,例如fabric、以太坊等,利用区块链平台已有的区块链账本结构,网络结构,基础能力等,设计智能合约等来存储遥感影像数据。区块链平台130的架构例如包括合约层、网络层和存储层等,其中,网络层用于实现区块链网络中节点与节点之间的信息交互,例如包括组网机制、数据传播和验证机制等;合约层封装区块链系统的脚本、算法以及智能合约等,存储层实现区块链网络中各节点上的数据存储。在一个实施例中,区块链平台130存储遥感图像的摘要信息,例如,遥感数据在区块链平台存储方式为:设计智能合约存储遥感数据,智能合约中包括遥感数据的所属区域名称、标识、时间、遥感图像的hash值、遥感图像的实际存储位置等。其中,遥感图像的hash值使用sha256对遥感文件生成摘要,通过这种方式,只要遥感图像文件稍有变化,那么对应图像的hash值就有很大的不同,即遥感图像以hash的形式存储在区块链上,真实的数据通过存储位置获取,并通过hash值比对获取。具体地,智能合约存储的遥感数据参见下表1所示。表1:智能合约存储的遥感数据信息在表1中,区域名称用于表示遥感图像或遥感数据文件内容对应的地理区域,例如,标记为北京、上海等;区域标识是地理区域的另外表示方法,例如,可采用本发明的存储系统可唯一识别的数字编号来标识;创建时间用于表示创建各区块的时间;遥感图像的摘要是遥感图像或遥感数据文件内容对应的hash值;遥感图像的实际存储位置用于指示遥感图像或遥感文件实际的存储位置,例如包括存储的服务器标识和存储目录路径等。应理解的是,表1仅示意性示出了存储的遥感数据,本领域的技术人员根据实际业务的需要,可对存储的摘要信息作适当扩充。此外,本发明实施例提供的存储系统能够存储海量的遥感数据,对于区块链平台130,本发明对区块增长、单区块大小、一个区块的数据量大小等不进行限制,可根据实际存储的数据量、区块链网络的规模等进行适当设置。图2示出了根据本发明另一实施例的基于区块链的遥感数据存储系统,与图1的系统100不同的是,该实施例的系统200还包括客户端260。客户端260用于为用户显示遥感数据,例如包括客户端应用层(app/web)(未示出)、界面层、业务层和与区块链系统交互的sdk等。通过客户端,用户可以直接在界面上看到某一个区域的遥感影像的时序化展示,然后可以具体查看某一个时间点的遥感影像,以进行分析等。通过集成与区块链系统交互的sdk,可以从区块链平台获取某个区域按时间变化的内容,某个时间当时上链的详细操作和信息等,并且通过访问后台服务器获得不在链上的信息。例如,在客户端260设定查询条件,后台服务器120和区块链平台130能够响应于设定的查询条件,向客户端显示查询结果。对应于图1或图2所示的遥感数据存储系统,本发明提供了一种基于区块链的遥感数据存储方法,简言之,该方法包括基于采集时间点和地理区域存储遥感文件;在中心数据库中存储遥感文件不在链上的关联信息;在区块链网络中存储遥感文件的摘要信息。具体地,参见图3所示,该方法包括以下步骤:步骤s310,基于采集时间点存储遥感数据文件。在一个实施例中,将遥感数据文件存储于文件系统中,存储方式为:将每个采集时间点对应的遥感数据存储到一个文件中,获得所述多个遥感文件,其中,一个遥感文件对应一个采集时间点;将每个地理区域不同采集时间点的遥感文件存储至一个文件夹。在一个可选实施例中,对于所述多个遥感文件的每一个,以对应的哈希值标识其文件名称。步骤s320,将遥感图像相关信息存储到中心化数据库中。在一个实施例中,利用中心数据库存储与遥感文件相关的但不在区块链网络上的关联信息,例如,关联信息包括用户信息,相应的区域信息等。步骤s330,在区块链网络中存储遥感数据文件的hash值。向区块链网络中存储遥感数据文件的hash值的过程包括:遥感数据采集和处理平台对处理遥感数据,后台服务器遥感数据并存储为多个遥感数据文件(参见步骤s310),后台服务器遥感数据文件对应的hash值,调用区块链平台sdk的提交交易接口将遥感数据提交到区块链网络中,其中,向区块链平台存储数据的具体过程属于现有技术,在此不再赘述。在一个实施例中,区块链网络中通过设计智能合约存储所述多个遥感文件的关联信息,例如,智能合约包括遥感数据文件对应的哈希值、遥感数据文件所属的区域名称、区域标识、采集时间点、遥感图像的实际存储位置信息等。在一个可选实施例中,在所述智能合约中,所述区域标识对于同一区域不同采集时间点的遥感数据分配相同值。步骤s340,区块链网络经过共识生成区块,存储数据。在数据存储过程中,区块链网络中各节点经过共识,生成区块,以实现区块数据的存储。步骤s350,后台服务器判断成功完成后台服务、区块链数据存储,返回结果。在后台服务器向文件系统、中心数据库或区块链网络存储数据的过程中,后台服务器判断是否成功完成数据存储,并返回成功或失败结果。经过上述处理,对应的遥感图像数据就会成功的存储到区块链网络,后台数据库存储了遥感图像对应的区域信息(例如区域名称、区域标识等),便于客户端首先从后台服务器根据区域名称去获取区域的标识,然后去区块链网络获取遥感数据,而实际的遥感影像数据会存储在文件系统之中。例如,当遥感数据成功的保存到区块链网络之后,那么对应的需要从区块链网络获取这些数据的接口,提供方便易用的接口供后台服务器或者客户端使用,涉及的接口包括:根据区域标识获取分页,以获取该区域的遥感数据提交记录,可以按时间段进行筛选(将此过程涉及的接口表示为第一接口);根据遥感数据提交记录对应的交易id获取该笔记录的详情,即该记录对应的提交数据(将此过程涉及的接口表示为第二接口)。通过第一个接口,客户端可以获取到某一个区域的时序化遥感数据列表,通过第二个接口,客户端可以获取到某一个时间点的详细的遥感数据。然后,再配合后台服务器的相关接口,即可获取到详细的遥感影像,进而详细地对不同时间点的遥感影像进行对比,从而获取该区域内的变化,得到分析结果。在本发明的实施例中,区块链平台存储遥感数据文件的摘要信息、中心数据库用于链下的业务处理、文件系统存储不同地理区域下的不同时间点的遥感图像文件。例如,在一个应用示例中,文件系统中存储的文件列表为:/home/remote_data/beijing/a7fcfc6b5269bdcce571798d618ea219a68b96cb87a0e21080c2e758d23e4ce9.giff;/home/remote_data/beijing/u56fc6b5269bdcce571798d618ea219a68b96cb87a0e21080c2e758d23e4ce9.giff;/home/remote_data/shanghai/tewfcfc6b5269bdcce571798d618ea219a68b96cb87a0e21080c2e758d23e4ce9.giff。在上述示例中,包括北京和上海两个地理区域的遥感图像文件,并且每个区域下不同采集时间点的遥感图像文件以对应的哈希值标识。图4是区块链上存储的数据格式示例,其中,示意了3个节点,区块链上每个节点上存储的数据格式相同,存储的是账本数据,不同的区块链平台账本数据的格式会有所不同,但基本都是由区块组成账本数据。具体地,区块头包含区块号,当前区块hash(当前区块中包含的所有交易的hash),前一个区块的hash;区块元数据包含区块创建时间,写入程序的证书、公钥、签名等。区块数据包含了一组交易(如交易1、交易2、交易n等),交易在创建区块时写入。在本发明的实施例中,遥感数据在区块链的存储信息位于每个交易中,每个交易中保存了遥感数据上链时的原始信息,对应的数据通常存储在key-value数据库中,当执行查询操作时,返回原始交易的json(javascriptobjectnotation)结构信息。在一些区块链平台,可以根据存储数据时的key去查找当前状态或者历史状态数据。例如,交易中包含的关键数据是遥感数据:在上述示例中,区块链上存储遥感图像文件的hash(即a7fcfc6b5269bdcce571798d618ea219a68b96cb87a0e21080c2e758d23e4ce9)以及文件系统提供的对该文件访问的url(即http://remotesensing.com/beijing/a7fcfc6b5269bdcce571798d618ea219a68b96cb87a0e21080c2e758d23e4ce9)。在一个示例中,用于链下业务处理的中心数据库上存储的与区块链上的关联数据信息参见下表2所示。表2:中心数据库的关联数据信息数据类型描述region_nametext区域名称region_idtext区域标识基于表2,当用户查询遥感数据文件时,可通过区域标识(region_id)去链上获取该地区的遥感数据相关信息。需说明的是,中心数据库中还可存储其他的非链上数据,例如系统注册用户的信息等。图5是根据本发明一个实施例的电子设备500,包括存储器510、处理器520及存储在存储器510上并可在处理器520上运行的计算机程序511,处理器520执行计算机程序511时实现本发明实施例的遥感数据存储方法,例如包括以下步骤:将遥感数据基于采集时间点存储为多个遥感文件;对所述多个遥感文件进行哈希运算得到对应的哈希值;在区块链网络中通过设计智能合约存储所述多个遥感文件的关联信息,其中,所述智能合约包括所述多个遥感文件对应的哈希值。由于本发明描述的电子设备是实施本发明实施例中一种基于区块链的遥感数据存储装置所采用的设备,故而基于本发明实施例中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本发明实施例中的方法不再详细介绍,只要本领域所属技术人员实施本发明实施例中的方法所采用的设备,都属于本发明所欲保护的范围。综上所述,本发明实施例提供的基于区块链的遥感数据存储方法和存储系统,根据遥感数据的属性,结合了区块链网络所具备的时间特性,将遥感数据存储到区块链上,实现了遥感数据的时序化存储,能够方便的获取某一个区域的时序化数据,解决了现有技术离散化存储遥感数据,获取和分析复杂的问题。并且,遥感数据以hash的形式存储在区块链上,如果遥感图像被篡改,那么对应的图像hash会发生变化,从而防止了遥感图像的篡改,保证数据的真实可信。需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以利用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本
技术领域
的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本
技术领域
的其它普通技术人员能理解本文披露的各实施例。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1