CN109101526A - 一种区块链勘误方法及装置、存储介质、电子设备 - Google Patents
一种区块链勘误方法及装置、存储介质、电子设备 Download PDFInfo
- Publication number
- CN109101526A CN109101526A CN201810636232.4A CN201810636232A CN109101526A CN 109101526 A CN109101526 A CN 109101526A CN 201810636232 A CN201810636232 A CN 201810636232A CN 109101526 A CN109101526 A CN 109101526A
- Authority
- CN
- China
- Prior art keywords
- block
- corrigenda
- printing
- information
- chain
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
本发明提供了一种区块链勘误方法及装置、存储介质、电子设备,该区块链勘误方法包括:在接收到针对待勘误区块链中的任一目标区块的勘误请求时,利用所述勘误请求携带的勘误数据对所述目标区块进行勘误,生成勘误记录;确定勘误区块头信息;利用所述勘误记录以及所述勘误区块头信息,生成所述目标区块对应的勘误区块;将所述勘误区块连接到预设的勘误区块链上。因此,本发明提供的方案可以降低勘误记录被篡改的概率。
Description
技术领域
本发明涉及区块链技术领域,特别是涉及一种区块链勘误方法及装置、存储介质、电子设备。
背景技术
随着互联网的不断发展,区块链技术应运而生。区块链由于其具有安全性、去中心化以及公开透明的等特点,因此得到了越来越广泛的应用。
目前,区块链在应用过程中,区块链中可能存在个别的区块中的数据存在勘误需求。比如,区块中的数据确实存在错误或者政策部门有特殊勘误要求时,就需要对区块中的数据进行勘误。在对区块的勘误过程中,通常将勘误记录记录在独立的勘误文件(比如,勘误表)中。但是这些勘误文件是独立存在的,很容易被用户或黑客进行篡改。因此,现有的方式,勘误记录被篡改的概率较高。
发明内容
有鉴于此,本发明提出了一种区块链勘误方法及装置、存储介质、电子设备,主要目的在于可以降低勘误记录被篡改的概率。
第一方面,本发明实施例提供了一种区块链勘误方法,该区块链勘误方法包括:
在接收到针对待勘误区块链中的任一目标区块的勘误请求时,利用所述勘误请求携带的勘误数据对所述目标区块进行勘误,生成勘误记录;
确定勘误区块头信息;
利用所述勘误记录以及所述勘误区块头信息,生成所述目标区块对应的勘误区块;
将所述勘误区块连接到预设的勘误区块链上。
可选的,
所述确定勘误区块头信息,包括:
判断所述勘误区块链中是否仅存在勘误创世块;
如果是,将所述勘误创世块的区块头中的信息以及所述目标区块的区块头中的信息确定为所述勘误区块头信息;
否则,在所述勘误区块链已存在的勘误区块中,确定位于最末位的勘误区块;将所述位于最末位的勘误区块的区块头中的信息以及所述目标区块的区块头中的信息确定为所述勘误区块头信息。
可选的,
所述利用所述勘误记录以及所述勘误区块头信息,生成所述目标区块对应的勘误区块,包括:
利用所述勘误记录生成勘误区块体;
利用所述勘误记录以及所述勘误区块头信息,生成勘误区块头;
利用所述勘误区块体以及所述勘误区块头生成所述勘误区块。
可选的,
所述勘误记录包括勘误数据、所述目标区块中与所述勘误数据对应的原始数据、所述原始数据在所述目标区块中的位置信息;
所述利用所述勘误记录以及所述勘误区块头信息,生成勘误区块头,包括:
利用所述勘误数据、所述目标区块中与所述勘误数据对应的原始数据、所述原始数据在所述目标区块中的位置信息以及所述勘误区块头信息生成所述勘误区块哈希值;
根据所述勘误区块头信息生成勘误区块高度;
利用所述勘误区块哈希值和所述勘误区块高度生成所述勘误区块头。
可选的,
所述将所述勘误区块连接到预设的勘误区块链上,包括:
判断所述勘误区块链中是否仅存在勘误创世块;
如果否,在所述勘误区块链已存在的勘误区块中,确定位于最末位的勘误区块;将所述勘误区块与所述位于最末位的勘误区块连接;
否则,将所述勘误区块与所述勘误创世块连接。
可选的,
所述区块链勘误方法,进一步包括:
在接收到针对所述待勘误区块链中的任一待查询区块的数据查询请求时,判断所述待查询区块在所述勘误区块链中是否存在对应的勘误区块;
如果存在,在对应的勘误区块中查询与所述数据查询请求对应的数据;当对应的勘误区块中不存在与所述数据查询请求对应的数据时,在所述待查询区块中查询与所述数据查询请求对应的数据;
否则,在所述待查询区块中查询与所述数据查询请求对应的数据。
第二方面,本发明实施例提供了一种区块链勘误装置,该区块链勘误装置包括:
记录生成模块,用于在接收到针对待勘误区块链中的任一目标区块的勘误请求时,利用所述勘误请求携带的勘误数据对所述目标区块进行勘误,生成勘误记录;
确定模块,用于确定勘误区块头信息;
区块生成模块,用于利用所述记录生成模块生成的所述勘误记录以及所述确定模块确定的所述勘误区块头信息,生成所述目标区块对应的勘误区块;
连接模块,用于将所述生成模块生成的所述勘误区块连接到预设的勘误区块链上。
可选的,
所述确定模块,包括:判断子模块、第一确定子模块以及第二确定子模块;
所述判断子模块,用于判断所述勘误区块链中是否仅存在勘误创世块;如果是,触发所述第一确定子模块;否则,触发所述第二确定子模块;
所述第一确定子模块,用于在所述判断子模块的触发下,将所述勘误创世块的区块头中的信息以及所述目标区块的区块头中的信息确定为所述勘误区块头信息;
所述第二确定子模块,用于在所述判断子模块的触发下,在所述勘误区块链已存在的勘误区块中,确定位于最末位的勘误区块;将所述位于最末位的勘误区块的区块头中的信息以及所述目标区块的区块头中的信息确定为所述勘误区块头信息。
可选的,
所述区块生成模块,包括:区块体生成子模块、区块头生成子模块以及区块生成子模块;
所述区块体生成子模块,用于利用所述勘误记录生成勘误区块体;
所述区块头生成子模块,用于利用所述勘误记录以及所述勘误区块头信息,生成勘误区块头;
所述区块生成子模块,用于利用所述区块体生成子模块生成的所述勘误区块体以及所述区块头生成子模块生成的所述勘误区块头生成所述勘误区块。
第三方面,本发明提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述中任意一项所述的区块链勘误方法。
第四方面,本发明提供了电子设备,所述电子设备中包括处理器、存储器和总线;所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述中任意一项所述的区块链勘误方法。
本发明实施例提供了一种区块链勘误方法及装置、存储介质、电子设备。首先在接收到针对待勘误区块链中的任一目标区块的勘误请求时,利用该勘误请求携带的勘误数据对目标区块进行勘误,生成勘误记录。然后确定出勘误区块头信息,并利用勘误记录以及勘误区块头信息生成目标区块对应的勘误区块。最后将生成的勘误区块连接到预设的勘误区块链上。通过上述可知,在对待勘误区块链中的任一目标区块进行勘误时,生成该目标区块对应的勘误区块,并将生成的勘误区块连接到预设的勘误区块链上。由于对目标区块的勘误记录以勘误区块的形式存在,且该勘误区块连接到一个独立的勘误区块链上。因此,本发明实施例提供的方案可以降低勘误记录被篡改的概率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明一个实施例提供的一种区块链勘误方法的流程图;
图2示出了本发明一个实施例提供的一种待勘误区块链的结构示意图;
图3示出了本发明一个实施例提供的一种勘误区块链的结构示意图;
图4示出了本发明另一个实施例提供的一种待勘误区块链的结构示意图;
图5示出了本发明又一个实施例提供的一种待勘误区块链的结构示意图;
图6示出了本发明又一个实施例提供的一种待勘误区块链的结构示意图;
图7示出了本发明另一个实施例提供的一种区块链勘误方法的流程图;
图8示出了本发明一个实施例提供的一种区块链勘误装置的结构示意图;
图9示出了本发明另一个实施例提供的一种区块链勘误装置的结构示意图;
图10示出了本发明又一个实施例提供的一种区块链勘误装置的结构示意图;
图11示出了本发明又一个实施例提供的一种区块链勘误装置的结构示意图;
图12示出了本发明一个实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更加详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
如图1所示,本发明实施例提供了一种区块链勘误方法,该区块链勘误方法包括:
步骤101:在接收到针对待勘误区块链中的任一目标区块的勘误请求时,利用所述勘误请求携带的勘误数据对所述目标区块进行勘误,生成勘误记录;
步骤102:确定勘误区块头信息;
步骤103:利用所述勘误记录以及所述勘误区块头信息,生成所述目标区块对应的勘误区块;
步骤104:将所述勘误区块连接到预设的勘误区块链上。
根据图1所示的实施例,首先在接收到针对待勘误区块链中的任一目标区块的勘误请求时,利用该勘误请求携带的勘误数据对目标区块进行勘误,生成勘误记录。然后确定出勘误区块头信息,并利用勘误记录以及勘误区块头信息生成目标区块对应的勘误区块。最后将生成的勘误区块连接到预设的勘误区块链上。通过上述可知,在对待勘误区块链中的任一目标区块进行勘误时,生成该目标区块对应的勘误区块,并将生成的勘误区块连接到预设的勘误区块链上。由于对目标区块的勘误记录以勘误区块的形式存在,且该勘误区块连接到一个独立的勘误区块链上。因此,本发明实施例提供的方案可以降低勘误记录被篡改的概率。
在本发明一个实施例中,待勘误区块链的数量可以根据业务要求确定。待勘误区块链的数量可以为一个或多个。在待勘误区块链的数量为多个时,则多个待勘误区块链的勘误区块均需要连接到预设的勘误区块链中。
在本发明一个实施例中,上述图1所示流程图中所涉及的勘误请求中可以携带但不限于勘误数据以及目标区块的位置信息。根据目标区块的位置信息可以在待勘误区块链中定位到目标区块。
在本发明一个实施例中,上述图1所示流程图中的步骤101中所涉及的利用所述勘误请求携带的勘误数据对所述目标区块进行勘误生成勘误记录,可以包括:
在目标区块中查找与勘误数据对应的原始数据;
确定勘误数据以及原始数据之间是否存在差异;
如果是,生成勘误记录。其中,勘误记录中可以包括但不限于勘误数据、目标区块中与所述勘误数据对应的原始数据、原始数据在目标区块中的位置信息;
否则,不生成勘误记录,说明目标区块正常,不需要勘误。
在本发明一个实施例中,上述图1所示流程图中的步骤102确定勘误区块头信息,可以包括:
判断所述勘误区块链中是否仅存在勘误创世块;
如果是,将所述勘误创世块的区块头中的信息以及所述目标区块的区块头中的信息确定为所述勘误区块头信息;
否则,在所述勘误区块链已存在的勘误区块中,确定位于最末位的勘误区块;将所述位于最末位的勘误区块的区块头中的信息以及所述目标区块的区块头中的信息确定为所述勘误区块头信息。
在本实施例中,勘误创世块可以根据用户输入的创世块信息进行创建。比如,创世块信息中可以包括但不限于块头哈希值、时间戳、随机数、块体哈希值。
在本实施例中,举例说明:存在如图2所示的待勘误区块链以及如图3所示的勘误区块链。其中,待勘误区块链中包括有5个区块分别为待勘误区块201、待勘误区块202、待勘误区块203、待勘误区块204以及待勘误区块205。勘误区块链中包括勘误创世块301。接收到了针对待勘误区块203的勘误请求,则待勘误区块203为目标区块。在确定勘误区块头信息时,首先判断勘误区块链中是否仅存在勘误创世块。显然的,从图3中可以看出勘误区块链中仅存在勘误创世块301。因此,将勘误创世块301的区块头中的信息以及目标区块“待勘误区块203”的区块头中的信息确定为勘误区块头信息。
在本实施例中,举例说明:存在如图2所示的待勘误区块链以及如图4所示的勘误区块链。其中,勘误区块链中除了勘误创世块401之外,还包括勘误区块402、勘误区块403(说明在当前勘误请求之前还接收到了2次有效的勘误请求,并针对这两次勘误请求生成了勘误区块402、勘误区块403)。勘误区块402、勘误区块403按照生成的时间顺序,勘误区块402与勘误创世块401相连,勘误区块403与勘误区块402相连。接收到了针对待勘误区块204的勘误请求,则待勘误区块204为目标区块。在确定勘误区块头信息时,首先判断勘误区块链中是否仅存在勘误创世块。显然的,从图4中可以看出勘误区块链中不仅存在勘误创世块401还存在勘误区块402和勘误区块403。因此,将位于最末位的勘误区块“勘误区块403”的区块头中的信息以及目标区块“待勘误区块204”的区块头中的信息确定为勘误区块头信息。
根据上述实施例,在勘误区块链中仅存在勘误创世块时,将勘误创世块的区块头中的信息以及目标区块的区块头中的信息确定为勘误区块头信息。在勘误区块链中不仅存在勘误创世块还存在勘误区块时,将勘误区块链中位于最末位的勘误区块的区块头中的信息以及目标区块的区块头中的信息确定为勘误区块头信息。
在本发明一个实施例中,上述图1所示流程图中的步骤103利用所述勘误记录以及所述勘误区块头信息,生成所述目标区块对应的勘误区块,可以包括:
A1:利用所述勘误记录生成勘误区块体;
A2:利用所述勘误记录以及所述勘误区块头信息,生成勘误区块头;
A3:利用所述勘误区块体以及所述勘误区块头生成所述勘误区块。
在本实施例中,步骤A1利用所述勘误记录生成勘误区块体可以包括:构建区块体框架,将勘误记录中包括的勘误数据、目标区块中与勘误数据对应的原始数据、原始数据在所述目标区块中的位置信息以设定的格式写入到区块体框架中形成勘误区块体。
在本实施例中,在上述图1所示流程图中所涉及的勘误记录包括勘误数据、所述目标区块中与所述勘误数据对应的原始数据、所述原始数据在所述目标区块中的位置信息时,步骤A2利用所述勘误记录以及所述勘误区块头信息,生成勘误区块头,可以包括:利用所述勘误数据、所述目标区块中与所述勘误数据对应的原始数据、所述原始数据在所述目标区块中的位置信息以及所述勘误区块头信息生成所述勘误区块哈希值;根据所述勘误区块头信息生成勘误区块高度;利用所述勘误区块哈希值和所述勘误区块高度生成所述勘误区块头。
在本实施例中,可以采用预设的哈希算法利用勘误数据、目标区块中与勘误数据对应的原始数据、原始数据在目标区块中的位置信息以及勘误区块头信息进行哈希运算,生成勘误区块的勘误区块哈希值。需要注意的是,这里勘误区块头信息包括的信息分为以下两种:第一种,在勘误区块链中仅存在勘误创世块时,勘误区块头信息中包括勘误创世块的区块头中的信息(比如,哈希值和区块高度)以及目标区块的区块头中的信息(比如,哈希值和区块高度)。第二种,在勘误区块链中不仅存在勘误创世块还存在勘误区块时,勘误区块头信息中包括勘误区块链中位于最末位的勘误区块的区块头中的信息(比如,哈希值和区块高度)以及目标区块的区块头中的信息(比如,哈希值和区块高度)。
在本实施例中,勘误区块高度中包括区块标识。在勘误区块头信息中包括勘误创世块的区块头中的信息(比如,哈希值和区块高度)以及目标区块的区块头中的信息(比如,哈希值和区块高度)时,勘误区块高度中要体现出目标区块的区块头中的信息,以便可以根据勘误区块高度就可以快速的确定出该勘误区块是哪个目标区块对应的勘误区块。勘误区块高度中还要体现出勘误创世块的区块头中的信息,以便可以根据勘误区块高度可以在勘误区块链中快速的定位出该勘误区块。
在本实施例中,在勘误区块头信息中包括勘误区块链中位于最末位的勘误区块的区块头中的信息(比如,哈希值和区块高度)以及目标区块的区块头中的信息(比如,哈希值和区块高度)。勘误区块高度中要体现出目标区块的区块头中的信息,以便可以根据勘误区块高度就可以快速的确定出该勘误区块是哪个目标区块对应的勘误区块。勘误区块高度中还要体现出位于最末位的勘误区块的区块头中的信息,以便可以根据勘误区块高度在勘误区块链中快速的定位出该勘误区块。
根据上述实施例,由于利用勘误记录以及勘误区块头信息生成勘误区块体以及勘误区块头,因此,利用勘误区块体以及勘误区块头生成的勘误区块不仅可以准确的反应出勘误记录,而且可以明确的定位出勘误区块是待勘误区块链中哪个目标区块对应的勘误区块,且可以明确的定位出勘误区块在勘误区块链中的位置。
在本发明一个实施例中,上述图1所示流程图中的步骤104将所述勘误区块连接到预设的勘误区块链上,可以包括:
判断所述勘误区块链中是否仅存在勘误创世块;
如果否,在所述勘误区块链已存在的勘误区块中,确定位于最末位的勘误区块;将所述勘误区块与所述位于最末位的勘误区块连接;
否则,将所述勘误区块与所述勘误创世块连接。
在本实施例中,举例说明:存在如图2所示的待勘误区块链以及如图3所示的勘误区块链。生成了目标区块“待勘误区块203”对应的勘误区块“勘误区块A”。从图3中可以看出勘误区块链中仅存在勘误创世块301,则将勘误区块A与勘误创世块301相连,形成如图5所示的勘误区块链。
在本实施例中,举例说明:存在如图2所示的待勘误区块链以及如图4所示的勘误区块链。生成了目标区块“待勘误区块204”对应的勘误区块“勘误区块B”。从图4中可以看出勘误区块403为是位于勘误区块链中位于最末位的勘误区块,将勘误区块B与勘误区块403连接,形成如图6所示的勘误区块链。
根据上述实施例,在勘误区块链中不仅存在勘误创世块还存在勘误区块时,将生成的勘误区块与勘误区块链中位于最末位的勘误区块连接。在勘误区块链中仅存在勘误创世块时,将生成的勘误区块与勘误创世块连接。根据勘误区块链是否仅存在勘误创世块的情况,对生成的勘误区块进行区别连接处理,因此可以清晰有序的对各次勘误进行记录。
在本发明一个实施例中,所述区块链勘误方法还可以进一步包括如下步骤:
在接收到针对所述待勘误区块链中的任一待查询区块的数据查询请求时,判断所述待查询区块在所述勘误区块链中是否存在对应的勘误区块;
如果存在,在对应的勘误区块中查询与所述数据查询请求对应的数据;当对应的勘误区块中不存在与所述数据查询请求对应的数据时,在所述待查询区块中查询与所述数据查询请求对应的数据;
否则,在所述待查询区块中查询与所述数据查询请求对应的数据。
在本实施例中,数据查询请求中可以包括待查询区块的位置信息以及待查询数据的描述。在接收到数据查询请求时可以根据待查询区块的位置信息快速的定位到待查询区块,并可以根据待查询数据在待查询区块对应的勘误区块或待查询区块中查询数据查询请求对应的数据。
在本实施例中,举例说明:存在如图2所示的区块链和如图4所示的勘误区块链。在接收到针对于待勘误区块203的查询请求时,根据查询请求从图4所示的勘误区块链中的位于最末位的勘误区块403开始,查询与待勘误区块203对应的勘误区块。比如,在确定勘误区块403不是待勘误区块203对应的勘误区块,则继续确定勘误区块402是否为待勘误区块203对应的勘误区块。经过确定,勘误区块402是待勘误区块203对应的勘误区块。则在勘误区块402中查询与数据查询请求对应的数据。比如,在勘误区块402中查询到与数据查询请求对应的数据,则将数据提供给用户。比如,在勘误区块402中未查询到数据查询请求对应的数据,则继续查询在与勘误区块402相连的上一个勘误区块401是否为待勘误区块203对应的勘误区块。显然,勘误区块401不是待勘误区块203对应的勘误区块,且勘误区块401不存在相连的上一个勘误区块,说明数据请求对应的数据未进行过勘误操作。则在待勘误区块203中查询与勘误请求对应的数据。
根据上述实施例,在根据数据查询请求查询数据时,从勘误区块链中最末位的勘误区块开始查询与数据查询请求对应的数据。因此,在数据查询请求对应的数据为勘误过的数据时可以获取到勘误后的最新数据,以保证可以准确的查询到正确的数据。
下面以如图2所示的待勘误区块链为例,对区块链勘误方法进行说明。如图7所示,该区块链勘误方法可以包括:
步骤501:判断是否接收到针对待勘误区块链中的任一目标区块的勘误请求,如果是,执行步骤502;否则,继续执行本步骤。
在本步骤中,接收到了针对于待勘误区块204的勘误请求。该勘误请求中包括勘误数据A以及待勘误区块204的位置信息。
步骤502:在接收到针对待勘误区块链中的任一目标区块的勘误请求时,利用勘误请求携带的勘误数据对目标区块进行勘误,生成勘误记录。
在本步骤中,利用勘误请求中包括的勘误数据A对待勘误区块204进行勘误,并生成勘误记录。其中,勘误记录中包括勘误数据A、待勘误区块204中与勘误数据A对应的原始数据A、原始数据A在待勘误区块204中的位置信息。
步骤503:判断判断勘误区块链中是否仅存在勘误创世块;如果是,执行步骤504;否则,执行步骤505。
在本步骤中,判断出勘误区块链中不仅存在勘误创世块还存在勘误区块,执行步骤505。勘误区块链的结构如图4所示。
步骤504:将勘误创世块的区块头中的信息以及目标区块的区块头中的信息确定为勘误区块头信息,并执行步骤506。
步骤505:在勘误区块链已存在的勘误区块中,确定位于最末位的勘误区块;将位于最末位的勘误区块的区块头中的信息以及目标区块的区块头中的信息确定为所述勘误区块头信息,并执行步骤506。
在本步骤中,从图4中可以看出勘误区块链中不仅存在勘误创世块401还存在勘误区块402和勘误区块403。因此,将位于最末位的勘误区块“勘误区块403”的区块头中的信息以及目标区块“待勘误区块204”的区块头中的信息确定为勘误区块头信息。
步骤506:利用勘误记录生成勘误区块体。
在本步骤中,利用勘误记录中包括勘误数据A、待勘误区块204中与勘误数据A对应的原始数据A、原始数据A在待勘误区块204中的位置信息生成勘误区块体。
步骤507:利用勘误数据、目标区块中与勘误数据对应的原始数据、原始数据在目标区块中的位置信息以及勘误区块头信息生成勘误区块哈希值。
在本步骤中,利用勘误记录中包括勘误数据A、待勘误区块204中与勘误数据A对应的原始数据A、原始数据A在待勘误区块204中的位置信息以及勘误区块头信息“勘误区块“勘误区块403”的区块头中的信息以及目标区块“待勘误区块204”的区块头中的信息”,采用预设的哈希算法进行哈希运算,生成勘误区块哈希值。
步骤508:根据勘误区块头信息生成勘误区块高度。
步骤509:利用勘误区块哈希值和勘误区块高度生成勘误区块头。
步骤510:利用勘误区块体以及勘误区块头生成勘误区块。
在本步骤中,利用勘误区块体以及勘误区块头生成勘误区块B。
步骤511:判断勘误区块链中是否仅存在勘误创世块;如果是,执行步骤512;否则,执行步骤513。
在本步骤中,判断勘误区块链不仅存在勘误创世块401还存在勘误区块402和勘误区块403,执行步骤512。
步骤512:在勘误区块链已存在的勘误区块中,确定位于最末位的勘误区块;将勘误区块与位于最末位的勘误区块连接。
在本步骤中,从图4中可以看出勘误区块403为是位于勘误区块链中位于最末位的勘误区块,将勘误区块B与勘误区块403连接,形成如图6所示的勘误区块链。
步骤513:将勘误区块与勘误创世块连接。
如图8所示,本发明实施例提供了一种区块链勘误方法,该区块链勘误方法包括:
记录生成模块601,用于在接收到针对待勘误区块链中的任一目标区块的勘误请求时,利用所述勘误请求携带的勘误数据对所述目标区块进行勘误,生成勘误记录;
确定模块602,用于确定勘误区块头信息;
区块生成模块603,用于利用所述记录生成模块601生成的所述勘误记录以及所述确定模块602确定的所述勘误区块头信息,生成所述目标区块对应的勘误区块;
连接模块604,用于将所述区块生成模块603生成的所述勘误区块连接到预设的勘误区块链上。
根据图8所示的实施例,首先记录生成模块在接收到针对待勘误区块链中的任一目标区块的勘误请求时,利用该勘误请求携带的勘误数据对目标区块进行勘误,生成勘误记录。然后确定模块确定出勘误区块头信息,区块生成模块利用勘误记录以及勘误区块头信息生成目标区块对应的勘误区块。最后连接模块将生成的勘误区块连接到预设的勘误区块链上。通过上述可知,在对待勘误区块链中的任一目标区块进行勘误时,生成该目标区块对应的勘误区块,并将生成的勘误区块连接到预设的勘误区块链上。由于对目标区块的勘误记录以勘误区块的形式存在,且该勘误区块连接到一个独立的勘误区块链上。因此,本发明实施例提供的方案可以降低勘误记录被篡改的概率。
在本发明一个实施例中,如图9所示,所述确定模块602可以包括:判断子模块6021、第一确定子模块6022以及第二确定子模块6023;
所述判断子模块6021,用于判断所述勘误区块链中是否仅存在勘误创世块;如果是,触发所述第一确定子模块6022;否则,触发所述第二确定子模块6023;
所述第一确定子模块6022,用于在所述判断子模块6021的触发下,将所述勘误创世块的区块头中的信息以及所述目标区块的区块头中的信息确定为所述勘误区块头信息;
所述第二确定子模块6023,用于在所述判断子模块6021的触发下,在所述勘误区块链已存在的勘误区块中,确定位于最末位的勘误区块;将所述位于最末位的勘误区块的区块头中的信息以及所述目标区块的区块头中的信息确定为所述勘误区块头信息。
在本发明一个实施例中,如图10所示,所述区块生成模块603可以包括:区块体生成子模块6031、区块头生成子模块6032以及区块生成子模块6033;
所述区块体生成子模块6031,用于利用所述勘误记录生成勘误区块体;
所述区块头生成子模块6032,用于利用所述勘误记录以及所述勘误区块头信息,生成勘误区块头;
所述区块生成子模块6033,用于利用所述区块体生成子模块6031生成的所述勘误区块体以及所述区块头生成子模块6032生成的所述勘误区块头生成所述勘误区块。
在本发明一个实施例中,所示连接模块604,用于判断所述勘误区块链中是否仅存在勘误创世块;如果否,在所述勘误区块链已存在的勘误区块中,确定位于最末位的勘误区块;将所述勘误区块与所述位于最末位的勘误区块连接;否则,将所述勘误区块与所述勘误创世块连接。
在本发明一个实施例中,如图11所示,所述区块链勘误装置可以进一步包括:查询模块605;
所示查询模块605,用于在接收到针对所述待勘误区块链中的任一待查询区块的数据查询请求时,判断所述待查询区块在所述勘误区块链中是否存在对应的勘误区块;如果存在,在对应的勘误区块中查询与所述数据查询请求对应的数据;当对应的勘误区块中不存在与所述数据查询请求对应的数据时,在所述待查询区块中查询与所述数据查询请求对应的数据;否则,在所述待查询区块中查询与所述数据查询请求对应的数据。
在本发明一个实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述中任意一项所述的区块链勘误方法。
在本发明一个实施例提供了一种电子设备,如图12所示,所述电子设备中包括处理器701、存储器702和总线703;所述处理器701、所述存储器702通过所述总线703完成相互间的通信;所述处理器701用于调用所述存储器702中的程序指令,以执行上述中任意一项所述的区块链勘误方法。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明各个实施例至少具有如下有益效果:
1、在本发明实施例中,首先在接收到针对待勘误区块链中的任一目标区块的勘误请求时,利用该勘误请求携带的勘误数据对目标区块进行勘误,生成勘误记录。然后确定出勘误区块头信息,并利用勘误记录以及勘误区块头信息生成目标区块对应的勘误区块。最后将生成的勘误区块连接到预设的勘误区块链上。通过上述可知,在对待勘误区块链中的任一目标区块进行勘误时,生成该目标区块对应的勘误区块,并将生成的勘误区块连接到预设的勘误区块链上。由于对目标区块的勘误记录以勘误区块的形式存在,且该勘误区块连接到一个独立的勘误区块链上。因此,本发明实施例提供的方案可以降低勘误记录被篡改的概率。
2、在本发明实施例中,在勘误区块链中仅存在勘误创世块时,将勘误创世块的区块头中的信息以及目标区块的区块头中的信息确定为勘误区块头信息。在勘误区块链中不仅存在勘误创世块还存在勘误区块时,将勘误区块链中位于最末位的勘误区块的区块头中的信息以及目标区块的区块头中的信息确定为勘误区块头信息。
3、在本发明实施例中,由于利用勘误记录以及勘误区块头信息生成勘误区块体以及勘误区块头,因此,利用勘误区块体以及勘误区块头生成的勘误区块不仅可以准确的反应出勘误记录,而且可以明确的定位出勘误区块是待勘误区块链中哪个目标区块对应的勘误区块,且可以明确的定位出勘误区块在勘误区块链中的位置。
4、在本发明实施例中,在勘误区块链中不仅存在勘误创世块还存在勘误区块时,将生成的勘误区块与勘误区块链中位于最末位的勘误区块连接。在勘误区块链中仅存在勘误创世块时,将生成的勘误区块与勘误创世块连接。根据勘误区块链是否仅存在勘误创世块的情况,对生成的勘误区块进行区别连接处理,因此可以清晰有序的对各次勘误进行记录。
5、在本发明实施例中,在根据数据查询请求查询数据时,从勘误区块链中最末位的勘误区块开始查询与数据查询请求对应的数据。因此,在数据查询请求对应的数据为勘误过的数据时可以获取到勘误后的最新数据,以保证可以准确的查询到正确的数据。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种区块链勘误方法,其特征在于,包括:
在接收到针对待勘误区块链中的任一目标区块的勘误请求时,利用所述勘误请求携带的勘误数据对所述目标区块进行勘误,生成勘误记录;
确定勘误区块头信息;
利用所述勘误记录以及所述勘误区块头信息,生成所述目标区块对应的勘误区块;
将所述勘误区块连接到预设的勘误区块链上。
2.根据权利要求1所述的区块链勘误方法,其特征在于,
所述确定勘误区块头信息,包括:
判断所述勘误区块链中是否仅存在勘误创世块;
如果是,将所述勘误创世块的区块头中的信息以及所述目标区块的区块头中的信息确定为所述勘误区块头信息;
否则,在所述勘误区块链已存在的勘误区块中,确定位于最末位的勘误区块;将所述位于最末位的勘误区块的区块头中的信息以及所述目标区块的区块头中的信息确定为所述勘误区块头信息。
3.根据权利要求1所述的区块链勘误方法,其特征在于,
所述利用所述勘误记录以及所述勘误区块头信息,生成所述目标区块对应的勘误区块,包括:
利用所述勘误记录生成勘误区块体;
利用所述勘误记录以及所述勘误区块头信息,生成勘误区块头;
利用所述勘误区块体以及所述勘误区块头生成所述勘误区块。
4.根据权利要求1所述的区块链勘误方法,其特征在于,
所述勘误记录包括勘误数据、所述目标区块中与所述勘误数据对应的原始数据、所述原始数据在所述目标区块中的位置信息;
所述利用所述勘误记录以及所述勘误区块头信息,生成勘误区块头,包括:
利用所述勘误数据、所述目标区块中与所述勘误数据对应的原始数据、所述原始数据在所述目标区块中的位置信息以及所述勘误区块头信息生成所述勘误区块哈希值;
根据所述勘误区块头信息生成勘误区块高度;
利用所述勘误区块哈希值和所述勘误区块高度生成所述勘误区块头。
5.根据权利要求1-4中任一所述的区块链勘误方法,其特征在于,
所述将所述勘误区块连接到预设的勘误区块链上,包括:
判断所述勘误区块链中是否仅存在勘误创世块;
如果否,在所述勘误区块链已存在的勘误区块中,确定位于最末位的勘误区块;将所述勘误区块与所述位于最末位的勘误区块连接;
否则,将所述勘误区块与所述勘误创世块连接。
6.根据权利要求1-4中任一所述的区块链勘误方法,其特征在于,
所述区块链勘误方法,进一步包括:
在接收到针对所述待勘误区块链中的任一待查询区块的数据查询请求时,判断所述待查询区块在所述勘误区块链中是否存在对应的勘误区块;
如果存在,在对应的勘误区块中查询与所述数据查询请求对应的数据;当对应的勘误区块中不存在与所述数据查询请求对应的数据时,在所述待查询区块中查询与所述数据查询请求对应的数据;
否则,在所述待查询区块中查询与所述数据查询请求对应的数据。
7.一种区块链勘误装置,其特征在于,包括:
记录生成模块,用于在接收到针对待勘误区块链中的任一目标区块的勘误请求时,利用所述勘误请求携带的勘误数据对所述目标区块进行勘误,生成勘误记录;
确定模块,用于确定勘误区块头信息;
区块生成模块,用于利用所述记录生成模块生成的所述勘误记录以及所述确定模块确定的所述勘误区块头信息,生成所述目标区块对应的勘误区块;
连接模块,用于将所述区块生成模块生成的所述勘误区块连接到预设的勘误区块链上。
8.根据权利要求7所述的区块链勘误装置,其特征在于,
所述确定模块,包括:判断子模块、第一确定子模块以及第二确定子模块;
所述判断子模块,用于判断所述勘误区块链中是否仅存在勘误创世块;如果是,触发所述第一确定子模块;否则,触发所述第二确定子模块;
所述第一确定子模块,用于在所述判断子模块的触发下,将所述勘误创世块的区块头中的信息以及所述目标区块的区块头中的信息确定为所述勘误区块头信息;
所述第二确定子模块,用于在所述判断子模块的触发下,在所述勘误区块链已存在的勘误区块中,确定位于最末位的勘误区块;将所述位于最末位的勘误区块的区块头中的信息以及所述目标区块的区块头中的信息确定为所述勘误区块头信息;
和/或,
所述区块生成模块,包括:区块体生成子模块、区块头生成子模块以及区块生成子模块;
所述区块体生成子模块,用于利用所述勘误记录生成勘误区块体;
所述区块头生成子模块,用于利用所述勘误记录以及所述勘误区块头信息,生成勘误区块头;
所述区块生成子模块,用于利用所述区块体生成子模块生成的所述勘误区块体以及所述区块头生成子模块生成的所述勘误区块头生成所述勘误区块。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至权利要求6中任意一项所述的区块链勘误方法。
10.一种电子设备,其特征在于,所述电子设备中包括处理器、存储器和总线;所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行权利要求1至权利要求6中任意一项所述的区块链勘误方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810636232.4A CN109101526A (zh) | 2018-06-20 | 2018-06-20 | 一种区块链勘误方法及装置、存储介质、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810636232.4A CN109101526A (zh) | 2018-06-20 | 2018-06-20 | 一种区块链勘误方法及装置、存储介质、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109101526A true CN109101526A (zh) | 2018-12-28 |
Family
ID=64844872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810636232.4A Pending CN109101526A (zh) | 2018-06-20 | 2018-06-20 | 一种区块链勘误方法及装置、存储介质、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109101526A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391291A (zh) * | 2017-03-24 | 2017-11-24 | 北京瑞卓喜投科技发展有限公司 | 修改区块链即有区块体数据的区块链勘误方法及系统 |
CN107423163A (zh) * | 2017-03-24 | 2017-12-01 | 北京瑞卓喜投科技发展有限公司 | 整体串行增加区块的区块链的勘误方法及系统 |
CN107426293A (zh) * | 2017-03-24 | 2017-12-01 | 北京瑞卓喜投科技发展有限公司 | 单个串行增加区块的区块链的勘误方法及系统 |
CN107769925A (zh) * | 2017-09-15 | 2018-03-06 | 山东大学 | 基于区块链的公钥基础设施系统及其证书管理方法 |
-
2018
- 2018-06-20 CN CN201810636232.4A patent/CN109101526A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391291A (zh) * | 2017-03-24 | 2017-11-24 | 北京瑞卓喜投科技发展有限公司 | 修改区块链即有区块体数据的区块链勘误方法及系统 |
CN107423163A (zh) * | 2017-03-24 | 2017-12-01 | 北京瑞卓喜投科技发展有限公司 | 整体串行增加区块的区块链的勘误方法及系统 |
CN107426293A (zh) * | 2017-03-24 | 2017-12-01 | 北京瑞卓喜投科技发展有限公司 | 单个串行增加区块的区块链的勘误方法及系统 |
CN107769925A (zh) * | 2017-09-15 | 2018-03-06 | 山东大学 | 基于区块链的公钥基础设施系统及其证书管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110535660A (zh) | 一种基于区块链的取证服务系统 | |
CN110032571A (zh) | 业务流程处理方法、装置、存储介质及计算设备 | |
CN103312549B (zh) | 一种事务管理方法及装置和系统 | |
CN108768657A (zh) | 一种基于区块链平台的数字证书颁发系统及方法 | |
CN109543455A (zh) | 一种区块链的数据归档方法及装置 | |
CN108446976B (zh) | 一种公积金转移方法、计算机可读存储介质及终端设备 | |
CN109800248A (zh) | 用于区块链网络的数字内容溯源和记录方法、存储介质、计算设备 | |
CN106534261A (zh) | 数据写入方法、装置及系统 | |
WO2022206454A1 (zh) | 提供跨链消息的方法和装置 | |
CN110597835B (zh) | 一种基于区块链的交易数据删除方法及装置 | |
CN109831540A (zh) | 分布式存储方法、装置、电子设备及存储介质 | |
CN106302559A (zh) | 一种数据复制方法和设备 | |
CN106126374A (zh) | 数据写入方法、数据读取方法及装置 | |
CN110413376A (zh) | 一种虚拟机管理usb设备的方法、设备以及存储介质 | |
CN111866038A (zh) | 基于异构多副本的分布式存储动态防御系统及方法 | |
CN109656886A (zh) | 基于键值对的文件系统实现方法、装置、设备和存储介质 | |
WO2022206431A1 (zh) | 查询Fabric区块链账本数据的方法和装置 | |
CN108881261A (zh) | 一种容器环境下基于区块链技术的服务认证方法及系统 | |
WO2022206439A1 (zh) | 提供跨链消息的方法和装置 | |
CN111861481A (zh) | 一种区块链对账方法和系统 | |
CN110796549A (zh) | 交易方法、设备和存储介质 | |
CN109101526A (zh) | 一种区块链勘误方法及装置、存储介质、电子设备 | |
CN109783462A (zh) | 一种基于分布式文件系统的数据访问方法和装置 | |
WO2016023407A1 (zh) | 一种实现图像的滤镜效果的方法、装置及服务器 | |
CN106804056A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181228 |