CN109993526B - 区块链校验方法、处理节点及存储介质 - Google Patents
区块链校验方法、处理节点及存储介质 Download PDFInfo
- Publication number
- CN109993526B CN109993526B CN201810000708.5A CN201810000708A CN109993526B CN 109993526 B CN109993526 B CN 109993526B CN 201810000708 A CN201810000708 A CN 201810000708A CN 109993526 B CN109993526 B CN 109993526B
- Authority
- CN
- China
- Prior art keywords
- record
- data
- index
- data record
- xth
- 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.)
- Active
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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3821—Electronic credentials
- G06Q20/38215—Use of certificates or encrypted proofs of transaction rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种区块链校验方法、处理节点及存储介质。所述方法包括:当满足预设条件时,获取索引区块链的一条索引记录,其中,所述索引记录包括:第n标识及第x标识;其中,所述第n标识为数据区块链第n数据记录的标识;所述第x标识为所述数据区块链第x数据记录的标识;所述第x数据记录为:在第n数据记录之前产生的位于所述数据区块链中同一数据链条中的数据记录;n和x均为正整数;根据所述索引记录,校验所述数据链条中所述第n数据记录到所述第x数据记录中的每一条数据记录。
Description
技术领域
本发明涉及信息技术领域,尤其涉及一种区块链校验方法、处理节点及存储介质。
背景技术
区块链是一种分布式的数据记录方式。区块链技术涉及密码学、点对点(P2P)网络等核心技术。从应用上看,区块链可以用于支付交易、存证鉴权、跟踪溯源等用途。从链的形态上看,区块链包括公有链、私有链和联盟链等应用形态。尽管区块链特点繁多,但从数据存储形态上看,区块链主要以链式结构保存数据。
图2为一个典型的区块链。区块链的最大优点在于分布式的安全性。除了第一个区块,每个区块包含了前一个区块的哈希值(Hash),并以此确定前一个区块数据的一致性。任何对链条上中间区块的篡改将导致链条断裂,进而导致被篡改的数据被抛弃。另一方面,由于区块的产生是有代价的,因此单个攻击者无法相对其他所有用户以更快的速度产生区块,因此企图一次替换链上多个区块是极其困难的。
由于区块以链式连接在一起,数据也被分割在多个区块中,从而数据记录也必须以链式结构连接起来。如图3所示,最后一条数据记录有两个前序记录,每个前序记录又各自有一个前序记录,直至最开始的记录。
在很多应用场合中,例如交易、溯源等业务场景下,需要频繁校验这些链上的数据记录。数据记录的校验需要从最后一条数据记录开始,通过前一条记录的指针不断校验前一条数据记录直至最开始一条为止。
随着区块链越来越长,区块链中包括的区块越来越多,这样每新生成一个区块,则需要检验的区块的个数越来越多。
如图4所示,当数据记录4加入时,为了校验记录4的合法性,需要连续校验记录3、记录2、记录1这三个记录。
当数据记录5加入时,为了校验记录5的合法性,需要连续校验记录4、记录3、记录2及记录1这四个记录。
显然随着区块链越来越长,新生成的区块校验越来越复杂,所消耗的时间越来越长,用于校验的网络资源越来越多。
发明内容
有鉴于此,本发明实施例期望提供一种区块链校验方法、处理节点及存储介质,至少部分解决上述问题。
为达到上述目的,本发明的技术方案是这样实现的:
第一方面,本发明实施例提供一种数据记录校验方法,包括:
获取索引区块链的一条索引记录,其中,所述索引记录包括:第n标识及第x标识;其中,所述第n标识为数据区块链的第n数据记录的标识;所述第x标识为所述数据区块链的第x数据记录的标识;所述第x数据记录为:在第n数据记录之前产生的位于所述数据区块链中同一数据链条中的数据记录;n和x均为正整数;
根据所述索引记录,校验所述数据链条中所述第n数据记录到所述第x数据记录中的数据记录。
本发明实施第二方面提供一种处理节点,包括:
获取单元,用于获取索引区块链的一条索引记录,其中,所述索引记录包括:第n标识及第x标识;其中,所述第n标识为所述数据区块链的第n数据记录的标识;所述第x标识为所述数据区块链的第x数据记录的标识;所述第x数据记录为:在第n数据记录之前产生的位于所述数据区块链中同一数据链条中的数据记录;n和x均为正整数;
数据记录校验单元,用于根据所述索引记录,校验所述数据链条中所述第n数据记录到所述第x数据记录中的数据记录。
本发明实施例第三方面一种处理节点,包括:收发器、存储器、处理器及存储在所述存储器上并由所述处理器执行的计算机程序;
所述处理器分别与所述收发器及所述存储器连接,用于通过执行所述计算机程序实现上述一个或多个技术方案提供数据记录校验方法。
本发明实施例第四方面提供一种计算机存储介质,所述计算机存储介质存储有计算机程序;所述计算机程序被执行后,能够实现上述一个或多个技术方案提供数据记录校验方法。
本发明实施例提供的区块链校验方法、处理节点及存储介质,会针对数据区块链生成索引区块链,然后基于索引区块链中的索引记录对新生成的数据记录进行校验,随着随机记录越来越多,索引记录中限定了需要校验的数据记录,每一次新生成一条数据记录都需要校验该数据记录到第1条数据记录之间的素有数据记录,减少了需要校验的数据记录的条数,从而减少了数据校验量、减少了简要所消耗的资源及时间,提升了校验速率。
附图说明
图1为本发明实施例提供的一种数据记录校验方法的流程示意图;
图2为本发明实施例提供的一种区块链的结构示意图;
图3为本发明实施例提供的一种数据链条的结构示意图;
图4为本发明实施例提供的另一种数据链条的结构示意图;
图5为本发明实施例提供的再一种数据链条的结构示意图;
图6为本发明实施例提供的另一种数据记录校验方法的流程示意图;
图7为本发明实施例提供的一种索引记录与数据区块链的关联示意图;
图8为本发明实施例提供的一种索引记录与数据记录的关联示意图;
图9为本发明实施例提供的一种处理节点的结构示意图;
图10为本发明实施例提供的另一种处理节点的结构示意图;
图11为本发明实施例提供的再一种索引记录和数据记录的关联示意图;
图12为本发明实施例提供的一种索引记录的更新示意图;
图13为本发明实施例提供的一种索引记录发布流程示意图;
图14为本发明实施例提供的索引记录添加到索引区块链中的流程示意图;
图15为本发明实施例提供的一种索引表的构建示意图;
图16为本发明实施例提供的一种索引记录校验和更新的流程示意图;
图17为本发明实施例提供的另一种索引记录校验和更新的流程示意图。
具体实施方式
以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。
如图1所示,本实施例提供一种数据记录校验方法,包括:
步骤S110:获取索引区块链的一条索引记录,其中,所述索引记录包括:第n标识及第x标识;其中,所述第n标识为数据区块链的第n数据记录的标识;所述第x标识为所述数据区块链的第x数据记录的标识;所述第x数据记录为:在第n数据记录之前产生的位于所述数据区块链中同一数据链条中的数据记录;n和x均为正整数;
步骤S120:根据所述索引记录,校验所述数据链条中所述第n数据记录到所述第x数据记录中的每一条数据记录。
在一些实施例中,若所述第n数据记录开始校验反向校验到所述第x数据记录的校验均通过,确定是否将所述第n数据记录添加到所述数据区块链中。
本实施例中提供的数据记录检验方法,可为应用于区块链网络中校验节点中的处理方法。
在本实施例中,所述数据区块链和所述索引区块链均为采用区块链技术生成的链式结构的数据记录。图2所示为一种区块链的结构示意图。
在本实施例中若数据区块链中有产生一条新的数据记录,该数据记录被校验后记录到数据区块链中的数据区块中之前,需要对该条数据记录进行校验。在校验过程中通常需要追随该数据记录之前产生的所有记录。例如,比特币A再交易了一次,产生了一条新的数据记录,在将该数据记录添加到数据区块链之前,需要对比特币A之前所有的交易产生的数据记录进行校验。该比特币A的最新一次交易产生的数据记录即为前述第n数据记录,比特币A所有交易产生的数据记录形成了所述数据链条。在本发明实施例中,所述数据链条可为基于同一个交易对象的所有数据记录形成的数据链条,或是基于同一个用户的数据记录产生的数据链条。或者是根据其他规定设定的联结多条数据记录按时间先后顺序排序的多条数据记录的链条,图3和图4都是将记录在区块数据链中的有相互关联关系的数据记录拆解开来之后形成的数据链条;图3所示的为树状的数据链条;图4所示的为直线型的数据链条。
在本实施例中,在数据区块链的基础上,引入了与数据区块链上数据记录的校验相关的索引区块链。索引区块链也是基于区块链技术生成的数据。图7所示为一种数据区块链和索引区块链中索引记录的关联示意图。图8所示为一种索引记录与数据链条中数据记录的关联示意图。在图8中索引记录i分别指向了数据记录p和数据记录q,则根据索引记录i进行数据记录的校验时,仅会校验数据记录p和数据记录q之间的数据记录;显然减少了简要的数据记录的条数,减少了校验的计算量和消耗的资源。
在本实施例中,所述步骤S110可包括:满足预设条件时,获取索引区块链的一条索引记录。例如,所述满足预定条件可包括:
当发现有未创建索引记录的数据区块链需要创建索引区块链或索引技术记录时,则确定满足所述预定条件,
当所述数据区块链未验证的数据记录条数满足特定条件时,生成一条所述索引记录。
例如,当所述第n条数据记录添加到数据区块链时,记录该数据记录到索引指定结束位置处的数据记录之间校验的次数,如果校验次数等于索引指定的开始位置处的数据记录和结束位置处的数据记录之间的长度的两倍,确定满足所述特定条件,则生成一条所述索引记录,该索引记录标记的结束位置为所述第n数据记录的第n标识,该索引记录标记的开始位置为第x数据记录的第x标识。本例中x为整个数据记录的长度的一半。
具体的满足所述预设条件和所述特定条件的实现方式有很多种,不局限于上述任意一种。
在还一些实施例中,索引记录的产生时机是当数据记录链的长度大于设定值时产生。当有一条待加入到数据区块链的数据记录到来时,应该先查找该数据记录链对应的索引记录,如果有对应的索引记录就校验到索引记录指定的最后一个数据记录,否则挨个校验到最开始的数据记录。所述第n标识和所述第x标识均可为所述数据记录的ID(Identity)。
在本发明实施例中,校验所述第n+p数据,是否能够添加到所述数据区块链中的区块时,会根据对应的索引记录进行校验,仅校验对应的数据链条中的第n数据记录到第x数据记录之间的数据记录,而不用校验对应的数据链条中的第1条数据记录到第n条数据记录中所有的数据记录。例如,索引记录中x=100,n=200,假设长度100时更新索引,第201个记录到达时检验201-100范围内的数据记录,202,203……,299数据记录到达时也是校验到100,直到索引记录更新,比如更新成x=200,n=300。
在步骤S120中根据索引记录进行第n数据记录到第x数据记录的校验,可包括:
反向校验:从第n数据记录开始校验反向逐一校验到第x数据记录。
当然,在具体实现时,也可以是从第x数据记录依次校验到第n数据记录;具体的校验方式有多种,不局限于上述任意一种。图5所示的为一种反向校验的示意图,例如,若校验数据记录p+4的时候,确定出第n数据记录为数据记录p+4,第x数据记录为数据记录p+1,则反向校验会从数据记录p+4校验到数据记录p+1.
在本发明实施例中对所述数据记录的校验方式,可以根据数据记录自身记录的数据内容确定校验策略。例如,基于投票机制的校验,当有超过预定数据的网络节点(如超过半数)通过同意该校验结果时,则认为该校验通过,否则可认为校验不通过。
总之,在本实施例中可以减少需要校验的数据记录的条数,从而减少数据校验所需消耗的时间和/或计算资源,提升校验效率。
在一些实施例中,如图6所示,所述方法还包括:步骤S111:
校验所述索引记录的合法性和/或完整性;
所述步骤S120可包括步骤S121;所述步骤S121可包括:
根据通过所述合法性和/或完整性验证的所述索引记录,从所述第n数据记录开始校验反向校验到所述第x数据记录。
在本实施例中,在基于所述索引记录进行数据区块链中的数据记录的校验之前,需要先确保索引记录的合法性和完整性,以免索引记录自身的不合法和不完整导致的数据记录校验的异常。
在本实施例中,所述索引记录的合法性和完整性的校验,可以采用现有技术中任意一种数据记录的合法性验证方式。例如,校验该索引记录及其之前所有索引记录的合法性和完整性,只有当前索引区块链中所有索引记录都通过时,该数据记录的合法性和完整性才通过验证。
在本实施例中,为了简化所述索引记录的合法性验证,会从以下几个方面中的一个或多个来校验其合法性。
第一方面,所述校验所述索引记录的合法性,包括:
根据所述索引区块中的随机数进行所述索引记录的整体合法性校验,这样通过索引块的校验实现了对索引块中索引记录的校验。
生成所述索引区块的节点会生成一个随机数,并将该随机数与该索引区块中所述随机数以外的其他部分进行哈希运算,得到一个满足预设规定的哈希值,就将该随机数添加到索引区块中发布到网络中去。若其他节点接收到所述索引区块之后,会提取出该随机数,然后进行哈希运算得到哈希值,然后再判断该哈希值是否满足预设规定,若满足可认为整体合法性校验通过。例如,通过哈希运算之后的哈希值为M位的二进制比特序列,判断其是否满足预设规定可包括:判断高y1位是否为预设值;或,判断低y2位是否为预设值。所述预设值可为“0”或“1”等。在另一些实施例中,还可以采用其他算法来替代哈希算法。
第二方面,所述校验所述索引记录的合法性,包括:
根据所述索引记录中所述第n数据记录的哈希值,进行校验起始位置的合法性校验。在生成所述第n数据记录的同时,还会生成所述第n数据记录的哈希值,该哈希值可以用于确定数据校验的位置是否正确。例如,在反向校验中,该哈希值可以用于校验本次校验的起始位置的是否合法,具体如,将索引记录中的哈希值与数据区块链中对应数据记录的哈希值进行比对,若比对一致则通过第n数据记录的合法性校验。
第三方面,所述校验所述索引记录的合法性,包括:
根据所述索引记录中所述第x数据记录的哈希值,进行校验结束位置的合法性验证。此处的第x数据记录的合法性校验可以与前述的方式相同。
在一些实施例中,所述索引记录的合法性校验通过可包括:
当所述整体合法性验证、所述校验起始位置的合法性验证及所述校验结束位置的合法性验证均通过时,确定所述索引记录通过合法性验证。
在一些实施例中,所述索引记录的合法性校验,还可包括:仅进行随机数的整体合法性校验,就可认为索引记录通过合法性校验。
在还有些实施例中,可以是在校验起始位置和校验结束位置通过合法性校验时,就可认为索引记录的合法性校验通过。
在一些实施例中,所述校验所述索引记录的完整性,包括:
校验所述第x标识是否与所述数据链条中每一个所述第x数据记录一一对应;
当所述第x标识与所述数据链条中每一条所述第x数据记录一一对应,则确定完整性校验通过。
所述第x数据记录可能有多个,在所述索引记录中分别记录了所述第x数据记录的ID,在本发明实施例中所述索引记录的完整性校验,会需要核对索引记录中是否包括数据区块链中每一条所述数据记录的第x数据记录。
可选地,所述方法还包括:
当所述索引记录通过所述合法性验证和所述完整性验证之后,将所述索引记录添加到所述索引区块链中。这样的话,将索引记录添加到索引区块链中,可方便通过查询索引区块链知道每次校验的索引信息。
在一些实施例中,所述步骤S110中获取索引记录的方式有多种,以下提供两种可选方式:
可选方式一:
所述步骤S110可包括:
当所述数据区块链未创建索引记录时,生成一条所述索引记录。
可选方式二:
所述步骤S110可包括:
从区块链网络接收所述索引记录。
在本发明实施例中进行第n数据记录校验的索引记录,可以是由校验节点自己生成的,也可以是从区块链网接收到其他节点生成的索引记录。
可选方式三:
当所述数据区块链未验证的数据记录条数满足特定条件时,生成一条所述索引记录。
在一些实施例中,所述方法还包括:
生成包括索引记录的索引区块的随机数;
基于所述随机数进行所述索引区块的合法性校验;
当所述索引区块通过合法性校验时,广播所述索引区块。
这样的话,广播到区块链网络中的索引区块的块数就会减少了,从而减少了网络传输和校验所述索引块所消耗的通信资源和/或计算资源。
基于所述随机数校验所述索引区块的合法性可包括:对所述随机数进行哈希运算,得到一个哈希值,该哈希值满足一定的条件,则认为合法性校验通过,才会发布到网络中。例如,哈希值的高y1位均为“0”或低y2位为“1”。
可选地,所述数据链条中第x数据记录到第1数据记录的长度为Le;
所述第n数据记录到所述第x数据记录的长度为Lx。
在一些实施例中,所述Lx和Le的取值都为不小于1的正整数,则所述Lx的取值必然小于所述Le与Lx之和。
在另一些实施例中,所述Lx的取值小于等于固定值,例如,小于或等于500。在数据链条产生的开始阶段,可能会小于500条,当一旦大于500条时,后续产生的数据记录也仅需要向前校验500条。若假设固定中为s,则第x条数据记录中的x=n-500。
当然,所述x的取值的方式有多种,在本实施例中不局限于上述任意一种。
可选地,所述方法还包括:
根据所述索引记录构建索引表;其中,所述索引表包括:所述第n标识;述第x标识;校验长度,为所述第n标识到各所述第x标识之前经过的数据记录的最少条数;
所述步骤S120可包括:
根据所述索引表,校验所述数据链条中所述第n数据记录到所述第x数据记录中的每一条数据记录。
在本实施例中,所述索引表可为存储在内存中的数据,可根据索引区块链中索引记录更新所述索引表,然后根据索引表确定数据区块链中需要校验的数据记录。例如,当所述校验长度满足预设阈值时,更新所述第x数据记录的位置。
如图9所示,本实施例提供一种处理节点,包括:
获取单元110,用于获取索引区块链的一条索引记录,其中,所述索引记录包括:第n标识及第x标识;其中,所述第n标识为数据区块链的第n数据记录的标识;所述第x标识为所述数据区块链的第x数据记录的标识;所述第x数据记录为:在第n数据记录之前产生的位于所述数据区块链中同一数据链条中的数据记录;n和x均为正整数;
数据记录校验单元120,用于根据所述索引记录,校验所述数据链条中所述第n数据记录到所述第x数据记录中的每一条数据记录;
区块链生成单元,用于若所述第n数据记录开始校验反向校验到所述第x数据记录的校验均通过,确定是否将所述第n数据记录添加到所述数据区块链中。
所述获取单元110,可对应于通信接口等,可用于从其他网络设备中接收所述索引记录;所述获取单元110,还可对应于处理器,可以自行生成所述索引记录。
所述数据记录校验单元120及区块链生成单元,均可对应于处理器,可用于进行数据记录的校验和/或数据区块链的生成。
在一些实施例中,所述处理节点还可包括:区块链生成单元,可用于若第n数据记录到第x数据记录均通过校验,将所述第n数据记录添加到数据区块链的区块中。
在一些实施例中,所述处理节点还包括:
索引校验单元,可用于校验所述索引记录的合法性和/或完整性;所述数据记录校验单元120,可用于根据通过所述合法性和/或完整性验证的所述索引记录,从所述第n数据记录开始校验反向校验到所述第x数据记录。
在另外一些实施例中,所述索引校验单元,可对应于处理器等,可用于根据所述索引块中的随机数进行所述索引区块的整体合法性校验;根据所述索引记录中所述第n数据记录的哈希值,进行校验起始位置的合法性校验;根据所述索引记录中所述第x数据记录的哈希值,进行校验结束位置的合法性验证;当所述整体合法性验证、所述校验起始位置的合法性验证及所述校验结束位置的合法性验证均通过时,确定所述索引记录通过合法性验证。
所述索引校验单元,还可用于校验所述第x标识是否与所述数据链条中每一个所述第x数据记录一一对应;当所述第x标识与所述数据链条中每一条所述第x数据记录一一对应,则确定完整性校验通过。
在一些实施例中,所述区块链单元,可用于当所述索引记录通过所述合法性验证和所述完整性验证之后,将所述索引记录添加到所述索引区块链中。
可选地,所述获取单元110,具体用于当所述数据区块链未创建索引记录时,生成一条所述索引记录;和/或,
当所述数据区块链未验证的数据记录条数满足特定条件时,生成一条所述索引记录。
可选地,所述处理节点还包括:
生成单元,用于生成所述索引区块的随机数;
合法性数据记录校验单元120,用于基于所述随机数进行所述索引区块的合法性校验;
广播单元,可对应于通信接口,可用于当所述索引区块通过合法性校验时,广播所述索引记录。
可选地,所述获取单元110,可用于从区块链网络接收所述索引记录。
在一些实施例中,所述数据链条中第1数据记录到所述第n数据记录的长度为Le;所述第n数据记录到所述第x数据记录的长度为Lx。
所述处理节点还包括:
构建单元,可对应于处理器,可用于根据所述索引记录构建索引表;其中,所述索引表包括:所述第n标识;所述第x标识;校验长度,为所述第n标识到各所述第x标识之前经过的数据记录的最少条数;
所述数据记录校验单元。可用于根据所述索引表,校验所述数据链条中所述第n数据记录到所述第x数据记录中的每一条数据记录。
所述获取单元,还用于当所述校验长度满足预设阈值时,更新所述第x数据记录的位置。
本发明实施例提供一种处理节点,如图10所示,可包括:收发器210、存储器220、处理器230及存储在所述存储器220上并由所述处理器230执行的计算机程序;
所述处理器230分别与所述收发器210及所述存储器220连接,用于通过执行所述计算机程序实现前述一个或多个技术方案提供的数据记录校验方法。
本实施例所述收发器210可对应于各种类型的接口,例如,网络接口或收发天线等。
所述存储器220可包括存储各种信息的器件。
所述处理器230可包括:中央处理器、微处理器、数字信号处理器、应用处理器、可编程阵列或专用集成电路等,可以通过计算机程序等计算机可执行指令的执行,实现应用于第一通信设备中波束的功率控制方法中的。
所述处理器230可通过通信总线(例如,集成电路总线)与收发器310及所述存储器连接。
本实施例提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被执行后执行前述一个或多个技术方案提供的数据记录校验方法。
所述计算机存储介质可:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,可选为非瞬间存储介质或非易失性存储介质。
以下结合上述实施例给出几个具体示例:
本示例提供一种数据区块链中数据记录校验方法,包括以下几个阶段:
阶段一:构建索引记录;
阶段二:发布索引记录;
阶段三:构建索引表;
阶段四:数据记录的校验。
阶段1:构建索引记录
如图11所示,索引记录包括指向数据记录起始地址的指针和若干个结束地址,它的含义是:从Start_record_id的记录开始,反向校验到End_record_id即可,无需再向前校验。其他字段见后续实现设计。这里的Start_record_id即为前述的第n数据记录的标识;所述End_record_id即为前述第x数据记录的标识。图12所示为索引记录根据需要检验的数据记录的变化而更新的示意图,在图12中索引记录t1和索引记录t2中均包括Start_record_id和End_record_id,但是包括的Start_record_id和End_record_id是不同的,且指向的数据记录也是不同的。
索引记录在两种情况被创建:
第一种情况是索引表中没有对应的索引记录,校验从最后的数据记录开始一直校验到最开始的数据记录,此时需要为这条数据记录链条创建第一条索引。设最开始的数据记录编号为1,选取最后的数据记录n作为Start_record_id,选取中间的数据记录x作为End_record_id。假设数据记录x到数据记录1的距离长度为Le,数据记录n到数据记录x的距离为Lx。通过选择合适的Le和Lx比例,可以在安全性和效率之间取得平衡。Le长度越长,Lx越短,需要校验的记录越少,效率越高。Lx长度越长,Le越短,检验的记录数越多,安全性越高。可选地,在一些应用场景中,以将Le设置成与Lx相等,此时End_record_id编号的数据记录是整个数据记录链条的中点位置。
第二种情况是随着数据记录链条的变长,索引记录需要更新。每当数据记录增加时,系统记录最后一个数据记录到End_record_id的长度,如果长度足够长,则更新End_record_id,使其向数据链条的尾部移动。可选地,当数据校验长度是Lx的两倍时引发更新,更新移动长度和Lx长度相等。图12中显示索引记录指向的数据记录的终止位置的移动方向。
阶段2:发布索引记录
索引记录需要记录到索引区块链中,因此必须将索引记录发布到整个系统中。
在一个区块链网络中,一定会有多台主机同时检测到区块链中新增了数据块。如果该新增的数据块可以引起出一个索引记录更新,进而同时对外发布,这将导致网络负载过大。在索引区块中添加一个随机数,然后计算整个索引区块的哈希(hash)值,如果hash值满足低N位全为“0”,认为该索引区块构成了一个合格的索引区块,该主机将该索引区块发布出去。通过此方式可以大大降低索引记录产生的主机数,降低网络负载。具体如,如图13所示,生成索引区块的处理节点,为索引区块添加随机数,判断索引hash低N位是否全为“0”,若是获得发布权利,可以向区块链网络中其他节点发送索引记录,否则返回上一步。发布索引区块时,可以通过向网络广播索引区块,使得位于网络中的各节点都可以接收到其发布的索引区块。
另一方面,主机也会收到网络中其他主机广播出来的索引区块。首先,接收方必须检查接收到的索引记录是否合法,也即其hash值低N位是否为“0”,其次接收方还需要检查完整性,也即校验索引记录中记录的信息是否和数据区块链中的数据记录是一一对应的。如果检查通过,接收索引记录的主机必须将该索引记录添加到本地维护的索引区块链中,否则丢弃该索引记录。如果收到的索引和本地正在计算的索引相同,暂停本地的计算。具体如图14所示,收到网络广播的索引记录X;检测X的合法性和完整性,判断检查是否通过,否则丢弃接收到索引记录;是则添加到本本地索引区块链中;确定与本地计算的索引更新是否相同,否则恢复本地随机数计算,是则暂停本地随机数计算。
阶段3:构建索引表
参与区块链构建的主机需要在本地构建索引表以加速校验。索引表的构建依据索引区块链上的索引记录进行。主要包括两个主要阶段:第一个构建和后续更新。
对于第一次构建表,必须从索引区块链的头部开始,完成的遍历整个索引区块链,具体可如图15所示,包括:
从索引链头开始,判断索引链是否结束,是则构建完成,否则添加一个索引记录;
判断索引表是否有对应索引记录,是则更新索引表;否则添加到索引表。
对于非首次构建索引表,则可如图16所示,可包括:
收到网络广播的索引记录X;
检查X的合法性和完整性;
判断检查是否通过,若是更新索引表记录,若否则丢弃X;
具体的索引表构建完成后包含的信息参考实现。
阶段4:校验数据记录
校验从数据区块链尾部的数据记录开始,如果发现该记录在索引表中,记录下End_record_id,当所有的End_record_id都遍历到时,校验任务结束。如果该记录不在索引表中,从前一个记录重复上述过程。
具体可如图17所示,包括:
从数据链尾的数据记录开始,判断数据记录链是否结束,这里的数据记录链即为前述的数据链条的另一种名称;若是,校验结束且更新索引,若否则检查索引表;判断索引表是否有对应记录,若是校验索引记录的结束数据记录,若否返回判断数据记录链是否结束的步骤。
索引记录的组成可如下:
索引记录主要有两大部分组成:索引记录头和索引记录体。索引记录头用于索引区块链的构建,索引记录体用于保存校验的加速指示。索引记录是一个变长的数据结构。
(1)索引记录头包括:
<1>Prev_block:前一个索引记录地址,第一个索引记录该地址为空;
<2>Prev_block_hash:前一个索引记录的hash值,用于验证前一个索引记录的合法性;
<3>Nonce:当前索引记录包含的随机数,用于验证当前索引记录的合法性
(2)索引记录体包括:
<1>Start_record_id:起始数据记录id,用于数据记录开始标识;
<2>Start_record_hash:起始数据记录的hash值,用于检查起始数据记录的合法性;
<3>End_record_id:校验结束数据记录id,用于指示校验结束的位置。由于数据记录可能是树状结构,存在多个结束位置,因此该字段可能是列表。
<4>End_record_hash:校验结束数据记录的hash值,用于检查起始数据记录的合法性。由于数据记录可能是树状结构,存在多个结束位置,因此该字段可能是列表。列表中的元素需要和End_record_id中的元素一一对应。
(2)索引表的结构可如下:
索引表是从索引区块链构建出来的,同时还保留了运行时信息。运行时,组织成Hash表结构,以Start_record_id作为键值(Key),在O(1)时间内可以查到End_record_id。
所述索引表,可具体包括:
<1>Start_record_id:
<2>Start_record_hash:
<3>End_record_id:
<4>End_record_hash:
<5>校验长度(Distance):记录Start_record_id到End_record_id最短长度。该字段用于更新索引的快速检测。当某次数据记录校验长度超过该字段设定的阈值时(如校验数据记录超过Distance两倍),引发更新。当收到网络广播发出的索引更新时,也需要更新该字段。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (13)
1.一种数据记录校验方法,其特征在于,包括:
获取索引区块链的一条索引记录,其中,所述索引记录包括:第n标识及第x标识;其中,所述第n标识为数据区块链的第n数据记录的标识;所述第x标识为所述数据区块链的第x数据记录的标识;所述第x数据记录为:在第n数据记录之前产生的位于所述数据区块链中同一数据链条中的数据记录;n和x均为正整数;
根据所述索引记录,校验所述数据链条中所述第n数据记录到所述第x数据记录中的数据记录;所述第n数据记录为最新一次交易产生的数据记录;
其中,所述数据区块链和所述索引区块链均为采用区块链技术生成的链式结构的数据记录。
2.根据权利要求1所述的方法,其特征在于,
所述方法还,包括:
校验所述索引记录的合法性和/或完整性;
所述根据所述索引记录,校验所述数据链条中所述第n数据记录到所述第x数据记录中的数据记录,包括:
根据通过所述合法性和/或完整性验证的所述索引记录,从所述第n数据记录开始校验反向校验到所述第x数据记录。
3.根据权利要求2所述的方法,其特征在于,
所述校验所述索引记录的合法性,包括:
根据所述索引记录所在索引区块的随机数的哈希值,进行所述索引记录的整体合法性验证;
根据所述索引记录中所述第n数据记录的哈希值,进行校验起始位置的合法性校验;以及
根据所述索引记录中所述第x数据记录的哈希值,进行校验结束位置的合法性验证;
当所述整体合法性验证、所述校验起始位置的合法性验证及所述校验结束位置的合法性验证均通过时,确定所述索引记录通过合法性验证。
4.根据权利要求2所述的方法,其特征在于,
所述校验所述索引记录的完整性,包括:
校验所述第x标识是否与所述数据链条中每一个所述第x数据记录一一对应;
当所述第x标识与所述数据链条中每一条所述第x数据记录一一对应,则确定完整性校验通过。
5.根据权利要求2至4任一项所述的方法,其特征在于,
所述方法还包括:
当所述索引记录通过所述合法性验证和所述完整性验证之后,将所述索引记录添加到所述索引区块链中。
6.根据权利要求1至4任一项所述的方法,其特征在于,
所述获取索引区块链的一条索引记录,包括以下至少之一:
当所述数据区块链未创建索引记录时,生成一条所述索引记录;
当所述数据区块链未验证的数据记录条数满足特定条件时,生成一条所述索引记录。
7.根据权利要求1至4任一项所述的方法,其特征在于,
所述获取索引区块链的一条索引记录,包括:
从区块链网络接收所述索引记录。
8.根据权利要求1至4任一项所述的方法,其特征在于,
所述第x数据记录到所述数据链条中第1数据记录的长度为Le;
所述第n数据记录到所述第x数据记录的长度为Lx。
9.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
根据所述索引记录构建索引表;其中,所述索引表包括:所述第n标识;所述第x标识;校验长度,为所述第n标识到各所述第x标识之前经过的数据记录的最少条数;
所述根据所述索引记录,校验所述数据链条中所述第n数据记录到所述第x数据记录中的数据记录,包括:
根据所述索引表,校验所述数据链条中所述第n数据记录到所述第x数据记录中的数据记录。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
当所述校验长度满足预设阈值时,更新所述第x数据记录的位置。
11.一种处理节点,其特征在于,包括:
获取单元,用于获取索引区块链的一条索引记录,其中,所述索引记录包括:第n标识及第x标识;其中,所述第n标识为数据区块链的第n数据记录的标识;所述第x标识为所述数据区块链的第x数据记录的标识;所述第x数据记录为:在第n数据记录之前产生的位于所述数据区块链中同一数据链条中的数据记录;n和x均为正整数;
数据记录校验单元,用于根据所述索引记录,校验所述数据链条中所述第n数据记录到所述第x数据记录中的数据记录;所述第n数据记录为最新一次交易产生的数据记录;
其中,所述数据区块链和所述索引区块链均为采用区块链技术生成的链式结构的数据记录。
12.一种处理节点,其特征在于,包括:收发器、存储器、处理器及存储在所述存储器上并由所述处理器执行的计算机程序;
所述处理器分别与所述收发器及所述存储器连接,用于通过执行所述计算机程序实现权利要求1至10任一项提供的数据记录校验方法。
13.一种计算机存储介质,所述计算机存储介质存储有计算机程序;所述计算机程序被执行后,能够实现权利要求1至10任一项提供的数据记录校验方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810000708.5A CN109993526B (zh) | 2018-01-02 | 2018-01-02 | 区块链校验方法、处理节点及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810000708.5A CN109993526B (zh) | 2018-01-02 | 2018-01-02 | 区块链校验方法、处理节点及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109993526A CN109993526A (zh) | 2019-07-09 |
CN109993526B true CN109993526B (zh) | 2021-07-06 |
Family
ID=67128358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810000708.5A Active CN109993526B (zh) | 2018-01-02 | 2018-01-02 | 区块链校验方法、处理节点及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109993526B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110445627B (zh) * | 2019-08-12 | 2021-10-26 | 腾讯科技(深圳)有限公司 | 群组更新方法、装置、计算机设备以及计算机存储介质 |
CN111310137B (zh) * | 2020-03-23 | 2022-08-26 | 杭州溪塔科技有限公司 | 一种区块链关联数据存证方法、装置及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844477A (zh) * | 2016-12-23 | 2017-06-13 | 北京众享比特科技有限公司 | 区块链系统、区块查找方法和区块链后向同步方法 |
WO2017130038A1 (en) * | 2016-01-26 | 2017-08-03 | Stampery Inc. | Systems and methods for using a block chain to certify the existence, integrity, and/or ownership of a file or communication |
CN107196762A (zh) * | 2017-06-13 | 2017-09-22 | 贵州大学 | 一种面向大数据的确权方法 |
CN107239954A (zh) * | 2017-06-07 | 2017-10-10 | 北京汇通金财信息科技有限公司 | 一种提高区块产生速度的方法及装置 |
CN107273556A (zh) * | 2017-08-23 | 2017-10-20 | 上海点融信息科技有限责任公司 | 区块链数据索引方法和设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8935256B2 (en) * | 2012-03-02 | 2015-01-13 | Cleversafe, Inc. | Expanding a hierarchical dispersed storage index |
-
2018
- 2018-01-02 CN CN201810000708.5A patent/CN109993526B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017130038A1 (en) * | 2016-01-26 | 2017-08-03 | Stampery Inc. | Systems and methods for using a block chain to certify the existence, integrity, and/or ownership of a file or communication |
CN106844477A (zh) * | 2016-12-23 | 2017-06-13 | 北京众享比特科技有限公司 | 区块链系统、区块查找方法和区块链后向同步方法 |
CN107239954A (zh) * | 2017-06-07 | 2017-10-10 | 北京汇通金财信息科技有限公司 | 一种提高区块产生速度的方法及装置 |
CN107196762A (zh) * | 2017-06-13 | 2017-09-22 | 贵州大学 | 一种面向大数据的确权方法 |
CN107273556A (zh) * | 2017-08-23 | 2017-10-20 | 上海点融信息科技有限责任公司 | 区块链数据索引方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109993526A (zh) | 2019-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108665359B (zh) | 区块链处理方法、记账节点及验证节点 | |
CN108200210B (zh) | 基于区块链的链管理的方法、装置及计算机可读介质 | |
CN109583887B (zh) | 一种区块链的交易方法和装置 | |
CN109542888B (zh) | 区块链的数据修改和同步方法、装置、设备及存储介质 | |
CN110311885B (zh) | 用以实施安全联机的装置及方法 | |
CN109391645B (zh) | 区块链轻量化处理方法、区块链节点及存储介质 | |
CN109347868B (zh) | 一种信息验证方法、装置及存储介质 | |
JP2019517175A (ja) | ブロックチェーンを用いる論理ゲート機能の実装 | |
KR20210003234A (ko) | 분할된 블록체인 네트워크에서 블록체인의 블록을 유지하는 것 | |
CN111615818B (zh) | 一种区块链构建方法及区块链节点 | |
CN110235162B (zh) | 区块链系统数据处理方法和区块的生成方法 | |
CN110213038B (zh) | 一种区块链形成共识的方法及系统 | |
CN108880820B (zh) | 代码管理方法和装置 | |
CN112749968B (zh) | 基于区块链的业务数据记录方法及装置 | |
GB2579635A (en) | A node testing method and apparatus for a blockchain system | |
CN109993526B (zh) | 区块链校验方法、处理节点及存储介质 | |
US20200402026A1 (en) | Blockchain management system, blockchain management apparatus, information providing apparatus, and blockchain management method | |
CN110597922A (zh) | 数据处理方法、装置、终端及存储介质 | |
KR102170031B1 (ko) | 위치정보를 이용한 블록체인 거래인증방법, 기록매체 및 블록체인 시스템 | |
CN113661683A (zh) | 在分布式网络中存储表示资产转移的交易的方法及其程序 | |
CN112637203A (zh) | 一种大数据流验证方法及系统 | |
CN108206834B (zh) | 中心服务请求的处理方法、装置和系统 | |
CN110618989A (zh) | 信息处理方法、信息处理装置及相关产品 | |
CN118176694A (zh) | 用于分布式区块链功能的方法和系统 | |
CN112688870B (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 |