CN107463596A - 针对设置链外勘误表的区块链并行查询方法及系统 - Google Patents

针对设置链外勘误表的区块链并行查询方法及系统 Download PDF

Info

Publication number
CN107463596A
CN107463596A CN201710425448.1A CN201710425448A CN107463596A CN 107463596 A CN107463596 A CN 107463596A CN 201710425448 A CN201710425448 A CN 201710425448A CN 107463596 A CN107463596 A CN 107463596A
Authority
CN
China
Prior art keywords
data
record
target
block
corrigenda
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.)
Granted
Application number
CN201710425448.1A
Other languages
English (en)
Other versions
CN107463596B (zh
Inventor
谭智勇
王子龙
许进
张勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Brilliant Hi Tech Development Co Ltd
Original Assignee
Beijing Brilliant Hi Tech Development Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Brilliant Hi Tech Development Co Ltd filed Critical Beijing Brilliant Hi Tech Development Co Ltd
Publication of CN107463596A publication Critical patent/CN107463596A/zh
Application granted granted Critical
Publication of CN107463596B publication Critical patent/CN107463596B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种针对设置链外勘误表的区块链并行查询方法及系统,属于区块链技术领域,方法包括:接收针对当前已形成的区块链中区块的区块体数据的数据查询请求;根据数据查询请求中的关键信息,在链外勘误表中进行查询,以得到目标勘误记录;在原始数据表中进行查询,以得到目标原始记录;若目标勘误记录和目标原始记录中包含针对同一区块链中的位置信息的记录,则删除包含该位置信息的目标原始记录,并将目标勘误记录和经删除操作后剩余的目标原始记录作为目标数据输出。本发明实施例的方案,旨在针对通过设置链外勘误表,完成区块链数据勘误的情况下,提供一种对该区块链的查询方法,以使用户能够准确查询到想要的数据。

Description

针对设置链外勘误表的区块链并行查询方法及系统
技术领域
本发明实施例属于区块链技术领域,尤其涉及一种针对设置链外勘误表的区块链并行查询方法及系统。
背景技术
随着互联网的不断发展,区块链技术应运而生,它是一种互联网数据库技术,具有去中心化、公开透明的特点。具体地,区块链技术的本质是去中心化且寓于分布式结构的数据存储、传输和证明的方法,用数据区块取代目前互联网对中心服务器的依赖,使得所有数据的变更或者交易项目都被同时记录在多个账本节点之上。由于没有中央控制点的分布式对等网络,并且使用分布式集体运作的方法,可以说,区块链是网络上的“公开大账本”。它存在许多节点,每个节点都可以观察到整个账本,并且共同参与维护,其收益则是获得记账的权利,并且可以复制一份完整的数据库,单个节点无法修改数据库,从而保证了账本数据的安全可靠。
当下,采用区块链技术进行数据的组织和管理已经被广泛的应用到了各种商业领域。
发明人在实现本发明的过程中,发现现有技术存在如下缺陷:
现有的区块链是沿着区块链的延展方向,依次生成新的区块,且区块之间满足一致性验证,这也是为了防止区块中的数据被恶意篡改。但是,在一些情况下,当区块链上的某个区块中的区块体数据确实存在错误,或者出于监管或政策部门的特殊需求,需要被修改更正,但如果强行对该数据进行修改,势必会导致区块链的一致性验证不通过,从而出现修改区块数据与区块链一致性验证之间的矛盾。
发明内容
本发明实施例提供一种针对设置链外勘误表的区块链并行查询方法及系统,旨在现有区块链的延展过程中,针对已形成的区块链,通过设置链外勘误表,且不修改区块链中既有区块体数据而完成勘误的情况下,提供一种对该区块链的查询方法,以使用户能够准确查询到想要的数据。
为达到上述目的,本发明实施例提供了一种针对设置链外勘误表的区块链并行查询方法,所述区块链中区块的区块体数据存储于一原始数据表中,所述原始数据表中包括多条由关联存储的第一数据在所述区块链中的位置信息和所述第一数据的内容构成的原始记录,所述原始数据表中的所有所述第一数据的内容构成了所述区块链中所有区块的区块体数据;与所述原始数据表关联存储有一链外勘误表,所述链外勘误表中包括多条由关联存储的所述第一数据在所述区块链中的位置信息和第二数据构成的勘误记录,其中,所述链外勘误表中涉及的所述第一数据对应于所述原始数据表中被勘误的第一数据,所述第二数据为将该第一数据勘误后的数据;所述查询方法包括:接收针对当前已形成的区块链中区块的区块体数据的数据查询请求,所述数据查询请求中包括:待查询的目标数据的关键信息;根据所述关键信息,在所述链外勘误表中进行查询,以得到与所述关键信息匹配的目标勘误记录;根据所述关键信息,在所述原始数据表中进行查询,以得到与所述关键信息匹配的目标原始记录;若所述目标勘误记录和所述目标原始记录中包含针对同一所述区块链中的位置信息的记录,则删除包含该位置信息的所述目标原始记录,并将所述目标勘误记录和经删除操作后剩余的所述目标原始记录作为所述目标数据输出。
本发明实施例提供了一种针对设置链外勘误表的区块链并行查询系统,所述区块链中区块的区块体数据存储于一原始数据表中,所述原始数据表中包括多条由关联存储的第一数据在所述区块链中的位置信息和所述第一数据的内容构成的原始记录,所述原始数据表中的所有所述第一数据的内容构成了所述区块链中所有区块的区块体数据;与所述原始数据表关联存储有一链外勘误表,所述链外勘误表中包括多条由关联存储的所述第一数据在所述区块链中的位置信息和第二数据构成的勘误记录,其中,所述链外勘误表中涉及的所述第一数据对应于所述原始数据表中被勘误的第一数据,所述第二数据为将该第一数据勘误后的数据;所述查询系统包括:请求接收模块,用于接收针对当前已形成的区块链中区块的区块体数据的数据查询请求,所述数据查询请求中包括:待查询的目标数据的关键信息;勘误查询模块,用于根据所述关键信息,在所述链外勘误表中进行查询,以得到与所述关键信息匹配的目标勘误记录;原始查询模块,用于根据所述关键信息,在所述原始数据表中进行查询,以得到与所述关键信息匹配的目标原始记录;数据输出模块,用于若所述目标勘误记录和所述目标原始记录中包含针对同一所述区块链中的位置信息的记录,则删除包含该位置信息的所述目标原始记录,并将所述目标勘误记录和经删除操作后剩余的所述目标原始记录作为所述目标数据输出。
本发明实施例的针对设置链外勘误表的区块链并行查询方法及系统,根据接收的数据查询请求中的关键信息在链外勘误表以及原始数据表中分别进行数据查询;当查询到的目标勘误记录和目标原始记录中包含了针对同一区块链中的位置信息的记录,则删除包含该位置信息的目标原始记录,并将目标勘误记录和经删除操作后剩余的目标原始记录作为目标数据输出,从而保证输出的目标数据为区块链经勘误更正过的数据。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
图1为本发明实施例提供的区块链的形态图一;
图2为本发明实施例提供的区块链的形态图二;
图3为本发明实施例提供的区块链的形态图三;
图4为本发明实施例提供的针对设置链外勘误表的区块链并行查询方法流程图;
图5为本发明实施例提供的区块链的形态图四;
图6为本发明实施例提供的针对设置链外勘误表的区块链并行查询系统示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
首先需要说明的是,本发明实施例将提供一种针对设置链外勘误表的区块链并行查询方法,以对通过设置链外勘误表的方式对已生成的区块链中区块的区块体数据进行勘误更正的情况下,提供针对该区块链的数据的查询方法。所谓并行查询是指在原始数据表和链外勘误表中同步进行查询,然后对查询的结果数据进行处理和输出。具体通过在每次接收针对当前已形成的区块链中区块的区块体数据的数据查询请求后,根据数据查询请求中的关键信息,在链外勘误表中查询得到目标勘误记录,以及在原始数据表中查询得到目标原始记录;若目标勘误记录和目标原始记录中包含针对同一区块链中的位置信息的记录,则删除包含该位置信息的目标原始记录,并将目标勘误记录和经删除操作后剩余的目标原始记录作为目标数据输出,从而提供给查阅者勘误更正后的区块链的数据。这里所述的区块体数据可理解为作为实际交易数据的信息,区块头数据中包含由当前区块的父区块的所有数据经不可逆算法生成的固定长度的字符串即散列值,以及与当前区块相关的控制信息,区块体数据和区块头数据构成一个区块的完整数据。
其次需要说明的是,本发明实施例中的区块链中各区块的区块体数据记载的交易信息不局限于商业中的“账本”或“金融交易”的信息,也可以广义的理解为是需要通过区块链这种数据组织形式管理的多样化的对象数据,如针对企业进行管理的企业管理数据,针对项目进行进展跟踪的项目进程管理数据等。本发明实施例中,对区块链本身的形态及延展方向不做限定,只是针对在区块链正常延展的过程中,对通过设置链外勘误表的方式,对区块链中区块的区块体数据进行更正勘误的情况,提供一种对该区块链中的区块体数据进行查询的方法。例如,区块链的延展形态可以为如图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就可以唯一确定一个数据条目及其包含的交易信息。因此,这里需要说明的是,针对某个数据条目中的交易信息进行勘误是在决定进行数据勘误时就已经确定的,而在具体执行数据勘误时,只需要锁定被勘误数据即第一数据在区块链中的位置信息即可,而不必再向系统明确输入第一数据的具体内容。
所述的第二数据,是指第一数据被勘误后的数据,即用于替换第一数据所对应的那部分数据。在向系统输入的数据勘误请求中包括两部分内容,即:待勘误的第一数据在延展区块链中的位置信息,以及对第一数据进行勘误后的第二数据。
在实际应用场景中,区块链管理者可能会向系统一次性输入多条交易信息在区块链中的位置信息,以及对这些交易信息进行勘误后的结果信息,系统会根据这些交易信息在区块链中的位置信息,分析其所对应的信息条目,从而以信息条目为单位,将其视为多个数据勘误请求进行处理,即每个数据勘误请求中只包含针对一个数据条目的数据勘误请求。
基于上述对区块链中区块的区块体数据的存在状态,能够清楚说明原始数据表、链外勘误表中数据的意义。
表1和表2分别示出了原始数据表和链外勘误表的具体内容。
表1原始数据表
数据ID 第一数据 所在区块编号 ……
tx01 olddata Block2 ……
…… …… …… ……
表2链外勘误表一
数据ID 第二数据 所在区块编号 ……
tx01 newdata Block2 ……
…… …… …… ……
这里需要说明的是,原始数据表中包含了当前已形成的区块链中区块的全部区块体数据的信息(包括第一数据在区块链中的位置信息以及第一数据的具体内容),而链外勘误表中包含了被勘误的第一数据在区块链中的位置信息以及第一数据被勘误后的第二数据的内容信息。而本方案中针对设置链外勘误表的区块链并行查询方法,其核心思想是在原始数据表与链外勘误表中进行数据查询和数据处理的过程。
如图4所示,该针对设置链外勘误表的区块链并行查询方法包括如下步骤:
S410,接收针对当前已形成的区块链中区块的区块体数据的数据查询请求,该数据查询请求中包括:待查询的目标数据的关键信息;
其中,所述的当前已形成的区块链是指截至当前时刻,所形成的区块链在整体上所呈现的区块链形态;所述待查询的目标数据的关键信息可以是区块体数据中具体的交易信息的部分内容,也可以是该交易信息对应的第一数据在区块链中的位置信息,如第一数据所在的区块的编号,以及该第一数据在区块的区块体数据中的数据ID等。
具体地,系统接收到查阅者输入的数据查询请求后,提取出该请求中用于查询目标数据的关键信息。
S420,根据关键信息,在链外勘误表中进行查询,以得到与关键信息匹配的目标勘误记录;
S430,根据关键信息,在原始数据表中进行查询,以得到与关键信息匹配的目标原始记录;
根据关键信息在链外勘误表、原始数据表中进行数据匹配以得到目标勘误记录、目标原始记录的方法可采用语义相似度、正则表达式等方法。本实施例对具体实现信息匹配所采用的技术和原理不做限定。
这里需要说明的,通常对区块链中某一交易信息进行勘误时,是对交易信息的部分内容如交易时间、价格等部分内容进行局部修改,而不是对该交易信息进行整体性或类别性的内容修改,即类似将一个纯商业内容信息修改为一个纯教育内容信息的概率是很小的。换言之,采用本方案中的查询方法所得到的查询结果数据中,如果某一目标原始记录对应的第一数据被勘误过,那么在目标勘误记录中通常也包含针对该第一数据的目标勘误记录。
当然,在实际应用场景中,如果某一目标原始记录中包含的第一数据被勘误过,而在目标勘误记录中不包含针对该第一数据的目标勘误记录,则可忽略该目标原始记录,使其不作为查询结果数据;如果查询结果数据中只包含了针对某一第一数据的目标勘误记录,而不包含该第一数据的目标原始记录,则不进行额外处理。
另外需要说明的,步骤S420和步骤S430之间没有严格的先后顺序。
S440,若目标勘误记录和目标原始记录中包含针对同一区块链中的位置信息的记录,则删除包含该位置信息的目标原始记录,并将目标勘误记录和经删除操作后剩余的目标原始记录作为目标数据输出。
当目标勘误记录和目标原始记录中包含针对同一区块链中的位置信息的记录,则表明位于该同一区块链中的位置处的第一数据已被勘误,并且勘误后的结果数据即为上述目标勘误记录中包含该同一区块链中的位置信息的记录中的第二数据。此时,可删除包含该位置信息的所述目标原始记录,而只保留包含该位置信息的目标勘误记录,并将目标勘误记录和上述经删除操作后剩余的目标原始记录作为目标数据输出,以使得呈现给查阅者的是经过勘误更正后的区块体数据。
需要注意的是,在实际应用场景中,针对区块链中区块的区块体数据可能存在针对某一交易信息进行过多次勘误的情况,即针对原始数据表中的某一第一数据,可能在链外勘误表中存在对应的多条勘误记录。如表3所示,为针对同一第一数据存在多次更正的情况。
表3链外勘误表二
数据ID 第二数据 所在区块编号 ……
tx01 newdata1 Block2 ……
tx01 newdata2 Block2 ……
…… …… …… ……
针对表3中所示的就某一个第一数据存在对应的多条勘误记录的情况,在依据关键信息匹配得到的目标勘误记录中,则会针对同一第一数据而对应包括至少一条目标勘误记录。为了提供给查阅者最新的经勘误更正后的交易信息数据,则可执行如下步骤:
从目标勘误记录中,提取针对各同一第一数据的且生成时间最近的目标勘误记录,并将这些目标勘误记录作为目标数据输出。
具体地,当针对同一第一数据存在多条目标勘误记录时,可将最后一次勘误更正生成的目标勘误记录作为目标数据进行输出,从而提供给查阅者最新的经勘误更正后的交易信息数据。例如,在每条勘误记录中可包含该勘误记录的生成时间信息,以方便区别各勘误记录的生成时间。
进一步地,在链外勘误表中的各勘误记录中还可包括:用于标记该勘误记录所针对的被勘误的第一数据在本勘误记录中被勘误的版本号;该版本号可依据该第一数据的勘误时间次序顺序标注,时间次序越靠后的版本号越高。
相对应的,为了提供给查阅者最新的经勘误更正后的交易信息数据,则可执行如下步骤:
从目标勘误记录中,提取针对各同一第一数据的且版本号最高的目标勘误记录,并将这些目标勘误记录作为目标数据输出。
具体地,当针对同一第一数据存在多条目标勘误记录时,可将目标勘误记录中包含版本号最高的目标勘误记录作为目标数据进行输出,从而提供给查阅者最新的经勘误更正后的交易信息数据。
进一步地,为了保证每条勘误记录中的第二数据的真实性,如表4所示,在预先生成勘误记录时,在每条勘误记录中增加了第一散列值,该第一散列值为其所在勘误记录中第一数据所在区块在当次被勘误后,将该区块中第一数据替换为相应第二数据后,对该区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串。增加第一散列值的目的是为了防止原始区块中的第一数据和/或对第一数据进行勘误后的第二数据被恶意篡改。
其中,上述不可逆算法可以为哈希算法,第一散列值可以为哈希值。
表4链外勘误表三
数据ID 第二数据 所在区块编号 第一散列值 ……
tx01 newdata Block2 32位字符串 ……
…… …… …… …… ……
相对应的,为了提供给查阅者真实有效的交易信息数据,则可执行如下步骤:
以目标勘误记录中的第二数据替换该目标勘误记录中记录的位于区块链中的位置信息处的第一数据,并对数据替换后,该第二数据所在区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,即第二散列值;
将目标勘误记录中的第一散列值与以该目标勘误记录中的第二数据计算得到的第二散列值进行比较,如果第一散列值与第二散列值相同,则确定将目标勘误记录作为目标数据输出。
具体地,结合图5以及表1和表4所示,将位于区块编号为Block2中的原始数据即第一数据olddata修改为链外勘误表中的勘误后的第二数据newdata,然后对该Block2中的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,即第二散列值。将该第二散列值与链外勘误表中的第一散列值进行比较,如果相同,则确定将目标勘误记录作为目标数据输出。
本发明实施例的针对设置链外勘误表的区块链并行查询方法,根据接收的数据查询请求中的关键信息在链外勘误表以及原始数据表中分别进行数据查询;当查询到的目标勘误记录和目标原始记录中包含了针对同一区块链中的位置信息的记录,则删除包含该位置信息的目标原始记录,并将目标勘误记录和经删除操作后剩余的目标原始记录作为目标数据输出,从而保证输出的目标数据为区块链经勘误更正过的数据。
进一步地,可在勘误记录中增加时间信息或版本号的方式对各勘误记录,特别是针对同一第一数据进行勘误所形成的勘误记录进行区分,并在输出针对同一第一数据的目标数据(特指目标勘误记录)时,输出最近时间勘误生成的目标勘误记录,或者包含版本号最高的目标勘误记录,从而提供给查阅者最新的经勘误更正后的交易信息数据。
实施例二
图6为本发明实施例提供的针对设置链外勘误表的区块链并行查询系统示意图,可用于执行实施例一中所示的方法步骤,该区块链中区块的区块体数据存储于一原始数据表中,该原始数据表中包括多条由关联存储的第一数据在区块链中的位置信息和第一数据的内容构成的原始记录,原始数据表中的所有第一数据的内容构成了所述区块链中所有区块的区块体数据;
与原始数据表关联存储有一链外勘误表,该链外勘误表中包括多条由关联存储的第一数据在区块链中的位置信息和第二数据构成的勘误记录,其中,链外勘误表中涉及的第一数据对应于原始数据表中被勘误的第一数据,第二数据为将该第一数据勘误后的数据。如图6所示,该针对设置链外勘误表的区块链并行查询系统包括:请求接收模块610、勘误查询模块620、原始查询模块630和数据输出模块640,其中:
请求接收模块610,用于接收针对当前已形成的区块链中区块的区块体数据的数据查询请求,该数据查询请求中包括:待查询的目标数据的关键信息;勘误查询模块620,用于根据关键信息,在链外勘误表中进行查询,以得到与关键信息匹配的目标勘误记录;原始查询模块630,用于根据关键信息,在原始数据表中进行查询,以得到与关键信息匹配的目标原始记录;数据输出模块640,用于若目标勘误记录和目标原始记录中包含针对同一区块链中的位置信息的记录,则删除包含该位置信息的所述目标原始记录,并将目标勘误记录和经删除操作后剩余的目标原始记录作为目标数据输出。
进一步地,上述目标勘误记录中针对同一第一数据至少可包括一条目标勘误记录,
相对应的,上述数据输出模块640还用于,
从目标勘误记录中,提取针对各同一第一数据的且生成时间最近的目标勘误记录,并将这些目标勘误记录作为目标数据输出。
进一步地,链外勘误表中的各勘误记录中还可包括:用于标记勘误记录所针对的被勘误的第一数据在本勘误记录中被勘误的版本号;
相对应的,上述数据输出模块640还用于,
从目标勘误记录中,提取针对各同一第一数据的且版本号最高的目标勘误记录,并将这些目标勘误记录作为目标数据输出。
进一步地,各勘误记录中还可包括第一散列值,该第一散列值为其所在勘误记录中第一数据所在区块在当次被勘误后,将该区块中第一数据替换为相应第二数据后,对该区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,
相对应的,上述数据输出模块640还用于,
以目标勘误记录中的第二数据替换该目标勘误记录中记录的位于区块链中的位置信息处的第一数据,并对数据替换后,该第二数据所在区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,即第二散列值;
将目标勘误记录中的第一散列值与以该目标勘误记录中的第二数据计算得到的第二散列值进行比较,如果第一散列值与第二散列值相同,则确定将目标勘误记录作为目标数据输出。
进一步地,上述勘误记录中还可包括:本次勘误记录的生成时间信息,第一数据在区块链中的位置信息可包括:第一数据所在的区块的编号,以及该第一数据在区块的区块体数据中的数据ID。
本发明实施例的针对设置链外勘误表的区块链并行查询系统,根据接收的数据查询请求中的关键信息在链外勘误表以及原始数据表中分别进行数据查询;当查询到的目标勘误记录和目标原始记录中包含了针对同一区块链中的位置信息的记录,则删除包含该位置信息的目标原始记录,并将目标勘误记录和经删除操作后剩余的目标原始记录作为目标数据输出,从而保证输出的目标数据为区块链经勘误更正过的数据。
进一步地,可在勘误记录中增加时间信息或版本号的方式对各勘误记录,特别是针对同一第一数据进行勘误所形成的勘误记录进行区分,并在输出针对同一第一数据的目标数据(特指目标勘误记录)时,输出最近时间勘误生成的目标勘误记录,或者包含版本号最高的目标勘误记录,从而提供给查阅者最新的经勘误更正后的交易信息数据。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种针对设置链外勘误表的区块链并行查询方法,其特征在于,所述区块链中区块的区块体数据存储于一原始数据表中,所述原始数据表中包括多条由关联存储的第一数据在所述区块链中的位置信息和所述第一数据的内容构成的原始记录,所述原始数据表中的所有所述第一数据的内容构成了所述区块链中所有区块的区块体数据;
与所述原始数据表关联存储有一链外勘误表,所述链外勘误表中包括多条由关联存储的所述第一数据在所述区块链中的位置信息和第二数据构成的勘误记录,其中,所述链外勘误表中涉及的所述第一数据对应于所述原始数据表中被勘误的第一数据,所述第二数据为将该第一数据勘误后的数据;
所述查询方法包括:
接收针对当前已形成的区块链中区块的区块体数据的数据查询请求,所述数据查询请求中包括:待查询的目标数据的关键信息;
根据所述关键信息,在所述链外勘误表中进行查询,以得到与所述关键信息匹配的目标勘误记录;
根据所述关键信息,在所述原始数据表中进行查询,以得到与所述关键信息匹配的目标原始记录;
若所述目标勘误记录和所述目标原始记录中包含针对同一所述区块链中的位置信息的记录,则删除包含该位置信息的所述目标原始记录,并将所述目标勘误记录和经删除操作后剩余的所述目标原始记录作为所述目标数据输出。
2.根据权利要求1所述的勘误方法,其特征在于,所述目标勘误记录中针对同一所述第一数据至少包括一条目标勘误记录,
所述方法还包括:
从所述目标勘误记录中,提取针对各同一所述第一数据的且生成时间最近的目标勘误记录,并将这些目标勘误记录作为所述目标数据输出。
3.根据权利要求2所述的勘误方法,其特征在于,所述链外勘误表中的各所述勘误记录中还包括:用于标记所述勘误记录所针对的被勘误的第一数据在本勘误记录中被勘误的版本号;
所述方法还包括:
从所述目标勘误记录中,提取针对各同一所述第一数据的且所述版本号最高的目标勘误记录,并将这些目标勘误记录作为所述目标数据输出。
4.根据权利要求1所述的勘误方法,其特征在于,各所述勘误记录中还包括第一散列值,所述第一散列值为其所在勘误记录中所述第一数据所在区块在当次被勘误后,将该区块中所述第一数据替换为相应所述第二数据后,对该区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,
所述方法还包括:
以所述目标勘误记录中的所述第二数据替换该目标勘误记录中记录的位于所述区块链中的位置信息处的第一数据,并对数据替换后,该第二数据所在区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,即第二散列值;
将所述目标勘误记录中的所述第一散列值与以该目标勘误记录中的所述第二数据计算得到的所述第二散列值进行比较,如果所述第一散列值与所述第二散列值相同,则确定将所述目标勘误记录作为所述目标数据输出。
5.根据权利要求1-4中任一项所述的勘误方法,其特征在于,所述勘误记录中还包括:本次勘误记录的生成时间信息,所述第一数据在所述区块链中的位置信息包括:所述第一数据所在的区块的编号,以及该第一数据在所述区块的区块体数据中的数据ID。
6.一种针对设置链外勘误表的区块链并行查询系统,其特征在于,所述区块链中区块的区块体数据存储于一原始数据表中,所述原始数据表中包括多条由关联存储的第一数据在所述区块链中的位置信息和所述第一数据的内容构成的原始记录,所述原始数据表中的所有所述第一数据的内容构成了所述区块链中所有区块的区块体数据;
与所述原始数据表关联存储有一链外勘误表,所述链外勘误表中包括多条由关联存储的所述第一数据在所述区块链中的位置信息和第二数据构成的勘误记录,其中,所述链外勘误表中涉及的所述第一数据对应于所述原始数据表中被勘误的第一数据,所述第二数据为将该第一数据勘误后的数据;
所述查询系统包括:
请求接收模块,用于接收针对当前已形成的区块链中区块的区块体数据的数据查询请求,所述数据查询请求中包括:待查询的目标数据的关键信息;
勘误查询模块,用于根据所述关键信息,在所述链外勘误表中进行查询,以得到与所述关键信息匹配的目标勘误记录;
原始查询模块,用于根据所述关键信息,在所述原始数据表中进行查询,以得到与所述关键信息匹配的目标原始记录;
数据输出模块,用于若所述目标勘误记录和所述目标原始记录中包含针对同一所述区块链中的位置信息的记录,则删除包含该位置信息的所述目标原始记录,并将所述目标勘误记录和经删除操作后剩余的所述目标原始记录作为所述目标数据输出。
7.根据权利要求6所述的勘误系统,其特征在于,所述目标勘误记录中针对同一所述第一数据至少包括一条目标勘误记录,
所述数据输出模块还用于,
从所述目标勘误记录中,提取针对各同一所述第一数据的且生成时间最近的目标勘误记录,并将这些目标勘误记录作为所述目标数据输出。
8.根据权利要求7所述的勘误系统,其特征在于,所述链外勘误表中的各所述勘误记录中还包括:用于标记所述勘误记录所针对的被勘误的第一数据在本勘误记录中被勘误的版本号;
所述数据输出模块还用于,
从所述目标勘误记录中,提取针对各同一所述第一数据的且所述版本号最高的目标勘误记录,并将这些目标勘误记录作为所述目标数据输出。
9.根据权利要求6所述的勘误系统,其特征在于,各所述勘误记录中还包括第一散列值,所述第一散列值为其所在勘误记录中所述第一数据所在区块在当次被勘误后,将该区块中所述第一数据替换为相应所述第二数据后,对该区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,
所述数据输出模块还用于,
以所述目标勘误记录中的所述第二数据替换该目标勘误记录中记录的位于所述区块链中的位置信息处的第一数据,并对数据替换后,该第二数据所在区块的区块头数据和区块体数据经不可逆算法生成的固定长度的字符串,即第二散列值;
将所述目标勘误记录中的所述第一散列值与以该目标勘误记录中的所述第二数据计算得到的所述第二散列值进行比较,如果所述第一散列值与所述第二散列值相同,则确定将所述目标勘误记录作为所述目标数据输出。
10.根据权利要求6-9中任一项所述的勘误系统,其特征在于,所述勘误记录中还包括:本次勘误记录的生成时间信息,所述第一数据在所述区块链中的位置信息包括:所述第一数据所在的区块的编号,以及该第一数据在所述区块的区块体数据中的数据ID。
CN201710425448.1A 2017-03-24 2017-06-08 针对设置链外勘误表的区块链并行查询方法及系统 Expired - Fee Related CN107463596B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710181142 2017-03-24
CN2017101811426 2017-03-24

Publications (2)

Publication Number Publication Date
CN107463596A true CN107463596A (zh) 2017-12-12
CN107463596B CN107463596B (zh) 2020-08-04

Family

ID=60546058

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710425448.1A Expired - Fee Related CN107463596B (zh) 2017-03-24 2017-06-08 针对设置链外勘误表的区块链并行查询方法及系统

Country Status (1)

Country Link
CN (1) CN107463596B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109034838A (zh) * 2018-07-03 2018-12-18 深圳智乾区块链科技有限公司 事务处理方法、虚拟生态系统及计算机可读存储介质
CN109241753A (zh) * 2018-08-09 2019-01-18 南京简诺特智能科技有限公司 一种基于区块链的数据共享方法和系统
CN109697367A (zh) * 2019-01-09 2019-04-30 腾讯科技(深圳)有限公司 显示区块链数据的方法、区块链浏览器、用户节点和介质
CN111597190A (zh) * 2020-05-15 2020-08-28 中国人民大学 一种区块链数据存储和检索方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102708019A (zh) * 2012-04-28 2012-10-03 华为技术有限公司 一种硬盘数据恢复方法、装置及系统
CN103106148A (zh) * 2011-11-10 2013-05-15 群联电子股份有限公司 区块管理方法、存储器控制器与存储器存储装置
CN105159691A (zh) * 2015-10-30 2015-12-16 北京奇虎科技有限公司 更新元数据的方法及装置
CN105630609A (zh) * 2016-02-24 2016-06-01 杭州复杂美科技有限公司 区块链的打包存储方法
US20160261404A1 (en) * 2015-03-02 2016-09-08 Dell Products L.P. Methods and systems for obfuscating data and computations defined in a secure distributed transaction ledger
CN106330431A (zh) * 2016-08-29 2017-01-11 北京瑞卓喜投科技发展有限公司 基于区块链技术的数据处理方法、装置及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103106148A (zh) * 2011-11-10 2013-05-15 群联电子股份有限公司 区块管理方法、存储器控制器与存储器存储装置
CN102708019A (zh) * 2012-04-28 2012-10-03 华为技术有限公司 一种硬盘数据恢复方法、装置及系统
US20160261404A1 (en) * 2015-03-02 2016-09-08 Dell Products L.P. Methods and systems for obfuscating data and computations defined in a secure distributed transaction ledger
CN105159691A (zh) * 2015-10-30 2015-12-16 北京奇虎科技有限公司 更新元数据的方法及装置
CN105630609A (zh) * 2016-02-24 2016-06-01 杭州复杂美科技有限公司 区块链的打包存储方法
CN106330431A (zh) * 2016-08-29 2017-01-11 北京瑞卓喜投科技发展有限公司 基于区块链技术的数据处理方法、装置及系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109034838A (zh) * 2018-07-03 2018-12-18 深圳智乾区块链科技有限公司 事务处理方法、虚拟生态系统及计算机可读存储介质
CN109241753A (zh) * 2018-08-09 2019-01-18 南京简诺特智能科技有限公司 一种基于区块链的数据共享方法和系统
CN109697367A (zh) * 2019-01-09 2019-04-30 腾讯科技(深圳)有限公司 显示区块链数据的方法、区块链浏览器、用户节点和介质
CN110457918A (zh) * 2019-01-09 2019-11-15 腾讯科技(深圳)有限公司 滤除区块链数据中非法内容的方法、装置、节点和介质
US11893139B2 (en) 2019-01-09 2024-02-06 Tencent Technology (Shenzhen) Company Limited Method for displaying blockchain data, blockchain browser, user node, and medium
CN111597190A (zh) * 2020-05-15 2020-08-28 中国人民大学 一种区块链数据存储和检索方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN107463596B (zh) 2020-08-04

Similar Documents

Publication Publication Date Title
CN107391291A (zh) 修改区块链即有区块体数据的区块链勘误方法及系统
CN107391557A (zh) 针对设置链外勘误表的区块链串行查询方法及系统
CN109034809B (zh) 区块链的生成方法、装置、区块链节点及存储介质
CN106779737B (zh) 基于区块链技术的产品溯源验证方法
CN107463596A (zh) 针对设置链外勘误表的区块链并行查询方法及系统
CN109977110A (zh) 数据清洗方法、装置及设备
CN108921692A (zh) 一种带区块发布机制的多链区块链系统
CN106844523A (zh) 顺序型多维拓展的区块链的生成方法及系统
CN106897353A (zh) 中心型多维拓展的区块链的生成方法及系统
CN107463597A (zh) 针对修改区块体数据的区块链的被动验证方法及系统
CN106909605B (zh) 沿横向拓展的区块链的生成方法及系统
CN107451177A (zh) 针对增加区块的单个勘误的区块链的查询方法及系统
CN107423163A (zh) 整体串行增加区块的区块链的勘误方法及系统
CN107391292A (zh) 针对保持区块体数据实现勘误的区块链验证方法及系统
CN109064343B (zh) 风险模型建立方法、风险匹配方法、装置、设备及介质
CN103631967B (zh) 一种带自增量标识字段的数据表的处理方法及装置
CN107451007A (zh) 针对增加区块进行勘误的区块链的验证方法及系统
CN107451011A (zh) 并行增加区块的区块链的勘误方法及系统
CN107451002A (zh) 针对修改区块体数据的区块链的主动验证方法及系统
US11153379B2 (en) Metadata synchronization system
CN107426293A (zh) 单个串行增加区块的区块链的勘误方法及系统
CN107451179A (zh) 针对增加区块的整体勘误的区块链的查询方法及系统
CN111309848A (zh) 一种梯度提升树模型的生成方法及系统
CN116452123A (zh) 清单项目特征值的生成方法、装置和计算机设备
CN107451178A (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

Granted publication date: 20200804

CF01 Termination of patent right due to non-payment of annual fee