CN107391557A - 针对设置链外勘误表的区块链串行查询方法及系统 - Google Patents
针对设置链外勘误表的区块链串行查询方法及系统 Download PDFInfo
- Publication number
- CN107391557A CN107391557A CN201710425468.9A CN201710425468A CN107391557A CN 107391557 A CN107391557 A CN 107391557A CN 201710425468 A CN201710425468 A CN 201710425468A CN 107391557 A CN107391557 A CN 107391557A
- Authority
- CN
- China
- Prior art keywords
- data
- block
- corrigenda
- record
- target
- 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
Links
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/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (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,根据关键信息,在原始数据表中,针对与目标勘误记录中存在相同区块链中的位置信息的以外的原始记录中进行查询,以得到与关键信息匹配的目标原始记录;
根据关键信息在链外勘误表、原始数据表中进行数据匹配以得到目标勘误记录、目标原始记录的方法可采用语义相似度、正则表达式等方法。本实施例对具体实现信息匹配所采用的技术和原理不做限定。
这里需要说明的,本实施例中,是先在链外勘误表中进行信息匹配得到目标勘误记录,然后在原始数据表中,针对与目标勘误记录中存在相同区块链中的位置信息的以外的原始记录中进行查询,以得到与关键信息匹配的目标原始记录。这些原始记录中的第一数据与目标勘误记录中所针对的第一数据是完全不同的。换言之,针对区块链中区块的区块体数据中的每个第一数据或者在链外勘误表中进行查询,或者在原始数据表中进行查询,而不可能同时在两个数据表中进行查询,并且查询顺序是先在链外勘误表中进行查询,后在原始数据表中进行查询,从而保障了查询得到的结果数据优先为勘误后的数据。
通常对区块链中某一交易信息进行勘误时,是对交易信息的部分内容如交易时间、价格等部分内容进行局部修改,而不是对该交易信息进行整体性或类别性的内容修改,即类似将一个纯商业内容信息修改为一个纯教育内容信息的概率是很小的。换言之,如果分别在链外勘误表和原始数据表中同步进行查询,则会使得查询结果出现冗余,并且冗余的结果数据中,原始记录对应的结果数据是没有参考价值的,原因在于该原始记录中的第一数据已经勘误为了第二数据。采用本方案串行查询方法,可避免这种原始记录和勘误记录冗余的出现,同时提高了查询效率。
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。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2017101811089 | 2017-03-24 | ||
CN201710181108 | 2017-03-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107391557A true CN107391557A (zh) | 2017-11-24 |
CN107391557B CN107391557B (zh) | 2020-10-16 |
Family
ID=60333086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710425468.9A Expired - Fee Related CN107391557B (zh) | 2017-03-24 | 2017-06-08 | 针对设置链外勘误表的区块链串行查询方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107391557B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108985934A (zh) * | 2018-07-06 | 2018-12-11 | 深圳源码智能科技有限公司 | 区块链修改方法和装置 |
CN109033886A (zh) * | 2018-06-20 | 2018-12-18 | 北京欧链科技有限公司 | 一种区块链勘误方法及装置、存储介质、电子设备 |
CN111221780A (zh) * | 2019-12-31 | 2020-06-02 | 浙江工业大学 | 一种基于区块链的服务器文件安全存储方法 |
CN112035542A (zh) * | 2020-08-28 | 2020-12-04 | 成都质数斯达克科技有限公司 | 信息查询方法、装置、电子设备及可读存储介质 |
CN112948438A (zh) * | 2021-03-05 | 2021-06-11 | 杭州复杂美科技有限公司 | 数据查询方法、计算机设备和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102411533A (zh) * | 2011-08-08 | 2012-04-11 | 浪潮电子信息产业股份有限公司 | 一种集群存储系统的日志管理优化方法 |
CN102799634A (zh) * | 2012-06-26 | 2012-11-28 | 中国农业银行股份有限公司 | 数据存储方法及装置 |
CN103106148A (zh) * | 2011-11-10 | 2013-05-15 | 群联电子股份有限公司 | 区块管理方法、存储器控制器与存储器存储装置 |
WO2016022864A2 (en) * | 2014-08-06 | 2016-02-11 | Blockchain Technologies Corporation | System and method for securely receiving and counting votes in an election |
CN105740440A (zh) * | 2016-02-01 | 2016-07-06 | 上海凭安网络科技有限公司 | 一种加快区块链查询的索引方法 |
CN106060036A (zh) * | 2016-05-26 | 2016-10-26 | 布比(北京)网络技术有限公司 | 去中心化共识方法及装置 |
CN106330431A (zh) * | 2016-08-29 | 2017-01-11 | 北京瑞卓喜投科技发展有限公司 | 基于区块链技术的数据处理方法、装置及系统 |
CN106357405A (zh) * | 2016-09-19 | 2017-01-25 | 弗洛格(武汉)信息科技有限公司 | 一种基于区块链技术一致性算法的数据管理方法及系统 |
-
2017
- 2017-06-08 CN CN201710425468.9A patent/CN107391557B/zh not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102411533A (zh) * | 2011-08-08 | 2012-04-11 | 浪潮电子信息产业股份有限公司 | 一种集群存储系统的日志管理优化方法 |
CN103106148A (zh) * | 2011-11-10 | 2013-05-15 | 群联电子股份有限公司 | 区块管理方法、存储器控制器与存储器存储装置 |
CN102799634A (zh) * | 2012-06-26 | 2012-11-28 | 中国农业银行股份有限公司 | 数据存储方法及装置 |
WO2016022864A2 (en) * | 2014-08-06 | 2016-02-11 | Blockchain Technologies Corporation | System and method for securely receiving and counting votes in an election |
CN105740440A (zh) * | 2016-02-01 | 2016-07-06 | 上海凭安网络科技有限公司 | 一种加快区块链查询的索引方法 |
CN106060036A (zh) * | 2016-05-26 | 2016-10-26 | 布比(北京)网络技术有限公司 | 去中心化共识方法及装置 |
CN106330431A (zh) * | 2016-08-29 | 2017-01-11 | 北京瑞卓喜投科技发展有限公司 | 基于区块链技术的数据处理方法、装置及系统 |
CN106357405A (zh) * | 2016-09-19 | 2017-01-25 | 弗洛格(武汉)信息科技有限公司 | 一种基于区块链技术一致性算法的数据管理方法及系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109033886A (zh) * | 2018-06-20 | 2018-12-18 | 北京欧链科技有限公司 | 一种区块链勘误方法及装置、存储介质、电子设备 |
CN108985934A (zh) * | 2018-07-06 | 2018-12-11 | 深圳源码智能科技有限公司 | 区块链修改方法和装置 |
CN108985934B (zh) * | 2018-07-06 | 2021-12-17 | 深圳源码智能科技有限公司 | 区块链修改方法和装置 |
CN111221780A (zh) * | 2019-12-31 | 2020-06-02 | 浙江工业大学 | 一种基于区块链的服务器文件安全存储方法 |
CN111221780B (zh) * | 2019-12-31 | 2022-05-17 | 浙江工业大学 | 一种基于区块链的服务器文件安全存储方法 |
CN112035542A (zh) * | 2020-08-28 | 2020-12-04 | 成都质数斯达克科技有限公司 | 信息查询方法、装置、电子设备及可读存储介质 |
CN112948438A (zh) * | 2021-03-05 | 2021-06-11 | 杭州复杂美科技有限公司 | 数据查询方法、计算机设备和存储介质 |
CN112948438B (zh) * | 2021-03-05 | 2022-06-24 | 杭州复杂美科技有限公司 | 数据查询方法、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107391557B (zh) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391557A (zh) | 针对设置链外勘误表的区块链串行查询方法及系统 | |
CN109034809B (zh) | 区块链的生成方法、装置、区块链节点及存储介质 | |
CN107391291A (zh) | 修改区块链即有区块体数据的区块链勘误方法及系统 | |
CN106779737B (zh) | 基于区块链技术的产品溯源验证方法 | |
CN108874890A (zh) | 一种带可公开著录人机制的区块链系统 | |
CN107463596A (zh) | 针对设置链外勘误表的区块链并行查询方法及系统 | |
CN109165224A (zh) | 一种在区块链数据库上针对关键字key的索引方法 | |
US9471440B2 (en) | Method and system for processing product properties | |
CN107463597A (zh) | 针对修改区块体数据的区块链的被动验证方法及系统 | |
CN107451177A (zh) | 针对增加区块的单个勘误的区块链的查询方法及系统 | |
CN106844523A (zh) | 顺序型多维拓展的区块链的生成方法及系统 | |
CN106897352A (zh) | 在拓展中进行修改的区块链的生成方法及系统 | |
CN106897353A (zh) | 中心型多维拓展的区块链的生成方法及系统 | |
CN107391292A (zh) | 针对保持区块体数据实现勘误的区块链验证方法及系统 | |
CN107423163A (zh) | 整体串行增加区块的区块链的勘误方法及系统 | |
CN106909605A (zh) | 沿横向拓展的区块链的生成方法及系统 | |
CN109064343B (zh) | 风险模型建立方法、风险匹配方法、装置、设备及介质 | |
CN115630118A (zh) | 一种区块链溯源应用中降低节点存储量占用的方法 | |
CN116452123A (zh) | 清单项目特征值的生成方法、装置和计算机设备 | |
EP2983123A1 (en) | Self transfer learning recommendation method and system | |
CN107451007A (zh) | 针对增加区块进行勘误的区块链的验证方法及系统 | |
CN107451011A (zh) | 并行增加区块的区块链的勘误方法及系统 | |
CN107451179A (zh) | 针对增加区块的整体勘误的区块链的查询方法及系统 | |
US11153379B2 (en) | Metadata synchronization system | |
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: 20201016 |