首页> 中国专利> 基于区块链的数据压缩、查询方法及装置和电子设备

基于区块链的数据压缩、查询方法及装置和电子设备

摘要

本说明书实施例提供一种基于区块链的数据压缩方法及装置和电子设备,所述方法包括:业务方根据预设的压缩模版,将待存证的目标数据进行压缩;将压缩后的目标数据以及所述压缩模版的唯一标识组装为存证交易;将所述存证交易发送给区块链的节点设备,以使所述节点设备响应于所述存证交易,查询发布于所述区块链中所述唯一标识对应的智能合约,调用所述智能合约中声明的压缩模版对所述目标数据的数据格式进行校验,如果校验通过存证所述目标数据。

著录项

  • 公开/公告号CN112750037A

    专利类型发明专利

  • 公开/公告日2021-05-04

    原文格式PDF

  • 申请/专利权人 创新先进技术有限公司;

    申请/专利号CN202110043051.2

  • 发明设计人 程龙;李艳鹏;贾博岩;

    申请日2019-04-30

  • 分类号G06Q40/04(20120101);G06F21/64(20130101);G06F16/174(20190101);

  • 代理机构11415 北京博思佳知识产权代理有限公司;

  • 代理人周嗣勇

  • 地址 开曼群岛大开曼岛乔治镇医院路27号开曼企业中心

  • 入库时间 2023-06-19 10:51:07

说明书

技术领域

本说明书实施例涉及区块链技术领域,尤其涉及一种基于区块链的数据压缩、查询方法及装置和电子设备。

背景技术

区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术在众多的领域中广泛的进行应用。

发明内容

本说明书实施例提供的一种基于区块链的数据压缩、查询方法及装置和电子设备:

根据本说明书实施例的第一方面,提供一种基于区块链的数据压缩方法,所述方法包括:

业务方根据预设的压缩模版,将待存证的目标数据进行压缩;

将压缩后的目标数据以及所述压缩模版的唯一标识组装为存证交易;

将所述存证交易发送给区块链的节点设备,以使所述节点设备响应于所述存证交易,查询发布于所述区块链中所述唯一标识对应的智能合约,调用所述智能合约中声明的压缩模版对所述目标数据的数据格式进行校验,如果校验通过存证所述目标数据。

可选的,所述根据预设的压缩模版,将待存证的目标数据进行压缩,具体包括:

确定待存证的目标数据的数据结构;

根据所述数据结构对应的压缩模版,将所述目标数据进行压缩。

可选的,所述目标数据的数据结构由自描述结构和实际数据构成;其中,所述自描述结构用于表示实际数据所表达的含义;

所述压缩模版中记录了自描述结构的压缩规则;

所述将所述目标数据进行压缩包括:

根据所述压缩规则,将目标数据的自描述结构映射为自定义数据;其中,所述自定义数据量小于自描述结构的数据量。

可选的,所述方法还包括:

将压缩模版组装为智能合约的创建交易;

将所述创建交易发送给区块链的节点设备,以使所述节点设备响应于所述创建交易,调用发布于所述区块链的审核合约中声明的合约审核逻辑,在交易日志中写入一个投票事件,所述区块链的审核节点监听到所述投票事件后,向所述审核合约提交投票交易;所述审核合约对投票交易进行汇总整理,得出所述智能合约的审核结果。

可选的,所述方法还包括:

如果审核结果为通过,在区块链中创建所述智能合约,并向业务方返回所述智能合约的唯一标识。

可选的,所述唯一标识包括:

针对所述智能合约中声明的压缩模版的唯一内容进行hash计算得到的hash值。

根据本说明书实施例的第二方面,提供一种基于区块链的数据压缩装置,所述装置包括:

区块链的节点设备接收业务方提交的存证交易;其中,所述存证交易中包含有唯一标识、待存证的目标数据,所述目标数据为经过所述唯一标识对应的压缩模版压缩后的数据;

响应于所述存证交易,查询发布于所述区块链中所述唯一标识对应的智能合约,调用所述智能合约中声明的压缩模版对所述目标数据的数据格式进行校验,如果校验通过,存证所述目标数据。

可选的,所述方法还包括:

接收业务方发送的针对压缩模版组装而成的智能合约的创建交易;

响应于所述创建交易,调用发布于所述区块链的审核合约中声明的合约审核逻辑,在交易日志中写入一个投票事件,所述区块链的审核节点监听到所述投票事件后,向所述审核合约提交投票交易;所述审核合约对投票交易进行汇总整理,得出所述智能合约的审核结果。

可选的,所述方法还包括:

如果审核结果为通过,在区块链中创建所述智能合约,并向业务方返回所述智能合约的唯一标识。

可选的,所述唯一标识包括:

针对所述智能合约中声明的压缩模版的唯一内容进行hash计算得到的hash值。

根据本说明书实施例的第三方面,提供一种基于区块链的数据查询装置,所述区块链上存证的数据为基于上述基于区块链的数据压缩方法进行数据压缩后的压缩数据;所述方法包括:

业务方针对待查询的数据,将所述唯一标识组装为查询交易;

将所述查询交易发送给区块链的节点设备,以使所述节点设备响应于所述查询交易,查询区块链上存证的压缩数据;查询发布于所述区块链中所述唯一标识对应的智能合约,调用所述智能合约中声明的压缩模版将所述压缩数据还原为完整数据;

接收所述节点设备返回的完整数据。

可选的,所述压缩模版中记录了自描述结构的压缩规则;

所述将所述压缩数据还原为完整数据,具体包括:

根据所述压缩规则,将压缩数据中的自定义数据映射为自描述结构;其中,所述自定义数据量小于自描述结构的数据量。

根据本说明书实施例的第四方面,提供一种基于区块链的数据查询装置,所述区块链上存证的数据为基于上述基于区块链的数据压缩方法进行数据压缩后的压缩数据;所述方法包括:

区块链的节点设备接收业务方提交的查询交易;其中,所述查询交易中包含有唯一标识;

响应于所述查询交易,查询区块链上存证的压缩数据;

查询发布于所述区块链中所述唯一标识对应的智能合约,调用所述智能合约中声明的压缩模版将所述压缩数据还原为完整数据;

将所述完整数据返回给所述业务方。

可选的,所述压缩模版中记录了自描述结构的压缩规则;

所述将所述压缩数据还原为完整数据,具体包括:

根据所述压缩规则,将压缩数据中的自定义数据映射为自描述结构;其中,所述自定义数据量小于自描述结构的数据量。

根据本说明书实施例的第五方面,提供一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为上述任一项基于区块链的数据压缩方法。

根据本说明书实施例的第六方面,提供一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为上述任一项基于区块链的数据查询方法。

本说明书实施例,提供了一种基于区块链的数据压缩方案,业务方在本地基于压缩模板对待存证的目标数据进行压缩,对应的区块链的节点设备基于该压缩模版对应的智能合约对压缩数据进行校验,确保待存证的压缩数据符合数据格式的要求以避免数据异常(如数据乱码、错位)。如此,通过压缩模版与智能合约的格式约束,从数据源头上对数据进行压缩,减少数据量。另一方面,该提供了一种基于区块链的数据查询方案,区块链的节点设备在接收到业务方的查询交易时,由于区块链存证的数据为压缩数据,因此可以基于智能合约中声明的压缩模版将压缩数据还原为完整的数据。如此,同样是基于智能合约的压缩模版,将存证的压缩数据还原为完整数据以提供给业务方,保证数据正确性。

附图说明

图1是本说明书一实施例提供的基于区块链的数据压缩方法的流程图;

图2是本说明书一实施例提供的基于区块链的数据压缩方法的流程图;

图3是本说明书一实施例提供的基于区块链的数据查询方法的流程图;

图4是本说明书一实施例提供的基于区块链的数据查询方法的流程图;

图5是本说明书一实施例提供的基于区块链的数据压缩装置的硬件结构图;

图6是本说明书一实施例提供的基于区块链的数据压缩装置的模块示意图;

图7是本说明书一实施例提供的基于区块链的数据压缩装置的模块示意图;

图8是本说明书一实施例提供的基于区块链的数据查询装置的硬件结构图;

图9是本说明书一实施例提供的基于区块链的数据查询装置的模块示意图;

图10是本说明书一实施例提供的基于区块链的数据查询装置的模块示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。

在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

基于区块链的溯源存证场景,是现如今应用区块链技术最为广泛的场景之一。区块链技术的防篡改、可追溯、数据存储公平公正等特点赋能存证溯源数据的公信力,被业界广泛使用。但由于区块链是多节点设备各自拥有自己的数据账本,即一份存证数据会被多节点设备复制存储,随着业务存证数据量的增加,整个区块链上存证数据会成倍数增长,从而会占用大量的存储资源、网络开销。

具体地,现有上链存证的数据通常是以数据结构的形式上链存证的。例如xml,json等数据结构。这种数据结构的优点具有自描述结构,所述自描述结构具有展示数据所表达的意义的优点,但是自描述结构会占用大量的存储空间。

而区块链的存储资源、网络资源并不是无穷无尽的;因此,如何即保证业务需求的实现,又能够节省资源开销成了一个亟待解决的问题。

本说明书实施例,提供了一种基于区块链的数据压缩方案,业务方在本地基于压缩模板对待存证的目标数据进行压缩,对应的区块链的节点设备基于该压缩模版对应的智能合约对压缩数据进行校验,确保待存证的压缩数据符合数据格式的要求以避免数据异常(如数据乱码、错位)。如此,通过压缩模版与智能合约的格式约束,从数据源头上对数据进行压缩,减少数据量。另一方面,该提供了一种基于区块链的数据查询方案,区块链的节点设备在接收到业务方的查询交易时,由于区块链存证的数据为压缩数据,因此可以基于智能合约中声明的压缩模版将压缩数据还原为完整的数据。如此,同样是基于智能合约的压缩模版,将存证的压缩数据还原为完整数据以提供给业务方,保证数据正确性。

在本说明书所描述的区块链,具体可以包括私有链、共有链以及联盟链等,在本说明书中不进行特别限定。

例如,在一个场景中,上述区块链具体可以是由业务系统、审核系统、公示系统等作为联盟成员组成的一个联盟链;该联盟链的运营方可以依托于该联盟链,来部署针对上述数据压缩存证业务;而以上所描述的作为联盟成员的业务系统、审核系统、公示系统都可以作为上述数据压缩存证业务的一个业务节点。各个业务节点可以将自身所产生或者接收到的与上述压缩数据以交易的形式在联盟链中进行发布,并在该交易经过联盟链中的共识节点的共识处理之后,在联盟链中的分布式数据库进行存储,完成上述物流检验结果的“上链”存证。

其中,需要说明的是,在本说明书中所描述的交易(Transaction),是指业务方通过区块链的客户端创建,并需要最终发布至区块链的分布式数据库中的一笔数据。

区块链中的交易,通常存在狭义的交易以及广义的交易之分。狭义的交易是指业务方向区块链发布的一笔价值转移;例如,在传统的比特币区块链网络中,交易可以是业务方在区块链中发起的一笔转账。而广义的交易是指业务方向区块链发布的一笔具有业务意图的业务数据;例如,运营方可以基于实际的业务需求搭建一个联盟链,依托于联盟链部署一些与价值转移无关的其它类型的在线业务(比如,业务数据存证、业务数据查询、业务数据处理等),而在这类联盟链中,交易可以是业务方在联盟链中发布的一笔具有业务意图的业务消息或者业务请求。

上述客户端,可以包括任意类型的以区块链中存储的底层业务数据作为数据支撑,来实现特定的业务功能的上层应用。

智能合约(Smart contract)是一种旨在应用在可以部署在区块链上的以信息化方式传播、验证或执行合同的计算机协议。通过在智能合约中声明业务逻辑可以实现执行相应操作。智能合约允许在没有第三方的情况下进行可信交易。这些交易可追踪且不可逆转。智能合约能够提供优于传统合同方法的安全,并减少与合同相关的其他交易成本。

本说明书提供的方案,主要分为数据压缩并存证以及压缩数据查询两部分。

请参考图1,图1为本说明书一实施例提供的基于区块链的数据压缩方法的流程图,所述方法应用于业务方,具体可以包括以下步骤:

步骤110:业务方根据预设的压缩模版,将待存证的目标数据进行压缩;

步骤120:将压缩后的目标数据以及所述压缩模版的唯一标识组装为存证交易;

步骤130:将所述存证交易发送给区块链的节点设备,以使所述节点设备响应于所述存证交易,查询发布于所述区块链中所述唯一标识对应的智能合约,调用所述智能合约中声明的压缩模版对所述目标数据的数据格式进行校验,如果校验通过存证所述目标数据。

值得一提的是,上述区块链中所述唯一标识对应的智能合约是由任一业务方预先发布至区块链中的。具体如下步骤所示:

A1:将压缩模版组装为智能合约的创建交易;

A2:将所述创建交易发送给区块链的节点设备,以使所述节点设备响应于所述创建交易,调用发布于所述区块链的审核合约中声明的合约审核逻辑,在交易日志中写入一个投票事件,所述区块链的审核节点监听到所述投票事件后,向所述审核合约提交投票交易;所述审核合约对投票交易进行汇总整理,得出所述智能合约的审核结果。

该实施例中,业务方可以创建用于对业务数据进行校验的智能合约,该智能合约是基于压缩模版组装而成的。

一般的,智能合约需要符合智能合约的规范。因此,对于节点设备来说,需要对业务方提交的智能合约进行审核。具体地,调用发布于所述区块链的审核合约中声明的合约审核逻辑,在交易日志中写入一个投票事件,所述区块链的审核节点监听到所述投票事件后,向所述审核合约提交投票交易;所述审核合约对投票交易进行汇总整理,得出所述智能合约的审核结果。

如果审核结果通过,则创建业务方提交用于进行数据压缩校验的智能合约,并且区块链可以生成该智能合约对应的唯一标识。即,唯一标识与智能合约之间具有一一对应关系。

在一实施例中,所述唯一标识可以是指针对所述智能合约中声明的压缩模版的唯一内容进行hash计算得到的hash值。而所述hash值也作为存放智能合约的合约地址。

所述唯一标识除了采用hash值之外,还可以采用其它任意具有唯一性的标识,例如采用依次增长的ID进行标识。例如,从ID=0开始,每创建一个智能合约,在原有的ID基础上加1作为新创建的智能合约的唯一标识。

如上所述,业务方可以在成功发布压缩模版对应的智能合约之外,可以接收区块链分配的唯一标识。该唯一标识不仅可以对应区块链中的智能合约,也可以对应业务方本地的压缩模版。即,唯一标识与压缩模版之间具有一一对应关系。

在一实施例中,不同压缩模版用于对不同数据结构的业务数据进行压缩。因此,所述步骤110根据预设的压缩模版,将待存证的目标数据进行压缩,具体可以包括:

确定待存证的目标数据的数据结构;

根据所述数据结构对应的压缩模版,将所述目标数据进行压缩。

举例说明,假设目标数据属于XML数据结构,那么业务方需要采用XML的压缩模版对目标数据进行压缩;

如果目标数据属于JSON数据结构,那么业务方需要采用JSON的压缩模版对目标数据进行压缩。

在一实施例中,所述目标数据的数据结构由自描述结构和实际数据构成;其中,所述自描述结构用于表示实际数据所表达的含义;

所述压缩模版中记录了自描述结构的压缩规则;

所述将所述目标数据进行压缩包括:

根据所述压缩规则,将目标数据的自描述结构映射为自定义数据;其中,所述自定义数据量小于自描述结构的数据量。

举例说明,XML数据结构的特征是以“/***/”作为自描述结构,其中“***”是描述实际数据含义的内容;例如:/username/ZhangSan;通过/username/就可以确定“ZhangSan”表达的是用户名。

类似的,JSON数据结构的特征是以“***:”作为自描述结构,其中“***”是描述实际数据含义的内容;例如:username:ZhangSan;通过username:就可以确定“ZhangSan”表达的是用户名。

不管是哪种数据结构,在对应的压缩模版中可以预先定义每种自描述结构与自定义数据之间的映射关系。从而使得业务方可以根据所述压缩规则,将目标数据的自描述结构映射为自定义数据;其中,所述自定义数据量小于自描述结构的数据量。

举例说明,针对目标数据:/username/ZhangSan;由于该目标数据的数据结构为XML数据结构,假设XML的压缩模版中定义了/username/映射的是“1”;那么压缩后的目标数据就变为:1ZhangSan。可见,压缩前后目标数据的数据量减少了很多。

本说明书实施例,提供了一种基于区块链的数据压缩方案,业务方在本地基于压缩模板对待存证的目标数据进行压缩,对应的区块链的节点设备基于该压缩模版对应的智能合约对压缩数据进行校验,确保待存证的压缩数据符合数据格式的要求以避免数据异常(如数据乱码、错位)。如此,通过压缩模版与智能合约的格式约束,从数据源头上对数据进行压缩,减少数据量。

请参考图2,图2为本说明书一实施例提供的基于区块链的数据压缩方法的流程图,所述方法应用于区块链的节点设备,具体可以包括以下步骤:

步骤210:区块链的节点设备接收业务方提交的存证交易;其中,所述存证交易中包含有唯一标识、待存证的目标数据,所述目标数据为经过所述唯一标识对应的压缩模版压缩后的数据;

步骤220:响应于所述存证交易,查询发布于所述区块链中所述唯一标识对应的智能合约,调用所述智能合约中声明的压缩模版对所述目标数据的数据格式进行校验,如果校验通过,存证所述目标数据。

该实施例中与前述图1所示实施例是执行主体不同,具体实现可以参考图1实施例中的描述。

业务方可以创建用于对业务数据进行校验的智能合约,该智能合约是基于压缩模版组装而成的。

一般的,智能合约需要符合智能合约的规范。因此,对于节点设备来说,需要对业务方提交的智能合约进行审核。

在一实施例中,区块链的节点设备接收业务方发送的针对压缩模版组装而成的智能合约的创建交易;

响应于所述创建交易,调用发布于所述区块链的审核合约中声明的合约审核逻辑,在交易日志中写入一个投票事件,所述区块链的审核节点监听到所述投票事件后,向所述审核合约提交投票交易;所述审核合约对投票交易进行汇总整理,得出所述智能合约的审核结果。

如果审核结果为通过,在区块链中创建所述智能合约,并向业务方返回所述智能合约的唯一标识。即,唯一标识与智能合约之间具有一一对应关系。

在一实施例中,所述唯一标识可以是指针对所述智能合约中声明的压缩模版的唯一内容进行hash计算得到的hash值。而所述hash值也作为存放智能合约的合约地址。

所述唯一标识除了采用hash值之外,还可以采用其它任意具有唯一性的标识,例如采用依次增长的ID进行标识。例如,从ID=0开始,每创建一个智能合约,在原有的ID基础上加1作为新创建的智能合约的唯一标识。

针对业务方上传的已在业务方本地基于压缩模版压缩后的目标数据,节点设备需要对该目标数据进行校验。只有在目标数据的数据格式符合压缩模版规定的数据格式时,才可以确定校验通过,从而存证所述压缩后的目标数据。

本说明书实施例,提供了一种基于区块链的数据压缩方案,业务方在本地基于压缩模板对待存证的目标数据进行压缩,对应的区块链的节点设备基于该压缩模版对应的智能合约对压缩数据进行校验,确保待存证的压缩数据符合数据格式的要求以避免数据异常(如数据乱码、错位)。如此,通过压缩模版与智能合约的格式约束,从数据源头上对数据进行压缩,减少数据量。

如前所述,业务方可以将目标数据压缩后上链存证,这样上链存证的数据量会大大减少,以降低数据存证所需的存储资源;然而由于数据经过了压缩,在读取这些压缩数据后,如何将压缩数据还原为完整数据也需要解决。

请参考图3,图3为本说明书一实施例提供的基于区块链的数据查询方法的流程图,所述方法应用于业务方,所述区块链上存证的数据为基于前述图1所示实施例进行数据压缩后的压缩数据;本实施例具体可以包括以下步骤:

步骤310:业务方针对待查询的数据,将所述唯一标识组装为查询交易;

步骤320:将所述查询交易发送给区块链的节点设备,以使所述节点设备响应于所述查询交易,查询区块链上存证的压缩数据;查询发布于所述区块链中所述唯一标识对应的智能合约,调用所述智能合约中声明的压缩模版将所述压缩数据还原为完整数据;

步骤330:接收所述节点设备返回的完整数据。

业务方在需要获取目标数据时,可以基于目标数据所属数据结构对应的唯一标识组装为查询交易,即查询交易中包含有唯一标识。

节点设备响应所述查询交易,首先可以查询目标数据存证在区块链上的压缩数据;以及,查询所述唯一标识对应的智能合约。

这里查询压缩数据和智能合约的执行没有绝对的时序顺序,可以是同时执行,也可以先执行压缩数据,也可以是先执行查询智能合约。

在查询到智能合约以及压缩数据之后,需要调用所述智能合约中声明的压缩模版将所述压缩数据还原为完整数据。

在一实施例中,所述压缩模版中记录了自描述结构的压缩规则;

所述将所述压缩数据还原为完整数据,具体包括:

根据所述压缩规则,将压缩数据中的自定义数据映射为自描述结构;其中,所述自定义数据量小于自描述结构的数据量。

继续沿用前述示例:针对目标数据:/username/ZhangSan;由于该目标数据的数据结构为XML数据结构,假设XML的压缩模版中定义了/username/映射的是“1”;那么压缩后的目标数据就变为:1ZhangSan;

如果业务方需要获取该目标数据,由于区块链中存证的是1ZhangSan;需要将自定义数据还原回自描述结构;由于智能合约中声明的XML压缩模版中定义了“/username/”与“1”之间的映射关系;因此,节点设备可以将压缩数据中的自定义数据“1”转换为自描述结构“/username/”,即还原的完整数据为/username/ZhangSan;该查询到的数据ZhangSan的含义为用户名。

本说明书实施例,该提供了一种基于区块链的数据查询方案,区块链的节点设备在接收到业务方的查询交易时,由于区块链存证的数据为压缩数据,因此可以基于智能合约中声明的压缩模版将压缩数据还原为完整的数据。如此,同样是基于智能合约的压缩模版,将存证的压缩数据还原为完整数据以提供给业务方,保证数据正确性。

请参考图4,图4为本说明书一实施例提供的基于区块链的数据查询方法的流程图,所述方法应用于区块链的节点设备,所述区块链上存证的数据为基于前述图1所示实施例进行数据压缩后的压缩数据;本实施例具体可以包括以下步骤:

步骤410:区块链的节点设备接收业务方提交的查询交易;其中,所述查询交易中包含有唯一标识;

步骤420:响应于所述查询交易,查询区块链上存证的压缩数据;

步骤430:查询发布于所述区块链中所述唯一标识对应的智能合约,调用所述智能合约中声明的压缩模版将所述压缩数据还原为完整数据;

步骤440:将所述完整数据返回给所述业务方。

该实施例中与前述图3所示实施例是执行主体不同,具体实现可以参考图3实施例中的描述。

业务方可以向区块链的节点设备发起查询交易,以查询存证在区块链上的目标数据。其中,所述查询交易中包含有唯一标识。

节点设备响应所述查询交易,首先可以查询目标数据存证在区块链上的压缩数据;以及,查询所述唯一标识对应的智能合约。

这里查询压缩数据和智能合约的执行没有绝对的时序顺序,可以是同时执行,也可以先执行压缩数据,也可以是先执行查询智能合约。

在查询到智能合约以及压缩数据之后,需要调用所述智能合约中声明的压缩模版将所述压缩数据还原为完整数据。

在一实施例中,所述压缩模版中记录了自描述结构的压缩规则;

所述将所述压缩数据还原为完整数据,具体包括:

根据所述压缩规则,将压缩数据中的自定义数据映射为自描述结构;其中,所述自定义数据量小于自描述结构的数据量。

继续沿用前述示例:针对目标数据:/username/ZhangSan;由于该目标数据的数据结构为XML数据结构,假设XML的压缩模版中定义了/username/映射的是“1”;那么压缩后的目标数据就变为:1ZhangSan;

如果业务方需要获取该目标数据,由于区块链中存证的是1ZhangSan;需要将自定义数据还原回自描述结构;由于智能合约中声明的XML压缩模版中定义了“/username/”与“1”之间的映射关系;因此,节点设备可以将压缩数据中的自定义数据“1”转换为自描述结构“/username/”,即还原的完整数据为/username/ZhangSan;该查询到的数据ZhangSan的含义为用户名。

本说明书实施例,该提供了一种基于区块链的数据查询方案,区块链的节点设备在接收到业务方的查询交易时,由于区块链存证的数据为压缩数据,因此可以基于智能合约中声明的压缩模版将压缩数据还原为完整的数据。如此,同样是基于智能合约的压缩模版,将存证的压缩数据还原为完整数据以提供给业务方,保证数据正确性。

与前述基于区块链的奖励资金分配方法实施例相对应,本说明书还提供了基于区块链的奖励资金分配装置的实施例。所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机业务程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本说明书基于区块链的奖励资金分配装置所在设备的一种硬件结构图,除了图5所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据基于区块链的奖励资金分配实际功能,还可以包括其他硬件,对此不再赘述。

请参见图6,为本说明书一实施例提供的基于区块链的数据压缩装置的模块图,所述装置对应了图1所示实施例,应用于业务方,所述装置包括:

压缩单元510,业务方根据预设的压缩模版,将待存证的目标数据进行压缩;

组装单元520,将压缩后的目标数据以及所述压缩模版的唯一标识组装为存证交易;

存证单元530,将所述存证交易发送给区块链的节点设备,以使所述节点设备响应于所述存证交易,查询发布于所述区块链中所述唯一标识对应的智能合约,调用所述智能合约中声明的压缩模版对所述目标数据的数据格式进行校验,如果校验通过存证所述目标数据。

可选的,所述压缩单元510,具体包括:

确定子单元,确定待存证的目标数据的数据结构;

压缩子单元,根据所述数据结构对应的压缩模版,将所述目标数据进行压缩。

可选的,所述目标数据的数据结构由自描述结构和实际数据构成;其中,所述自描述结构用于表示实际数据所表达的含义;

所述压缩模版中记录了自描述结构的压缩规则;

所述压缩子单元中,将所述目标数据进行压缩包括:

根据所述压缩规则,将目标数据的自描述结构映射为自定义数据;其中,所述自定义数据量小于自描述结构的数据量。

可选的,所述装置还包括:

交易组装子单元,将压缩模版组装为智能合约的创建交易;

合约创建子单元,将所述创建交易发送给区块链的节点设备,以使所述节点设备响应于所述创建交易,调用发布于所述区块链的审核合约中声明的合约审核逻辑,在交易日志中写入一个投票事件,所述区块链的审核节点监听到所述投票事件后,向所述审核合约提交投票交易;所述审核合约对投票交易进行汇总整理,得出所述智能合约的审核结果。

可选的,所述合约创建子单元还包括:

如果审核结果为通过,在区块链中创建所述智能合约,并向业务方返回所述智能合约的唯一标识。

可选的,所述唯一标识包括:

针对所述智能合约中声明的压缩模版的唯一内容进行hash计算得到的hash值。

请参见图7,为本说明书一实施例提供的基于区块链的数据压缩装置的模块图,所述装置对应了图2所示实施例,应用于区块链的节点设备,所述装置包括:

接收单元610,区块链的节点设备接收业务方提交的存证交易;其中,所述存证交易中包含有唯一标识、待存证的目标数据,所述目标数据为经过所述唯一标识对应的压缩模版压缩后的数据;

响应单元620,响应于所述存证交易,查询发布于所述区块链中所述唯一标识对应的智能合约,调用所述智能合约中声明的压缩模版对所述目标数据的数据格式进行校验,如果校验通过,存证所述目标数据。

区块链的节点设备接收业务方提交的存证交易;其中,所述存证交易中包含有唯一标识、待存证的目标数据,所述目标数据为经过所述唯一标识对应的压缩模版压缩后的数据;

响应于所述存证交易,查询发布于所述区块链中所述唯一标识对应的智能合约,调用所述智能合约中声明的压缩模版对所述目标数据的数据格式进行校验,如果校验通过,存证所述目标数据。

可选的,所述装置还包括:

接收子单元,接收业务方发送的针对压缩模版组装而成的智能合约的创建交易;

创建子单元,响应于所述创建交易,调用发布于所述区块链的审核合约中声明的合约审核逻辑,在交易日志中写入一个投票事件,所述区块链的审核节点监听到所述投票事件后,向所述审核合约提交投票交易;所述审核合约对投票交易进行汇总整理,得出所述智能合约的审核结果。

可选的,所述创建子单元,还包括:

如果审核结果为通过,在区块链中创建所述智能合约,并向业务方返回所述智能合约的唯一标识。

可选的,所述唯一标识包括:

针对所述智能合约中声明的压缩模版的唯一内容进行hash计算得到的hash值。

与前述基于区块链的数据查询方法实施例相对应,本说明书还提供了基于区块链的数据查询装置的实施例。所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机业务程序指令读取到内存中运行形成的。从硬件层面而言,如图8所示,为本说明书基于区块链的数据查询装置所在设备的一种硬件结构图,除了图8所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据基于区块链的数据查询实际功能,还可以包括其他硬件,对此不再赘述。

请参见图9,为本说明书一实施例提供的基于区块链的数据压缩装置的模块图,所述装置对应了图3所示实施例,应用于业务方,所述区块链上存证的数据为前述基于区块链的数据压缩方法进行数据压缩后的压缩数据;所述装置包括:

组装单元710,业务方针对待查询的数据,将所述唯一标识组装为查询交易;

查询单元720,将所述查询交易发送给区块链的节点设备,以使所述节点设备响应于所述查询交易,查询区块链上存证的压缩数据;查询发布于所述区块链中所述唯一标识对应的智能合约,调用所述智能合约中声明的压缩模版将所述压缩数据还原为完整数据;

接收单元730,接收所述节点设备返回的完整数据。

可选的,所述压缩模版中记录了自描述结构的压缩规则;

所述查询单元720中,将所述压缩数据还原为完整数据,具体包括:

根据所述压缩规则,将压缩数据中的自定义数据映射为自描述结构;其中,所述自定义数据量小于自描述结构的数据量。

请参见图10,为本说明书一实施例提供的基于区块链的数据压缩装置的模块图,所述装置对应了图4所示实施例,应用于区块链的节点设备,所述区块链上存证的数据为前述基于区块链的数据压缩方法进行数据压缩后的压缩数据;所述装置包括:

接收单元810,区块链的节点设备接收业务方提交的查询交易;其中,所述查询交易中包含有唯一标识;

查询单元820,响应于所述查询交易,查询区块链上存证的压缩数据;

解压单元830,查询发布于所述区块链中所述唯一标识对应的智能合约,调用所述智能合约中声明的压缩模版将所述压缩数据还原为完整数据;

返回单元840,将所述完整数据返回给所述业务方。

可选的,所述压缩模版中记录了自描述结构的压缩规则;

所述解压单元830中将所述压缩数据还原为完整数据,具体包括:

根据所述压缩规则,将压缩数据中的自定义数据映射为自描述结构;其中,所述自定义数据量小于自描述结构的数据量。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上图6描述了基于区块链的数据压缩装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

业务方根据预设的压缩模版,将待存证的目标数据进行压缩;

将压缩后的目标数据以及所述压缩模版的唯一标识组装为存证交易;

将所述存证交易发送给区块链的节点设备,以使所述节点设备响应于所述存证交易,查询发布于所述区块链中所述唯一标识对应的智能合约,调用所述智能合约中声明的压缩模版对所述目标数据的数据格式进行校验,如果校验通过存证所述目标数据。

以上图7描述了基于区块链的数据压缩装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

区块链的节点设备接收业务方提交的存证交易;其中,所述存证交易中包含有唯一标识、待存证的目标数据,所述目标数据为经过所述唯一标识对应的压缩模版压缩后的数据;

响应于所述存证交易,查询发布于所述区块链中所述唯一标识对应的智能合约,调用所述智能合约中声明的压缩模版对所述目标数据的数据格式进行校验,如果校验通过,存证所述目标数据。

以上图9描述了基于区块链的数据查询装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

业务方针对待查询的数据,将所述唯一标识组装为查询交易;其中,所述区块链上存证的数据为前述任一基于区块链的数据压缩方法进行数据压缩后的压缩数据;

将所述查询交易发送给区块链的节点设备,以使所述节点设备响应于所述查询交易,查询区块链上存证的压缩数据;查询发布于所述区块链中所述唯一标识对应的智能合约,调用所述智能合约中声明的压缩模版将所述压缩数据还原为完整数据;

接收所述节点设备返回的完整数据。

以上图10描述了基于区块链的数据查询装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

区块链的节点设备接收业务方提交的查询交易;其中,所述查询交易中包含有唯一标识;所述区块链上存证的数据为前述任一基于区块链的数据压缩方法进行数据压缩后的压缩数据;

响应于所述查询交易,查询区块链上存证的压缩数据;

查询发布于所述区块链中所述唯一标识对应的智能合约,调用所述智能合约中声明的压缩模版将所述压缩数据还原为完整数据;

将所述完整数据返回给所述业务方。

在上述电子设备的实施例中,应理解,该处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,而前述的存储器可以是只读存储器(英文:read-only memory,缩写:ROM)、随机存取存储器(英文:random access memory,简称:RAM)、快闪存储器、硬盘或者固态硬盘。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。

应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号