CN107451177B - 针对增加区块的单个勘误的区块链的查询方法及系统 - Google Patents
针对增加区块的单个勘误的区块链的查询方法及系统 Download PDFInfo
- Publication number
- CN107451177B CN107451177B CN201710425469.3A CN201710425469A CN107451177B CN 107451177 B CN107451177 B CN 107451177B CN 201710425469 A CN201710425469 A CN 201710425469A CN 107451177 B CN107451177 B CN 107451177B
- Authority
- CN
- China
- Prior art keywords
- data
- block
- record
- data record
- copy
- 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.)
- Expired - Fee Related
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
Abstract
本发明实施例提供了一种针对增加区块的单个勘误的区块链的查询方法及系统,属于区块链技术领域,方法包括:接收针对当前已形成的延展区块链中区块的区块体数据的数据查询请求,所述数据查询请求中包括:待查询的目标数据的关键信息;根据所述关键信息,在所述数据表中的第三数据记录中进行查询,以得到与所述关键信息匹配的目标数据记录;所述第三数据记录包括:不存在所述副本区块与其关联的所述原始区块对应的第一数据记录,以及所述第二数据记录;将所述目标数据记录中的数据输出。本发明实施例的方案,旨在通过增加区块而完成单个勘误的情况下,提供一种对该区块链的查询方法,以使用户能够准确查询到想要的数据。
Description
技术领域
本发明实施例属于区块链技术领域,尤其涉及一种针对增加区块的单个勘误的区块链的查询方法及系统。
背景技术
随着互联网的不断发展,区块链技术应运而生,它是一种互联网数据库技术,具有去中心化、公开透明的特点。具体地,区块链技术的本质是去中心化且寓于分布式结构的数据存储、传输和证明的方法,用数据区块取代目前互联网对中心服务器的依赖,使得所有数据的变更或者交易项目都被同时记录在多个账本节点之上。由于没有中央控制点的分布式对等网络,并且使用分布式集体运作的方法,可以说,区块链是网络上的“公开大账本”。它存在许多节点,每个节点都可以观察到整个账本,并且共同参与维护,其收益则是获得记账的权利,并且可以复制一份完整的数据库,单个节点无法修改数据库,从而保证了账本数据的安全可靠。
当下,采用区块链技术进行数据的组织和管理已经被广泛的应用到了各种商业领域。
发明人在实现本发明的过程中,发现现有技术存在如下缺陷:
现有的区块链是沿着区块链的延展方向,依次生成新的区块,且区块之间满足一致性验证,这也是为了防止区块中的数据被恶意篡改。但是,在一些情况下,当区块链上的某个区块中的区块体数据确实存在错误,或者出于监管或政策部门的特殊需求,需要被修改更正,但如果强行对该数据进行修改,势必会导致区块链的一致性验证不通过,从而出现修改区块数据与区块链一致性验证之间的矛盾。
发明内容
本发明实施例提供一种针对增加区块的单个勘误的区块链的查询方法及系统,旨在现有区块链的延展过程中,针对已形成的区块链,通过增加区块而完成勘误的情况下,提供一种对该区块链的查询方法,以使用户能够准确查询到想要的数据。
为达到上述目的,本发明实施例提供了一种针对增加区块的单个勘误的区块链的查询方法,所述区块链包括一个延展区块链,或者一个所述延展区块链和至少一个与所述延展区块链链接的副本区块;所述副本区块为对所述延展区块链中原始区块的区块体数据进行勘误后生成的区块;所述副本区块的区块体数据较被勘误的所述原始区块的区块体数据,除待勘误的数据内容被修改外,其他数据对应相同,所述区块链中区块的区块体数据存储于一数据表中,其中,所述数据表中包括多条由关联存储的第一数据在所述区块链中的位置信息和所述第一数据的内容构成的第一数据记录,所述数据表中的所有所述第一数据的内容构成了所述区块链中所有所述原始区块的区块体数据;所述数据表中还包括多条由关联存储的第二数据在所述区块链中的位置信息和所述第二数据的内容构成的第二数据记录,所述数据表中的所有所述第二数据的内容构成了所述区块链中所有所述副本区块的区块体数据;所述原始区块与对该原始区块的区块体数据进行勘误后所形成的所述副本区块之间具有关联关系;所述查询方法包括:接收针对当前已形成的延展区块链中区块的区块体数据的数据查询请求,所述数据查询请求中包括:待查询的目标数据的关键信息;根据所述关键信息,在所述数据表中的第三数据记录中进行查询,以得到与所述关键信息匹配的目标数据记录;所述第三数据记录包括:不存在所述副本区块与其关联的所述原始区块对应的第一数据记录,以及所述第二数据记录;将所述目标数据记录中的数据输出。
本发明实施例提供了一种针对增加区块的单个勘误的区块链的查询系统,所述区块链包括一个延展区块链,或者一个所述延展区块链和至少一个与所述延展区块链链接的副本区块;所述副本区块为对所述延展区块链中原始区块的区块体数据进行勘误后生成的区块;所述副本区块的区块体数据较被勘误的所述原始区块的区块体数据,除待勘误的数据内容被修改外,其他数据对应相同,所述区块链中区块的区块体数据存储于一数据表中,其中,所述数据表中包括多条由关联存储的第一数据在所述区块链中的位置信息和所述第一数据的内容构成的第一数据记录,所述数据表中的所有所述第一数据的内容构成了所述区块链中所有所述原始区块的区块体数据;所述数据表中还包括多条由关联存储的第二数据在所述区块链中的位置信息和所述第二数据的内容构成的第二数据记录,所述数据表中的所有所述第二数据的内容构成了所述区块链中所有所述副本区块的区块体数据;所述原始区块与对该原始区块的区块体数据进行勘误后所形成的所述副本区块之间具有关联关系;所述查询系统包括:请求接收模块,用于接收针对当前已形成的延展区块链中区块的区块体数据的数据查询请求,所述数据查询请求中包括:待查询的目标数据的关键信息;数据查询模块,用于根据所述关键信息,在所述数据表中的第三数据记录中进行查询,以得到与所述关键信息匹配的目标数据记录;所述第三数据记录包括:不存在所述副本区块与其关联的所述原始区块对应的第一数据记录,以及所述第二数据记录;数据输出模块,用于将所述目标数据记录中的数据输出。
本发明实施例的针对增加区块的单个勘误的区块链的查询方法及系统,根据接收的数据查询请求中的关键信息在第三数据记录中进行数据查询得到目标数据记录,所述第三数据记录包括:不存在副本区块与其关联的原始区块对应的第一数据记录,以及第二数据记录;然后将目标数据记录中的数据输出,从而保证输出的目标数据为区块链经勘误更正过的数据。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
图1为本发明实施例提供的区块链的形态图一;
图2为本发明实施例提供的区块链的形态图二;
图3为本发明实施例提供的区块链的形态图三;
图4为本发明实施例提供的针对增加区块的单个勘误的区块链的查询方法流程图;
图5为本发明实施例提供的区块链的形态图四;
图6为本发明实施例提供的区块链的形态图五;
图7为本发明实施例提供的区块链的形态图六;
图8a为本发明实施例提供的区块链的形态图七;
图8b为本发明实施例提供的区块链的形态图八;
图9为本发明实施例提供的针对增加区块的单个勘误的区块链的查询系统示意图一;
图10为本发明实施例提供的针对增加区块的单个勘误的区块链的查询系统示意图二。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
首先需要说明的是,本发明实施例将提供一种针对增加区块的单个勘误的区块链的查询方法,以对通过增加区块对区块链进行勘误更正的情况下,提供针对该区块链的数据的查询方法。所谓增加区块的单个勘误是指针对位于延展区块链中每一个被勘误的区块,其对应的各副本区块中仅包含当次生成副本区块时,相对于原始区块的勘误结果数据,并且这些副本区块以单链条串行的方式或者并行的方式链接在延展区块链上。本方案则是提供了一种针对以增加区块数目的单个勘误的方式而形成的区块链的数据查询方法。具体通过在每次接收针对当前已形成的延展区块链中区块的区块体数据的数据查询请求后,根据数据查询请求中的关键信息,在数据表中的第三数据记录中进行查询,从而得到与关键信息匹配的目标数据记录;其中,该第三数据记录包括:不存在副本区块与其关联的原始区块对应的第一数据记录,以及第二数据记录;然后将目标数据记录中的数据输出,从而提供给查阅者勘误更正后的区块链的数据。这里所述的区块体数据可理解为作为实际交易数据的信息,区块头数据中包含由当前区块的父区块的所有数据经不可逆算法生成的固定长度的字符串即散列值,以及与当前区块相关的控制信息,区块体数据和区块头数据构成一个区块的完整数据。
其次需要说明的是,本发明实施例中的区块链中各区块的区块体数据记载的交易信息不局限于商业中的“账本”或“金融交易”的信息,也可以广义的理解为是需要通过区块链这种数据组织形式管理的多样化的对象数据,如针对企业进行管理的企业管理数据,针对项目进行进展跟踪的项目进程管理数据等。本发明实施例中,对区块链本身的形态及延展方向不做限定,只是针对在区块链正常延展的过程中,对通过增加区块数目的单个勘误的方式,对区块链中区块的区块体数据进行更正勘误的情况,提供一种对该区块链中的区块体数据进行查询的方法。例如,区块链的延展形态可以为如图1所示的传统的单链条的区块链,也可以是如图2所示的整体上呈树形结构的区块链(该区块链中每个区块只有一个父区块,并有一个或多个子区块),还可以是如图3所示的具有有向无环图型结构的区块链(该区块链中存在至少一个区块具有一个或多个父区块)。
以下将对本发明实施例的针对增加区块的单个勘误的区块链的查询方法进行详细阐述。
实施例一
图4为本发明实施例提供的针对增加区块的单个勘误的区块链的查询方法流程图,本方法的执行主体可以为具有数据处理功能的系统,包括终端和/或服务器。本发明实施例中的区块链涉及以下几个概念:延展区块链、原始区块和副本区块。
延展区块链:当为新产生的数据生成新区块时,该新区块在整个区块链中所链接的部分区块链称之为延展区块链,延展区块链中的各区块称为原始区块。本实施例中,一个完整的区块链可包括一个延展区块链,或者一个延展区块链和至少一个与延展区块链链接的副本区块。这些副本区块只是起到对延展区块链中的区块的区块体数据进行勘误更正的目的,不视为为新产生的数据生成的新区块。所述副本区块的区块体数据较被勘误的原始区块的区块体数据,除待勘误的数据内容被修改外,其他数据对应相同。换言之,除了待勘误的数据内容发生改变外,该勘误的数据所在副本区块中的位置与原始区块中被勘误的数据的位置是对应相同的,并且其他未被勘误的数据内容及数据在区块中的位置也是对应相同的。
上述区块链中区块的区块体数据存储于一数据表中,该数据表中包括多条数据记录,每条数据记录对应存储区块链中不同位置处的区块体数据。
其中,数据表中包括多条由关联存储的第一数据在区块链中的位置信息和第一数据的内容构成的第一数据记录,该数据表中的所有第一数据的内容构成了区块链中所有原始区块的区块体数据;
数据表中还包括多条由关联存储的第二数据在区块链中的位置信息和第二数据的内容构成的第二数据记录,该数据表中的所有第二数据的内容构成了区块链中所有副本区块的区块体数据。
数据表中的第一数据记录和第二数据记录中数据组织形式是相同的,区别仅在于:第一数据记录用于存储区块链中原始区块的区块体数据,第二数据记录用于存储区块链中副本区块的区块体数据。原始区块与对该原始区块的区块体数据进行勘误后所形成的副本区块之间具有关联关系,该关联关系可在第一数据记录和/或第二数据记录中通过增加标识信息来体现,例如,在第二数据记录中添加被勘误的第一数据在延展区块链中的位置信息。
为了方便描述区块链中各区块的区块体数据在数据表中的存储状态,首先对区块链中区块(这里原始区块和副本区块不做区分)的区块体数据进行如下简单说明。本实施例将区块链中各区块的区块体数据划分为了多个数据条目,每个数据条目内独立的包含一条交易信息,并且对应一个数据ID,例如图5所示,其示出了区块链中区块的区块体数据的存在形式,即每个区块的区块体数据中可以包括多条数据条目。图5中,由Block1、Block2和block3……构成的区块链中,位于区块Block2中的tx01:olddata,作为一个数据条目,其数据ID为tx01,交易信息为olddata(olddata泛指区块链中还没有被勘误的原始交易信息)。实际上,上述第一数据、第二数据可以是区块体数据中的一条或者多条数据条目对应的交易信息。为了便于后续方法内容的说明,这里的一条第一数据或一条第二数据对应于区块链中的一条数据条目。
当区块链管理者需要对区块链中区块的区块体数据进行勘误时,可向系统输入待勘误的第一数据在区块链中的位置信息,该位置信息具体可以是第一数据所在的区块的编号(区块链中各区块的编号唯一确定,如图5中的“Block1”、“Block2”、“Block3”、均可作为区块的编号),以及该第一数据在区块的区块体数据中的数据ID(如图5中的“tx01”)。通过锁定第一数据在区块链中所在的区块编号,以及在该区块的区块体数据中的数据ID就可以唯一确定一个数据条目及其包含的交易信息。因此,这里需要说明的是,针对某个数据条目中的交易信息进行勘误是在决定进行数据勘误时就已经确定的,而在具体执行数据勘误时,只需要锁定被勘误数据即第一数据在区块链中的位置信息即可,而不必再向系统明确输入第一数据的具体内容。
所述的第二数据,是指第一数据被勘误后的数据,即用于替换第一数据所对应的那部分数据。在向系统输入的数据勘误请求中包括两部分内容,即:待勘误的第一数据在延展区块链中的位置信息,以及对第一数据进行勘误后的第二数据。
在实际应用场景中,区块链管理者可能会向系统一次性输入多条交易信息在区块链中的位置信息,以及对这些交易信息进行勘误后的结果信息,系统会根据这些交易信息在区块链中的位置信息,分析其所对应的信息条目,从而以信息条目为单位,将其视为多个数据勘误请求进行处理,即每个数据勘误请求中只包含针对一个数据条目的数据勘误请求。
本实施例中,在对区块链中的区块体数据进行勘误的方式是通过增加副本区块实现对原始区块的区块体数据进行勘误更正。如图6、图7分别示出了增加区块的单个勘误方法对应的两种区块链的形态图。
基于上述对区块链中区块的区块体数据的存在状态,能够清楚说明数据表中第一数据记录和第二数据记录的意义。
表1为对应于图6、图7的数据表的具体内容。
表1 数据表
数据ID | 第一数据 | 第二数据 | 区块编号 | …… |
tx01 | olddata1 | (空) | Block2ver:1.0 | …… |
tx02 | olddata2 | (空) | Block2ver:1.0 | …… |
tx01 | (空) | newdata1 | Block2ver:2.0 | …… |
tx02 | olddata2 | (空) | Block2ver:2.0 | |
tx01 | (空) | newdata1 | Block2ver:3.0 | …… |
tx02 | (空) | newdata2 | Block2ver:3.0 | …… |
…… | …… | …… | …… | …… |
表1中,包含第一数据的记录记为第一数据记录,包含第二数据的记录记为第二数据记录。图6、图7中,延展区块链中的区块“Block2”中的数据ID分别为“tx01”、和“tx02”的数据分别在副本区块“Block2(ver2.0)”以及副本区块“Block2(ver3.0)”中被勘误。本实施例中,在区块链对应的区块数据表中,可默认为延展区块链中的各原始区块的版本号为ver1.0,则可将原区块编号+版本号作为最终的区块编号,例如,原始区块的区块编号:“Block2(ver1.0)”,副本区块的区块编号:“Block2(ver2.0)”、“Block2(ver3.0)”。
本实施例的数据表中,第一数据记录包含了当前已形成的区块链中原始区块的区块体数据中第一数据在区块链中的位置信息以及第一数据的具体内容,第二数据记录中包含了区块链中副本区块的区块体数据中第二数据在区块链中的位置信息以及第二数据的内容信息,同时被勘误的第一数据和对该第一数据进行勘误后的第二数据在区块体中的位置(数据ID是对应相同的)。本方案中针对增加区块的单个勘误的区块链的查询方法,其核心思想是在原始区块对应的第一数据记录与副本区块对应的第二数据记录中进行数据查询和数据处理的过程。
如图4所示,该针对增加区块的单个勘误的区块链的查询方法包括如下步骤:
S410,接收针对当前已形成的延展区块链中区块的区块体数据的数据查询请求,该数据查询请求中包括:待查询的目标数据的关键信息;
其中,所述的当前已形成的延展区块链是指截至当前时刻,所形成的延展区块链在整体上所呈现的区块链形态;所述待查询的目标数据的关键信息可以是区块体数据中具体的交易信息的部分内容,也可以是该交易信息对应的第一数据在区块链中的位置信息,如第一数据所在的区块的编号,以及该第一数据在区块的区块体数据中的数据ID等。
具体地,系统接收到查阅者输入的数据查询请求后,提取出该请求中用于查询目标数据的关键信息。
S420,根据关键信息,在数据表中的第三数据记录中进行查询,以得到与关键信息匹配的目标数据记录;该第三数据记录包括:不存在副本区块与其关联的原始区块对应的第一数据记录,以及第二数据记录;
根据关键信息在数据表中进行数据匹配以得到目标数据记录的方法可采用语义相似度、正则表达式等方法。本实施例对具体实现信息匹配所采用的技术和原理不做限定。但对用于数据匹配的对象数据的范围是具有如下要求的,即:
不存在副本区块与其关联的原始区块对应的第一数据记录,以及第二数据记录。
具体地,当区块链中的原始区块不具有关联的副本区块时,则将这样的原始区块在数据表中对应的第一数据记录作为用于数据匹配的对象数据,当区块链中的原始区块具有关联的副本区块时,则将这样的原始区块所关联的副本区块在数据表中对应的第二数据记录作为用于数据匹配的对象数据。选取出的对象数据中的第一数据记录和第二数据记录又被称为第三数据记录。
S430,将目标数据记录中的数据输出。
将从各第三数据记录中得到的与关键信息相匹配的数据记录作为目标数据记录进行输出,以使得呈现给查阅者的是经过勘误更正后的区块体数据。
需要注意的是,在实际应用场景中,针对延展区块链中某一原始区块的区块体数据可能存在多次被勘误的情况。在这种情况下,该原始区块对应的副本区块可能会存在多个,例如图6和图7中所示的原始区块“Block2(ver1.0)”存在两个与其关联的副本区块“Block2(ver2.0)”、“Block2(ver3.0)”,并分别通过并行链接(图6所示)和串行链接(图7所示)的方式与其对应的原始区块链接。
另外,在具体应用场景中,还可能存在针对一原始区块的同一第一数据进行多次勘误的情况,每次勘误均会对应生成一个更高版本的副本区块,如图8a和8b所示,其为针对原始区块Block2(ver1.0)中数据ID为tx01的第一数据进行多次勘误后所形成的区块链,其中,Block2(ver2.0)为对该第一数据进行第一次勘误后所形成的副本区块,Block2(ver3.0)为对该第一数据进行第二次勘误后所形成的副本区块。
如果针对同一原始区块存在多个副本区块,则可从多个副本区块所对应的第二数据记录中进一步提取如下的第二数据记录作为第三数据记录:
1,如果位于各副本区块中同一位置处的各第二数据内容相同,则从包含这些第二数据的各第二数据记录中,提取一个第二数据记录作为第三数据记录;
前面已经说明,在区块链中,每个原始区块和与其对应的各副本区块之间,区块体数据中除了勘误的数据内容发生改变外,该勘误的数据所在副本区块中的位置与原始区块中被勘误的数据的位置是对应相同的,并且其他未被勘误的数据内容及数据在区块中的位置也是对应相同的,并且每次勘误后的数据仅仅存在于当次生成的副本区块的区块体数据中。例如,位于原始区块的区块体中数据ID为tx01的第一数据记录与相应的副本区块的区块体中数据ID为tx01的第二数据记录,如果该第一数据在该副本区块中被勘误,则第二数据即为第一数据勘误后的数据;如果该第一数据在该副本区块中未被勘误,则第二数据与第一数据的内容相同。
当位于各副本区块中同一位置处的各第二数据内容相同,则表明这些第二数据相对于原始区块中同位置处的第一数据并未修改,因此可从包含这些第二数据的各第二数据记录中,任意提取出一个第二数据记录作为第三数据记录。
2,如果位于各副本区块中同一位置处的各第二数据内容不相同,则从包含这些第二数据的各第二数据记录中,提取第二数据与原始区块中同一位置处的第一数据不同的,且第二数据位于最晚生成的副本区块中的第二数据记录作为第三数据记录。
当位于各副本区块中同一位置处的各第二数据内容相同,则表明这些第二数据中存在至少一个第二数据相对于原始区块中同位置处的第一数据进行了修改(对应于原始区块的区块体数据中同一个第一数据在多个副本区块的区块体数据中进行了多次修改的情况),因此可从包含这些第二数据的各第二数据记录中,提取第二数据与原始区块中同一位置处的第一数据不同的,且第二数据位于最晚生成的副本区块中的第二数据记录作为第三数据记录,从而保证选取作为第三数据记录的第二数据记录中的第二数据是被勘误的最新数据。
为了体现数据表中的各第二数据记录所对应的副本区块生成的顺序,在各第二数据记录中还可包括:用于标记该第二数据记录中的第二数据所在的副本区块的版本号;这里的版本号的大小随着副本区块的生产时间顺序增加。
相应的,如果针对同一原始区块存在多个副本区块,则可从多个副本区块所对应的第二数据记录中提取如下的第二数据记录作为第三数据记录:
1,如果位于各副本区块中同一位置处的各第二数据内容不相同,则从包含这些第二数据的各第二数据记录中,提取一个第二数据记录作为所述第三数据记录;
当位于各副本区块中同一位置处的各第二数据内容相同,则表明这些第二数据相对于原始区块中同位置处的第一数据并未修改,因此可从包含这些第二数据的各第二数据记录中,任意提取出一个第二数据记录作为第三数据记录。
2,如果位于各副本区块中同一位置处的各第二数据内容不相同,则从包含这些第二数据的各所述第二数据记录中,提取第二数据与原始区块中同一位置处的第一数据不同的,且包含的版本号最高的第二数据记录作为所述第三数据记录。
当位于各副本区块中同一位置处的各第二数据内容相同,则表明这些第二数据中存在至少一个第二数据相对于原始区块中同位置处的第一数据进行了修改(对应于原始区块的区块体数据中同一个第一数据在多个副本区块的区块体数据中进行了多次修改的情况),因此可从包含这些第二数据的各第二数据记录中,提取第二数据与原始区块中同一位置处的第一数据不同的,且包含的版本号最高的第二数据记录作为第三数据记录,从而保证选取作为第三数据记录的第二数据记录中的第二数据是被勘误的最新版本的数据。
另外需要注意的是,本方案所要达到的根本目的是要提供给查阅者最新的勘误后的区块体数据,这些区块体数据可能是出自原始区块对应的第一数据记录,也可能是副本区块对应的第二数据记录,而查阅者对于这些数据是否是勘误后的数据是不能感知的。例如,当输出的目标数据记录为位于副本区块block2(ver:2.0),数据ID为tx01的数据时,查阅者也无法获知,该数据是被勘误的数据还是未被勘误的数据。
为了使用户从查询得到的目标数据记录中获悉该数据是否被勘误,本方案在上述方案步骤的基础上,增加了如下步骤:
如果用于选取作为第三数据记录的第二数据记录中,存在第二数据与数据表中的第一数据为内容相同的数据,则将包含该第一数据的第一数据记录替换掉该第二数据记录作为选定的第三数据记录。
具体地,如果选取作为第三数据记录的第二数据记录与原始区块对应的第一数据记录相同,则表明该第二数据并不是针对原始区块中的区块体数据进行勘误后的数据,此时可将包含与第二数据内容相同的第一数据的第一数据记录替换掉该第二数据记录作为选定的第三数据记录。
基于该处理操作,用于作为第三数据记录的第二数据记录中的第二数据仅存在一种情况,就是被勘误第一数据所对应的第二数据,而针对第三数据记录中未被勘误的数据,全部位于原始区块所对应的第一数据记录中。因此,在输出的目标数据记录中,通过查看该数据记录包含的第一数据或第二数据在区块链中的位置信息(有版本号的可以查看版本号信息)就可以知道该数据是否被勘误。例如,当输出的数据记录中位置信息对应于原始区块的位置和/或版本号为最低版本号,则说明该目标数据未被勘误过;当输出的数据记录中位置信息对应于副本区块的位置和/或版本号为非最低版本号,则说明该目标数据被勘误过,并且是在该数据记录所对应的副本区块中进行勘误的。
本实施例中,第二数据记录中还可包括:本次数据记录的生成时间信息;并且再次重申,第一数据在区块链中的位置信息可包括:第一数据所在的区块的编号,以及该第一数据在区块的区块体数据中的数据ID;第二数据在区块链中的位置信息可包括:第二数据所在的区块的编号,以及该第二数据在所述区块的区块体数据中的数据ID。
本发明实施例的针对增加区块的单个勘误的区块链的查询方法,根据接收的数据查询请求中的关键信息在第三数据记录中进行数据查询得到目标数据记录,所述第三数据记录包括:不存在副本区块与其关联的原始区块对应的第一数据记录,以及第二数据记录;然后将目标数据记录中的数据输出,从而保证输出的目标数据为区块链经勘误更正过的数据。
进一步地,在选取第三数据记录时,针对同一原始区块具有多个副本区块的情况进行了方案细化。使得在执行查询的过程中,一方面减少了查询相同数据内容而操作的操作步骤冗余,提高了匹配数据的效率,另一方面,通过输出的目标数据记录来体现被查询的数据是否被勘误,并且在哪个副本区块中被勘误的具体信息,使得查阅者能够更加清楚的获悉所查询的结果数据的相关信息。
实施例二
图9为本发明实施例提供的针对增加区块的单个勘误的区块链的查询系统示意图,可用于执行实施例一中所示的方法步骤,所述区块链包括一个延展区块链,或者一个延展区块链和至少一个与延展区块链链接的副本区块;所述副本区块为对延展区块链中原始区块的区块体数据进行勘误后生成的区块;副本区块的区块体数据较被勘误的原始区块的区块体数据,除待勘误的数据内容被修改外,其他数据对应相同,
区块链中区块的区块体数据存储于一数据表中,其中,数据表中包括多条由关联存储的第一数据在区块链中的位置信息和第一数据的内容构成的第一数据记录,数据表中的所有第一数据的内容构成了区块链中所有原始区块的区块体数据;
数据表中还包括多条由关联存储的第二数据在所述区块链中的位置信息和第二数据的内容构成的第二数据记录,数据表中的所有第二数据的内容构成了区块链中所有副本区块的区块体数据;
所述原始区块与对该原始区块的区块体数据进行勘误后所形成的副本区块之间具有关联关系。如图9所示,该针对增加区块的单个勘误的区块链的查询系统包括:请求接收模块910、数据查询模块920和数据输出模块930,其中:
请求接收模块910,用于接收针对当前已形成的延展区块链中区块的区块体数据的数据查询请求,该数据查询请求中包括:待查询的目标数据的关键信息;数据查询模块920,用于根据述关键信息,在数据表中的第三数据记录中进行查询,以得到与关键信息匹配的目标数据记录;该第三数据记录包括:不存在副本区块与其关联的原始区块对应的第一数据记录,以及第二数据记录;数据输出模块930,用于将目标数据记录中的数据输出。
进一步地,如图10所示,上述系统还可包括:
第一记录提取模块940,用于如果针对同一原始区块存在多个副本区块,则从多个副本区块所对应的第二数据记录中提取如下的第二数据记录作为第三数据记录:
如果位于各副本区块中同一位置处的各第二数据内容相同,则从包含这些第二数据的各第二数据记录中,提取一个第二数据记录作为第三数据记录;
如果位于各副本区块中同一位置处的各第二数据内容不相同,则从包含这些第二数据的各第二数据记录中,提取第二数据与原始区块中同一位置处的第一数据不同的,且第二数据位于最晚生成的副本区块中的第二数据记录作为第三数据记录。
进一步地,上述数据表中的各第二数据记录中还可包括:用于标记该第二数据记录中的第二数据所在的副本区块的版本号;
相应的,如图10所示,上述系统还可包括:
第二记录提取模块950,用于如果针对同一原始区块存在多个副本区块,则从多个副本区块所对应的第二数据记录中提取如下的第二数据记录作为第三数据记录:
如果位于各副本区块中同一位置处的各第二数据内容不相同,则从包含这些第二数据的各第二数据记录中,提取一个第二数据记录作为第三数据记录;
如果位于各副本区块中同一位置处的各所述第二数据内容不相同,则从包含这些第二数据的各第二数据记录中,提取第二数据与原始区块中同一位置处的第一数据不同的,且包含的版本号最高的第二数据记录作为第三数据记录。
进一步地,如图10所示,上述系统还可包括:
第三记录提取模块960,用于如果用于选取作为第三数据记录的第二数据记录中,存在第二数据与数据表中的第一数据为内容相同的数据,则将包含该第一数据的第一数据记录替换掉该第二数据记录作为选定的第三数据记录。
进一步地,上述第二数据记录中还包括:本次数据记录的生成时间信息,第一数据在区块链中的位置信息包括:第一数据所在的区块的编号,以及该第一数据在区块的区块体数据中的数据ID;第二数据在区块链中的位置信息包括:第二数据所在的区块的编号,以及该第二数据在区块的区块体数据中的数据ID。
图10所示系统可用于执行如图4所示的方法步骤。
本发明实施例的针对增加区块的单个勘误的区块链的查询系统,根据接收的数据查询请求中的关键信息在第三数据记录中进行数据查询得到目标数据记录,所述第三数据记录包括:不存在副本区块与其关联的原始区块对应的第一数据记录,以及第二数据记录;然后将目标数据记录中的数据输出,从而保证输出的目标数据为区块链经勘误更正过的数据。
进一步地,在选取第三数据记录时,针对同一原始区块具有多个副本区块的情况进行了方案细化。使得在执行查询的过程中,一方面减少了查询相同数据内容而操作的操作步骤冗余,提高了匹配数据的效率,另一方面,通过输出的目标数据记录来体现被查询的数据是否被勘误,并且在哪个副本区块中被勘误的具体信息,使得查阅者能够更加清楚的获悉所查询的结果数据的相关信息。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种针对增加区块的单个勘误的区块链的查询方法,其特征在于,所述区块链包括一个延展区块链,或者一个所述延展区块链和至少一个与所述延展区块链链接的副本区块;所述副本区块为对所述延展区块链中原始区块的区块体数据进行勘误后生成的区块;所述副本区块的区块体数据较被勘误的所述原始区块的区块体数据,除待勘误的数据内容被修改外,其他数据对应相同,
所述区块链中区块的区块体数据存储于一数据表中,其中,所述数据表中包括多条由关联存储的第一数据在所述区块链中的位置信息和所述第一数据的内容构成的第一数据记录,所述数据表中的所有所述第一数据的内容构成了所述区块链中所有所述原始区块的区块体数据;
所述数据表中还包括多条由关联存储的第二数据在所述区块链中的位置信息和所述第二数据的内容构成的第二数据记录,所述数据表中的所有所述第二数据的内容构成了所述区块链中所有所述副本区块的区块体数据;
所述原始区块与对该原始区块的区块体数据进行勘误后所形成的所述副本区块之间具有关联关系;
所述查询方法包括:
接收针对当前已形成的延展区块链中区块的区块体数据的数据查询请求,所述数据查询请求中包括:待查询的目标数据的关键信息;
根据所述关键信息,在所述数据表中的第三数据记录中进行查询,以得到与所述关键信息匹配的目标数据记录;所述第三数据记录包括:不存在所述副本区块与其关联的所述原始区块对应的第一数据记录,以及所述第二数据记录;
将所述目标数据记录中的数据输出。
2.根据权利要求1所述的查询方法,其特征在于,所述方法还包括:
如果针对同一原始区块存在多个所述副本区块,则从所述多个副本区块所对应的所述第二数据记录中提取如下的第二数据记录作为第三数据记录:
如果位于各所述副本区块中同一位置处的各所述第二数据内容相同,则从包含这些第二数据的各所述第二数据记录中,提取一个所述第二数据记录作为所述第三数据记录;
如果位于各所述副本区块中同一位置处的各所述第二数据内容不相同,则从包含这些第二数据的各所述第二数据记录中,提取第二数据与所述原始区块中同一位置处的所述第一数据不同的,且第二数据位于最晚生成的所述副本区块中的所述第二数据记录作为所述第三数据记录。
3.根据权利要求1所述的查询方法,其特征在于,所述数据表中的各所述第二数据记录中还包括:用于标记该第二数据记录中的所述第二数据所在的所述副本区块的版本号;
所述方法还包括:
如果针对同一原始区块存在多个所述副本区块,则从所述多个副本区块所对应的所述第二数据记录中提取如下的第二数据记录作为第三数据记录:
如果位于各所述副本区块中同一位置处的各所述第二数据内容相同,则从包含这些第二数据的各所述第二数据记录中,提取一个所述第二数据记录作为所述第三数据记录;
如果位于各所述副本区块中同一位置处的各所述第二数据内容不相同,则从包含这些第二数据的各所述第二数据记录中,提取第二数据与所述原始区块中同一位置处的所述第一数据不同的,且包含的所述版本号最高的所述第二数据记录作为所述第三数据记录。
4.根据权利要求1所述的查询方法,其特征在于,所述方法还包括:
如果用于选取作为所述第三数据记录的所述第二数据记录中,存在第二数据与所述数据表中的所述第一数据为内容相同的数据,则将包含该第一数据的第一数据记录替换掉该第二数据记录作为选定的所述第三数据记录。
5.根据权利要求1-4中任一项所述的查询方法,其特征在于,所述第二数据记录中还包括:本次数据记录的生成时间信息,所述第一数据在所述区块链中的位置信息包括:所述第一数据所在的区块的编号,以及该第一数据在所述区块的区块体数据中的数据ID;所述第二数据在所述区块链中的位置信息包括:所述第二数据所在的区块的编号,以及该第二数据在所述区块的区块体数据中的数据ID。
6.一种针对增加区块的单个勘误的区块链的查询系统,其特征在于,所述区块链包括一个延展区块链,或者一个所述延展区块链和至少一个与所述延展区块链链接的副本区块;所述副本区块为对所述延展区块链中原始区块的区块体数据进行勘误后生成的区块;所述副本区块的区块体数据较被勘误的所述原始区块的区块体数据,除待勘误的数据内容被修改外,其他数据对应相同,
所述区块链中区块的区块体数据存储于一数据表中,其中,所述数据表中包括多条由关联存储的第一数据在所述区块链中的位置信息和所述第一数据的内容构成的第一数据记录,所述数据表中的所有所述第一数据的内容构成了所述区块链中所有所述原始区块的区块体数据;
所述数据表中还包括多条由关联存储的第二数据在所述区块链中的位置信息和所述第二数据的内容构成的第二数据记录,所述数据表中的所有所述第二数据的内容构成了所述区块链中所有所述副本区块的区块体数据;
所述原始区块与对该原始区块的区块体数据进行勘误后所形成的所述副本区块之间具有关联关系;
所述查询系统包括:
请求接收模块,用于接收针对当前已形成的延展区块链中区块的区块体数据的数据查询请求,所述数据查询请求中包括:待查询的目标数据的关键信息;
数据查询模块,用于根据所述关键信息,在所述数据表中的第三数据记录中进行查询,以得到与所述关键信息匹配的目标数据记录;所述第三数据记录包括:不存在所述副本区块与其关联的所述原始区块对应的第一数据记录,以及所述第二数据记录;
数据输出模块,用于将所述目标数据记录中的数据输出。
7.根据权利要求6所述的查询系统,其特征在于,所述系统还包括:
第一记录提取模块,用于如果针对同一原始区块存在多个所述副本区块,则从所述多个副本区块所对应的所述第二数据记录中提取如下的第二数据记录作为第三数据记录:
如果位于各所述副本区块中同一位置处的各所述第二数据内容相同,则从包含这些第二数据的各所述第二数据记录中,提取一个所述第二数据记录作为所述第三数据记录;
如果位于各所述副本区块中同一位置处的各所述第二数据内容不相同,则从包含这些第二数据的各所述第二数据记录中,提取第二数据与所述原始区块中同一位置处的所述第一数据不同的,且第二数据位于最晚生成的所述副本区块中的所述第二数据记录作为所述第三数据记录。
8.根据权利要求6所述的查询系统,其特征在于,所述数据表中的各所述第二数据记录中还包括:用于标记该第二数据记录中的所述第二数据所在的所述副本区块的版本号;
所述系统还包括:
第二记录提取模块,用于如果针对同一原始区块存在多个所述副本区块,则从所述多个副本区块所对应的所述第二数据记录中提取如下的第二数据记录作为第三数据记录:
如果位于各所述副本区块中同一位置处的各所述第二数据内容相同,则从包含这些第二数据的各所述第二数据记录中,提取一个所述第二数据记录作为所述第三数据记录;
如果位于各所述副本区块中同一位置处的各所述第二数据内容不相同,则从包含这些第二数据的各所述第二数据记录中,提取第二数据与所述原始区块中同一位置处的所述第一数据不同的,且包含的所述版本号最高的所述第二数据记录作为所述第三数据记录。
9.根据权利要求6所述的查询系统,其特征在于,所述系统还包括:
第三记录提取模块,用于如果用于选取作为所述第三数据记录的所述第二数据记录中,存在第二数据与所述数据表中的所述第一数据为内容相同的数据,则将包含该第一数据的第一数据记录替换掉该第二数据记录作为选定的所述第三数据记录。
10.根据权利要求6-9中任一项所述的查询系统,其特征在于,所述第二数据记录中还包括:本次数据记录的生成时间信息,所述第一数据在所述区块链中的位置信息包括:所述第一数据所在的区块的编号,以及该第一数据在所述区块的区块体数据中的数据ID;所述第二数据在所述区块链中的位置信息包括:所述第二数据所在的区块的编号,以及该第二数据在所述区块的区块体数据中的数据ID。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2017101811515 | 2017-03-24 | ||
CN201710181151 | 2017-03-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107451177A CN107451177A (zh) | 2017-12-08 |
CN107451177B true CN107451177B (zh) | 2020-08-21 |
Family
ID=60486327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710425469.3A Expired - Fee Related CN107451177B (zh) | 2017-03-24 | 2017-06-08 | 针对增加区块的单个勘误的区块链的查询方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107451177B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108494706A (zh) * | 2018-02-09 | 2018-09-04 | 北京欧链科技有限公司 | 区块链中的数据处理方法和装置 |
CN109032804B (zh) * | 2018-08-01 | 2020-12-11 | 创新先进技术有限公司 | 数据处理方法和装置、服务器 |
CN110287226A (zh) * | 2019-05-10 | 2019-09-27 | 深圳壹账通智能科技有限公司 | 基于区块链的数据查询方法及装置 |
CN111597190A (zh) * | 2020-05-15 | 2020-08-28 | 中国人民大学 | 一种区块链数据存储和检索方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020026A (zh) * | 2012-11-15 | 2013-04-03 | 无锡永中软件有限公司 | 协同文档处理系统及方法 |
CN106446026A (zh) * | 2016-08-30 | 2017-02-22 | 广联达科技股份有限公司 | 文件管理方法及文件管理系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130086133A1 (en) * | 2011-09-29 | 2013-04-04 | General Electric Company | Method and apparatus for file revision tracking |
-
2017
- 2017-06-08 CN CN201710425469.3A patent/CN107451177B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020026A (zh) * | 2012-11-15 | 2013-04-03 | 无锡永中软件有限公司 | 协同文档处理系统及方法 |
CN106446026A (zh) * | 2016-08-30 | 2017-02-22 | 广联达科技股份有限公司 | 文件管理方法及文件管理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107451177A (zh) | 2017-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391291B (zh) | 修改区块链即有区块体数据的区块链勘误方法及系统 | |
US11182366B2 (en) | Comparing data stores using hash sums on disparate parallel systems | |
CN107391557B (zh) | 针对设置链外勘误表的区块链串行查询方法及系统 | |
CN107451177B (zh) | 针对增加区块的单个勘误的区块链的查询方法及系统 | |
US20230267153A1 (en) | Integrated index blocks and searching in blockchain systems | |
CN107463597B (zh) | 针对修改区块体数据的区块链的被动验证方法及系统 | |
CN107423163B (zh) | 整体串行增加区块的区块链的勘误方法及系统 | |
CN107463596B (zh) | 针对设置链外勘误表的区块链并行查询方法及系统 | |
CN107391292B (zh) | 针对保持区块体数据实现勘误的区块链验证方法及系统 | |
CN110110005B (zh) | 基于区块链的关键信息基础数据资产的管控方法 | |
CN107016047A (zh) | 文档查询、文档存储方法及装置 | |
CN103455589B (zh) | 产品工厂模式下的产品数据迁移方法、装置及系统 | |
US20210334292A1 (en) | System and method for reconciliation of data in multiple systems using permutation matching | |
CN107451007B (zh) | 针对增加区块进行勘误的区块链的验证方法及系统 | |
CN107451011B (zh) | 并行增加区块的区块链的勘误方法及系统 | |
CN114461673A (zh) | 一种基于链上-链下协同的区块链查询优化方法 | |
CN112115098A (zh) | 一种基于HyperLedger和IPFS的溯源系统 | |
CN107451002B (zh) | 针对修改区块体数据的区块链的主动验证方法及系统 | |
US20070112802A1 (en) | Database techniques for storing biochemical data items | |
CN107426293B (zh) | 单个串行增加区块的区块链的勘误方法及系统 | |
CN107451179B (zh) | 针对增加区块的整体勘误的区块链的查询方法及系统 | |
US20230362015A1 (en) | Notification control method, verification method, and information processing apparatus | |
CN105843809A (zh) | 数据处理方法和装置 | |
CN117236304A (zh) | 一种基于模板配置的Excel通用导入的实现方法 | |
CN107451178B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200821 |