CN109033886A - 一种区块链勘误方法及装置、存储介质、电子设备 - Google Patents
一种区块链勘误方法及装置、存储介质、电子设备 Download PDFInfo
- Publication number
- CN109033886A CN109033886A CN201810637353.0A CN201810637353A CN109033886A CN 109033886 A CN109033886 A CN 109033886A CN 201810637353 A CN201810637353 A CN 201810637353A CN 109033886 A CN109033886 A CN 109033886A
- Authority
- CN
- China
- Prior art keywords
- block
- corrigenda
- target
- data
- information
- 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示出了本发明一个实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更加详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
如图1所示,本发明实施例提供了一种区块链勘误方法,该区块链勘误方法可以包括:
步骤101:在接收到针对区块链中的任一目标区块的勘误请求时,利用所述勘误请求携带的勘误数据对所述目标区块进行勘误,生成勘误记录;
步骤102:确定勘误区块头信息;
步骤103:利用所述勘误记录以及所述勘误区块头信息,生成所述目标区块对应的勘误区块;
步骤104:连接所述目标区块和所述勘误区块。
根据图1所示的实施例,首先在接收到针对区块链中的任一目标区块的勘误请求时,利用该勘误请求携带的勘误数据对目标区块进行勘误,生成勘误记录。然后确定出勘误区块头信息,并利用勘误记录以及勘误区块头信息生成目标区块对应的勘误区块。最后将生成的勘误区块与目标区块连接。通过上述可知,在对区块链中的任一目标区块进行勘误时,生成该目标区块对应的勘误区块,并将勘误区块与目标区块连接。由于对目标区块的勘误记录以勘误区块的形式存在,且该勘误区块与目标区块连接。因此,本发明实施例提供的方案可以降低勘误记录被篡改的概率。
在本发明一个实施例中,上述图1所示流程图中所涉及的勘误请求中可以携带但不限于勘误数据以及目标区块的位置信息。根据目标区块的位置信息可以定位到目标区块。
在本实施例中,举例说明:如图2所示,勘误请求中包括勘误数据A以及区块203的位置信息,则可以根据区块203的位置信息在区块链中快速的定位到目标区块“区块203”。并可以根据勘误数据A对区块203中于勘误数据A对应的原始数据进行勘误。
在本发明一个实施例中,上述图1所示流程图中的步骤101中所涉及的利用所述勘误请求携带的勘误数据对所述目标区块进行勘误,生成勘误记录,可以包括:
在目标区块中查找与勘误数据对应的原始数据;
确定勘误数据以及原始数据之间是否存在差异;
如果是,生成勘误记录。其中,勘误记录中可以包括但不限于勘误数据、目标区块中与所述勘误数据对应的原始数据、原始数据在目标区块中的位置信息;
否则,不生成勘误记录,说明目标区块正常,不需要勘误。
在本发明一个实施例中,上述图1所示流程图中的步骤102确定勘误区块头信息,可以包括:
判断所述目标区块是否已存在对应的勘误区块,其中,所述目标区块已存在的勘误区块按照生成的时间顺序依次相连,且第一个生成的勘误区块与所述目标区块相连;
如果是,在已存在的勘误区块中,确定位于最末位的勘误区块;并将所述最末位的勘误区块的区块头中的信息确定为所述勘误区块头信息;
否则,将所述目标区块的区块头中的信息确定为所述勘误区块头信息。
在本实施例中,举例说明:存在如图2所示的区块链。其中,区块链中包括有5个区块分别为区块201、区块202、区块203、区块204以及区块205。接收到了针对区块203的勘误请求,则区块203为目标区块。从图2中可以看出区块203已存在对应的勘误区块301和勘误区块302。其中,勘误区块301和勘误区块302按照生成的时间顺序,勘误区块301与区块203相连,勘误区块302与勘误区块301相连。可见勘误区块302为位于最末位的勘误区块,则将勘误区块302的区块头中的信息确定为勘误区块头信息。比如,勘误区块302的区块头中的信息包括哈希数据以及区块高度。
在本实施例中,举例说明:如图2所示,接收到了针对区块204的勘误请求,则区块204为目标区块。从图2中可以看出区块204不存在对应的勘误区块。则将区块204的区块头中的信息确定为勘误区块头信息。比如,区块204的区块头中的信息包括哈希数据以及区块高度。
根据上述实施例,在目标区块存在勘误区块时,将最末位的勘误区块的区块头中的信息确定为勘误区块头信息。在目标区块不存在勘误区块时,将目标区块的区块头中的信息确定为勘误区块头信息。
在本发明一个实施例中,上述图1所示流程图中的步骤103利用所述勘误记录以及所述勘误区块头信息,生成所述目标区块对应的勘误区块,可以包括:
A1:利用所述勘误记录生成勘误区块体;
A2:利用所述勘误记录以及所述勘误区块头信息,生成勘误区块头;
A3:利用所述勘误区块体以及所述勘误区块头生成所述勘误区块。
在本实施例中,步骤A1利用所述勘误记录生成勘误区块体可以包括:构建区块体框架,将勘误记录中包括的勘误数据、目标区块中与勘误数据对应的原始数据、原始数据在所述目标区块中的位置信息以设定的格式写入到区块体框架中形成勘误区块体。
在本实施例中,在上述图1所示流程图中所涉及的勘误记录包括勘误数据、所述目标区块中与所述勘误数据对应的原始数据、所述原始数据在所述目标区块中的位置信息时,步骤A2利用所述勘误记录以及所述勘误区块头信息,生成勘误区块头,可以包括:利用所述勘误数据、所述目标区块中与所述勘误数据对应的原始数据、所述原始数据在所述目标区块中的位置信息以及所述勘误区块头信息生成所述勘误区块哈希值;根据所述勘误区块头信息生成勘误区块高度;利用所述勘误区块哈希值和所述勘误区块高度生成所述勘误区块头。
在本实施例中,可以采用预设的哈希算法利用勘误数据、目标区块中与勘误数据对应的原始数据、原始数据在目标区块中的位置信息以及勘误区块头信息生成勘误区块以及勘误区块头信息(包括哈希值以及区块高度)进行哈希运算,生成勘误区块的勘误区块哈希值。
在本实施例中,勘误区块高度中包括区块标识。在勘误区块头信息为目标区块的区块头中的信息时,该勘误区块头信息中包括目标区块的区块标识。为了和目标区块的区块标识进行区分,生成的勘误区块高度中包括的标识要与勘误区块头信息中的区块标识有区别,以便可以通过勘误区块高度快速的识别出该区块为勘误区块,并不是原有区块链中的区块。
在本实施例中,在勘误区块头信息为已存在的勘误区块的区块头中的信息时,该勘误区块头信息中包括已存在的勘误区块的区块标识。则为了分别出勘误次数,生成的勘误区块高度中包括的标识要与勘误区块头信息中的区块标识有区别,以便可以通过勘误区块高度快速的识别出该勘误区块为针对目标区块进行的第几次勘误。
根据上述实施例,由于利用勘误记录以及勘误区块头信息生成勘误区块体以及勘误区块头,因此,利用勘误区块体以及勘误区块头生成的勘误区块不仅可以准确的反应出勘误记录,而且可以明确的定位出勘误区块的位置。
在本发明一个实施例中,上述图1所示流程图中的步骤104连接所述目标区块和所述勘误区块,可以包括:
判断所述目标区块是否已存在对应的勘误区块,其中,所述目标区块已存在的勘误区块按照生成的时间顺序依次相连,且第一个生成的勘误区块与所述目标区块相连;
如果是,在已存在的勘误区块中,确定位于最末位的勘误区块;将所述勘误区块与所述位于最末位的勘误区块连接;
否则,将所述勘误区块与所述目标区块连接。
在本实施例中,举例说明:存在如图2所示的区块链。其中,区块链中包括有5个区块分别为区块201、区块202、区块203、区块204以及区块205。区块203为目标区块。生成了目标区块对应的勘误区块“勘误区块A”。从图2中可以看出区块203已存在对应的勘误区块301和勘误区块302,且勘误区块302为位于最末位的勘误区块。则将勘误区块A与勘误区块302连接。
在本实施例中,举例说明:区块204为目标区块。生成了目标区块对应的勘误区块“勘误区块B”。从图2中可以看出区块204没有已存在的勘误区块。则将勘误区块B直接与区块204连接。
根据上述实施例,在目标区块存在勘误区块时,将勘误区块与位于最末位的勘误区块连接。在目标区块不存在勘误区块时,将勘误区块与目标区块连接。根据目标区块是否已存在对应的勘误区块的情况,对勘误区块进行区别连接处理,因此可以清晰有序的对各次勘误进行记录。
在本发明一个实施例中,所述区块链勘误方法还可以进一步包括如下步骤:
所述区块链勘误方法,进一步包括:
在接收到针对所述区块链中的任一待查询区块的数据查询请求时,判断所述待查询区块是否存在相连的勘误区块;
如果存在,则从位于最末位的勘误区块开始,在所述勘误区块中查询与所述数据查询请求对应的数据;当所述勘误区块中不存在与所述数据查询请求对应的数据时,在所述待查询区块中查询与所述数据查询请求对应的数据;
否则,在所述待查询区块中查询与所述数据查询请求对应的数据。
在本实施例中,数据查询请求中可以包括待查询区块的位置信息以及待查询数据的描述。在接收到数据查询请求时可以根据待查询区块的位置信息快速的定位到待查询区块,并可以根据待查询数据在待查询区块对应的勘误区块或待查询区块中查询数据查询请求对应的数据。
在本实施例中,举例说明:存在如图2所示的区块链。其中,区块链中包括有5个区块分别为区块201、区块202、区块203、区块204以及区块205。区块203为待查询区块。从图2中可以看出区块203已存在对应的勘误区块301、勘误区块302以及勘误区块A。则从位于最末位的勘误区块A开始,依次在勘误区块A、勘误区块302以及勘误区块301中查询与数据查询请求对应的数据。在查询过程中比如在勘误区块302中就已经查询到与数据查询请求对应的数据时,便不用继续在勘误区块301中继续查询。如果在在勘误区块A、勘误区块302以及勘误区块301均未查询到数据查询请求对应的数据,说明数据查询请求数据并为进行过勘误操作,则在区块203中查询数据查询请求对应的数据。
举例说明:如图2所示,区块204为待查询区块。从图2中可以看出区块204不存在勘误区块,说明区块204并未进行过勘误操作。因此,直接在区块204中查询与数据查询请求对应的数据。
根据上述实施例,在待查询区块存在勘误区块时,从最末位的勘误区块开始查询与数据查询请求对应的数据。因此,在数据查询请求对应的数据为勘误过的数据时可以获取到勘误后的最新数据,以保证可以准确的查询到正确的数据。
下面以如图2所示的区块链为例,对区块链勘误方法进行说明。如图3所示,该区块链勘误方法可以包括:
步骤401:判断是否接收到针对区块链中的任一目标区块的勘误请求,如果是,执行步骤402;否则,继续执行本步骤。
在本步骤中,接收到了针对于区块203的勘误请求。该勘误请求中包括勘误数据A以及区块203的位置信息。
步骤402:在接收到针对区块链中的任一目标区块的勘误请求时,利用勘误请求携带的勘误数据对目标区块进行勘误,生成勘误记录。
在本步骤中,利用勘误请求中包括的勘误数据A对区块203进行勘误,并生成勘误记录。其中,勘误记录中包括勘误数据A、区块203中与勘误数据A对应的原始数据A、原始数据A在区块203中的位置信息。
步骤403:判断目标区块是否已存在对应的勘误区块,其中,目标区块已存在的勘误区块按照生成的时间顺序依次相连,且第一个生成的勘误区块与所述目标区块相连;如果是,执行步骤404;否则,执行步骤405。
在本步骤中,判断出区块203已存在对应的勘误区块,执行步骤404。
步骤404:在已存在的勘误区块中,确定位于最末位的勘误区块;并将最末位的勘误区块的区块头中的信息确定为勘误区块头信息,并执行步骤406。
在本步骤中,从图2中可以看出区块203已存在对应的勘误区块301和勘误区块302。其中,勘误区块301和勘误区块302按照生成的时间顺序,勘误区块301与区块203相连,勘误区块302与勘误区块301相连。可见勘误区块302为位于最末位的勘误区块,则将勘误区块302的区块头中的信息确定为勘误区块头信息。
步骤405:将目标区块的区块头中的信息确定为勘误区块头信息,并执行步骤406。
步骤406:利用勘误记录生成勘误区块体。
在本步骤中,利用勘误记录中包括勘误数据A、区块203中与勘误数据A对应的原始数据A、原始数据A在区块203中的位置信息生成勘误区块体。
步骤407:利用勘误数据、目标区块中与勘误数据对应的原始数据、原始数据在目标区块中的位置信息以及勘误区块头信息生成勘误区块哈希值。
在本步骤中,利用勘误记录中包括勘误数据A、区块203中与勘误数据A对应的原始数据A、原始数据A在区块203中的位置信息以及勘误区块头信息“勘误区块302的区块头中的信息”,采用预设的哈希算法进行哈希运算,生成勘误区块哈希值。
步骤408:根据勘误区块头信息生成勘误区块高度。
在本步骤中,在勘误区块头信息为已存在的勘误区块的区块头中的信息时,该勘误区块头信息中包括已存在的勘误区块的区块标识。则为了分别出勘误次数,生成的勘误区块高度中包括的标识要与勘误区块头信息中的区块标识有区别,以便可以通过勘误区块高度快速的识别出该勘误区块为针对目标区块进行的第几次勘误。比如,在本实施例中为第三次勘误,则区块高度为“勘误3”。
步骤409:利用勘误区块哈希值和勘误区块高度生成勘误区块头。
步骤410:利用勘误区块体以及勘误区块头生成勘误区块。
在本步骤中,利用勘误区块体以及勘误区块头生成勘误区块A。
步骤411:判断目标区块是否已存在对应的勘误区块,其中,目标区块已存在的勘误区块按照生成的时间顺序依次相连,且第一个生成的勘误区块与所述目标区块相连;如果是,执行步骤412;否则,执行步骤413
在本步骤中,区块203已存在对应的勘误区块,执行步骤412。
步骤412:在已存在的勘误区块中,确定位于最末位的勘误区块;将所述勘误区块与所述位于最末位的勘误区块连接。
在本步骤中,从图2中可以看出区块203已存在对应的勘误区块301和勘误区块302,且勘误区块302为位于最末位的勘误区块。则将勘误区块A与勘误区块302连接。
步骤413:将勘误区块与目标区块连接。
如图4所示,本发明实施例提供了一种区块链勘误装置,该区块链勘误装置可以包括:
记录生成模块501,用于在接收到针对区块链中的任一目标区块的勘误请求时,利用所述勘误请求携带的勘误数据对所述目标区块进行勘误,生成勘误记录;
确定模块502,用于确定勘误区块头信息;
区块生成模块503,用于利用所述记录生成模块501生成的所述勘误记录以及所述确定模块502确定的所述勘误区块头信息,生成所述目标区块对应的勘误区块;
连接模块504,用于连接所述目标区块和所述区块生成模块503生成的所述勘误区块。
根据图4所示的实施例,首先记录生成模块在接收到针对区块链中的任一目标区块的勘误请求时,利用该勘误请求携带的勘误数据对目标区块进行勘误,生成勘误记录。然后确定模块确定出勘误区块头信息,区块生成模块利用勘误记录以及勘误区块头信息生成目标区块对应的勘误区块。最后连接模块将生成的勘误区块与目标区块连接。通过上述可知,在对区块链中的任一目标区块进行勘误时,生成该目标区块对应的勘误区块,并将勘误区块与目标区块连接。由于对目标区块的勘误记录以勘误区块的形式存在,且该勘误区块与目标区块连接。因此,本发明实施例提供的方案可以降低勘误记录被篡改的概率。
在本发明一个实施例中,如图5所示,所述确定模块502可以包括判断子模块5021、第一确定子模块5022以及第二确定子模块5023;
所述判断子模块5021,用于判断所述目标区块是否已存在对应的勘误区块,其中,所述目标区块已存在的勘误区块按照生成的时间顺序依次相连,且第一个生成的勘误区块与所述目标区块相连;如果是,触发所述第一确定子模块5022;否则,触发所述第二确定子模块5023;
所述第一确定子模块5022,用于在所述判断子模块5021的触发下,在已存在的勘误区块中,确定位于最末位的勘误区块;并将所述最末位的勘误区块的区块头中的信息确定为所述勘误区块头信息;
所述第二确定子模块5023,用于在所述判断子模块5021的触发下,将所述目标区块的区块头中的信息确定为所述勘误区块头信息。
在本发明一个实施例中,如图6所示,所述区块生成模块503可以包括区块体生成子模块5031、区块头生成子模块5032以及区块生成子模块5033;
所述区块体生成子模块5031,用于利用所述勘误记录生成勘误区块体;
所述区块头生成子模块5032,用于利用所述勘误记录以及所述勘误区块头信息,生成勘误区块头;
所述区块生成子模块5033,用于利用所述区块体生成子模块5031生成的所述勘误区块体以及所述区块头生成子模块5032生成的所述勘误区块头生成所述勘误区块。
在本发明一个实施例中,在所述勘误记录包括勘误数据、所述目标区块中与所述勘误数据对应的原始数据、所述原始数据在所述目标区块中的位置信息时,
所述区块头生成子模块5032,用于利用所述勘误数据、所述目标区块中与所述勘误数据对应的原始数据、所述原始数据在所述目标区块中的位置信息以及所述勘误区块头信息生成所述勘误区块哈希值;根据所述勘误区块头信息生成勘误区块高度;利用所述勘误区块哈希值和所述勘误区块高度生成所述勘误区块头。
在本发明一个实施例中,所述连接模块504,用于判断所述目标区块是否已存在对应的勘误区块,其中,所述目标区块已存在的勘误区块按照生成的时间顺序依次相连,且第一个生成的勘误区块与所述目标区块相连;如果是,在已存在的勘误区块中,确定位于最末位的勘误区块;将所述勘误区块与所述位于最末位的勘误区块连接;否则,将所述勘误区块与所述目标区块连接。
在本发明一个实施例中,如图7所示,所述区块链勘误方法,进一步包括:查询模块505;
所述查询模块505,用于在接收到针对所述区块链中的任一待查询区块的数据查询请求时,判断所述待查询区块是否存在相连的勘误区块;如果存在,则从位于最末位的勘误区块开始,在所述勘误区块中查询与所述数据查询请求对应的数据;当所述勘误区块中不存在与所述数据查询请求对应的数据时,在所述待查询区块中查询与所述数据查询请求对应的数据;否则,在所述待查询区块中查询与所述数据查询请求对应的数据。
在本发明一个实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述中任意一项所述的区块链勘误方法。
在本发明一个实施例提供了一种电子设备,如图8所示,所述电子设备中包括处理器601、存储器602和总线603;所述处理器601、所述存储器602通过所述总线603完成相互间的通信;所述处理器601用于调用所述存储器602中的程序指令,以执行上述中任意一项所述的区块链勘误方法。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明各个实施例至少具有如下有益效果:
1、在本发明实施例中,首先在接收到针对区块链中的任一目标区块的勘误请求时,利用该勘误请求携带的勘误数据对目标区块进行勘误,生成勘误记录。然后确定出勘误区块头信息,并利用勘误记录以及勘误区块头信息生成目标区块对应的勘误区块。最后将生成的勘误区块与目标区块连接。通过上述可知,在对区块链中的任一目标区块进行勘误时,生成该目标区块对应的勘误区块,并将勘误区块与目标区块连接。由于对目标区块的勘误记录以勘误区块的形式存在,且该勘误区块与目标区块连接。因此,本发明实施例提供的方案可以降低勘误记录被篡改的概率。
2、在本发明实施例中,在目标区块存在勘误区块时,将最末位的勘误区块的区块头中的信息确定为勘误区块头信息。在目标区块不存在勘误区块时,将目标区块的区块头中的信息确定为勘误区块头信息。
3、在本发明实施例中,由于利用勘误记录以及勘误区块头信息生成勘误区块体以及勘误区块头,因此,利用勘误区块体以及勘误区块头生成的勘误区块不仅可以准确的反应出勘误记录,而且可以明确的定位出勘误区块的位置。
4、在本发明实施例中,在目标区块存在勘误区块时,将勘误区块与位于最末位的勘误区块连接。在目标区块不存在勘误区块时,将勘误区块与目标区块连接。根据目标区块是否已存在对应的勘误区块的情况,对勘误区块进行区别连接处理,因此可以清晰有序的对各次勘误进行记录。
5、在本发明实施例中,在待查询区块存在勘误区块时,从最末位的勘误区块开始查询与数据查询请求对应的数据。因此,在数据查询请求对应的数据为勘误过的数据时可以获取到勘误后的最新数据,以保证可以准确的查询到正确的数据。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种区块链勘误方法,其特征在于,包括:
在接收到针对区块链中的任一目标区块的勘误请求时,利用所述勘误请求携带的勘误数据对所述目标区块进行勘误,生成勘误记录;
确定勘误区块头信息;
利用所述勘误记录以及所述勘误区块头信息,生成所述目标区块对应的勘误区块;
连接所述目标区块和所述勘误区块。
2.根据权利要求1所述的区块链勘误方法,其特征在于,
所述确定勘误区块头信息,包括:
判断所述目标区块是否已存在对应的勘误区块,其中,所述目标区块已存在的勘误区块按照生成的时间顺序依次相连,且第一个生成的勘误区块与所述目标区块相连;
如果是,在已存在的勘误区块中,确定位于最末位的勘误区块;并将所述最末位的勘误区块的区块头中的信息确定为所述勘误区块头信息;
否则,将所述目标区块的区块头中的信息确定为所述勘误区块头信息。
3.根据权利要求1所述的区块链勘误方法,其特征在于,
所述利用所述勘误记录以及所述勘误区块头信息,生成所述目标区块对应的勘误区块,包括:
利用所述勘误记录生成勘误区块体;
利用所述勘误记录以及所述勘误区块头信息,生成勘误区块头;
利用所述勘误区块体以及所述勘误区块头生成所述勘误区块。
4.根据权利要求3所述的区块链勘误方法,其特征在于,
所述勘误记录包括勘误数据、所述目标区块中与所述勘误数据对应的原始数据、所述原始数据在所述目标区块中的位置信息;
所述利用所述勘误记录以及所述勘误区块头信息,生成勘误区块头,包括:
利用所述勘误数据、所述目标区块中与所述勘误数据对应的原始数据、所述原始数据在所述目标区块中的位置信息以及所述勘误区块头信息生成所述勘误区块哈希值;
根据所述勘误区块头信息生成勘误区块高度;
利用所述勘误区块哈希值和所述勘误区块高度生成所述勘误区块头。
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 |
---|---|---|---|
CN201810637353.0A CN109033886A (zh) | 2018-06-20 | 2018-06-20 | 一种区块链勘误方法及装置、存储介质、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810637353.0A CN109033886A (zh) | 2018-06-20 | 2018-06-20 | 一种区块链勘误方法及装置、存储介质、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109033886A true CN109033886A (zh) | 2018-12-18 |
Family
ID=64609838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810637353.0A Pending CN109033886A (zh) | 2018-06-20 | 2018-06-20 | 一种区块链勘误方法及装置、存储介质、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109033886A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110598218A (zh) * | 2019-09-24 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种信息勘误的方法及相关装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391291A (zh) * | 2017-03-24 | 2017-11-24 | 北京瑞卓喜投科技发展有限公司 | 修改区块链即有区块体数据的区块链勘误方法及*** |
CN107391557A (zh) * | 2017-03-24 | 2017-11-24 | 北京瑞卓喜投科技发展有限公司 | 针对设置链外勘误表的区块链串行查询方法及*** |
CN107426293A (zh) * | 2017-03-24 | 2017-12-01 | 北京瑞卓喜投科技发展有限公司 | 单个串行增加区块的区块链的勘误方法及*** |
CN107423163A (zh) * | 2017-03-24 | 2017-12-01 | 北京瑞卓喜投科技发展有限公司 | 整体串行增加区块的区块链的勘误方法及*** |
CN107451178A (zh) * | 2017-03-24 | 2017-12-08 | 北京瑞卓喜投科技发展有限公司 | 保持区块链即有区块体数据的区块链勘误方法及*** |
CN107451011A (zh) * | 2017-03-24 | 2017-12-08 | 北京瑞卓喜投科技发展有限公司 | 并行增加区块的区块链的勘误方法及*** |
US20170364908A1 (en) * | 2016-06-20 | 2017-12-21 | Intel Corporation | Technologies for device commissioning |
CN107807951A (zh) * | 2017-09-18 | 2018-03-16 | 联动优势科技有限公司 | 一种区块链生成方法、数据验证方法、节点及*** |
-
2018
- 2018-06-20 CN CN201810637353.0A patent/CN109033886A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170364908A1 (en) * | 2016-06-20 | 2017-12-21 | Intel Corporation | Technologies for device commissioning |
CN107391291A (zh) * | 2017-03-24 | 2017-11-24 | 北京瑞卓喜投科技发展有限公司 | 修改区块链即有区块体数据的区块链勘误方法及*** |
CN107391557A (zh) * | 2017-03-24 | 2017-11-24 | 北京瑞卓喜投科技发展有限公司 | 针对设置链外勘误表的区块链串行查询方法及*** |
CN107426293A (zh) * | 2017-03-24 | 2017-12-01 | 北京瑞卓喜投科技发展有限公司 | 单个串行增加区块的区块链的勘误方法及*** |
CN107423163A (zh) * | 2017-03-24 | 2017-12-01 | 北京瑞卓喜投科技发展有限公司 | 整体串行增加区块的区块链的勘误方法及*** |
CN107451178A (zh) * | 2017-03-24 | 2017-12-08 | 北京瑞卓喜投科技发展有限公司 | 保持区块链即有区块体数据的区块链勘误方法及*** |
CN107451011A (zh) * | 2017-03-24 | 2017-12-08 | 北京瑞卓喜投科技发展有限公司 | 并行增加区块的区块链的勘误方法及*** |
CN107807951A (zh) * | 2017-09-18 | 2018-03-16 | 联动优势科技有限公司 | 一种区块链生成方法、数据验证方法、节点及*** |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110598218A (zh) * | 2019-09-24 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种信息勘误的方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109683869A (zh) | Dapp的开发方法和装置 | |
CN100517313C (zh) | 用于验证迁移文件的元数据的方法和*** | |
WO2021017422A1 (zh) | 一种块链式账本中的索引创建方法、装置及设备 | |
CN112000730B (zh) | 基于区块链的溯源信息写入、溯源信息验证的方法、*** | |
CN106155775B (zh) | 消息处理方法、设备及*** | |
TWI425371B (zh) | 規範管理方法和系統 | |
CN104363072A (zh) | 一种错误信息传递转义方法、装置和*** | |
CN107580032B (zh) | 数据处理方法、装置及设备 | |
CN110175833B (zh) | 一种绑定银行卡信息的计算机装置、方法、***及介质 | |
CN107295503A (zh) | 确定移动终端接入方式的方法、存储介质及移动终端 | |
CN105141685A (zh) | 文件读写***及其元数据存储器和文件读写方法和装置 | |
CN109033886A (zh) | 一种区块链勘误方法及装置、存储介质、电子设备 | |
CN105812722A (zh) | 一种粮食运输监控方法和*** | |
CN110738335A (zh) | 测试设备管理***及方法 | |
WO2022002283A3 (zh) | 耗材芯片和耗材芯片的响应方法、耗材盒及存储介质 | |
CN103595573B (zh) | 一种策略规则的下发方法及装置 | |
CN108388930A (zh) | 验证合同备件图片正确性与完整性的方法及装置 | |
CN115687276B (zh) | 一种文件处理方法、装置、电子设备及存储介质 | |
CN105988785A (zh) | 一种rpc服务开发方法及装置 | |
CN109101526A (zh) | 一种区块链勘误方法及装置、存储介质、电子设备 | |
CN108920563B (zh) | 一种数据库切换方法及装置 | |
CN110413526A (zh) | 一种请求处理方法、装置、服务器及设备 | |
CN105684059A (zh) | 智能交通的违章识别方法及*** | |
CN105653695A (zh) | 一种并发数据请求处理方法及装置 | |
CN109150986A (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 |
Application publication date: 20181218 |
|
RJ01 | Rejection of invention patent application after publication |