CN115002106B - 一种区块链验证方法、装置、设备及介质 - Google Patents

一种区块链验证方法、装置、设备及介质 Download PDF

Info

Publication number
CN115002106B
CN115002106B CN202210428934.XA CN202210428934A CN115002106B CN 115002106 B CN115002106 B CN 115002106B CN 202210428934 A CN202210428934 A CN 202210428934A CN 115002106 B CN115002106 B CN 115002106B
Authority
CN
China
Prior art keywords
verification
fragments
fragment
failure
cross
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
Application number
CN202210428934.XA
Other languages
English (en)
Other versions
CN115002106A (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.)
Agricultural Bank of China
Original Assignee
Agricultural Bank of China
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 Agricultural Bank of China filed Critical Agricultural Bank of China
Priority to CN202210428934.XA priority Critical patent/CN115002106B/zh
Publication of CN115002106A publication Critical patent/CN115002106A/zh
Application granted granted Critical
Publication of CN115002106B publication Critical patent/CN115002106B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供了一种区块链验证方法及装置,能够在确定有效验证分片数达到预设值时,将跨分片交易视为验证成功,从而无需将该跨分片交易在失效验证分片上进行再次验证,更不需要进行回滚,节省了验证时间,提高了共识验证效率。并且对导致单个验证分片暂时失效的原因进行区分,采取对应的解决方案,让失效验证分片中的跨分片交易可以在下一轮验证中再次处理,降低跨分片交易回滚的概率,减少了回滚导致的交易延迟增大的发生,从而更高效地进行区块链共识验证,进一步提高区块链的并发度和吞吐量。

Description

一种区块链验证方法、装置、设备及介质
技术领域
本申请涉及计算机技术领域,更具体地说,涉及一种区块链验证方法、装置、设备及介质。
背景技术
区块链具有不可篡改、可追溯、不可抵赖等特点,区块链的核心是“信任的机器”,单纯依靠技术而不需要中心化的社会组织和机构能实现信任是其最大的变革。但同时区块链技术但也存在扩容困难,性能较差等问题,在技术上需要不断改进完善才能满足实际需要。
区块链分片方案是目前扩容方案中最具可行性的方案,受到业界的高度关注。区块链分片的核心思想是将区块链网络节点划分为若干个子网络,每个独立运行共识算法,对交易进行共识验证并且每个集合可以并行地处理不同的交易集合甚至只存储部分网络状态,从而达到提高交易吞吐量的效果。分片技术虽然可以提升区块链系统的性能,但同时也带来了新的挑战。分片后网络中必然存在跨分片交易,而跨分片交易的正确处理对系统的性能至关重要。在未花费的交易输出(Unspent Transaction Outputs,UTXO)模型下,处理跨分片交易时,客户端将跨分片交易发送到涉及的输入分片中独立地验证处理,当全部输入分片成功验证跨分片交易后,会提交给输出分片进行验证处理。出现一个输入分片验证交易失败或超时后,为保证区块链网络数据的一致性和完整性,需要对部分处理的跨分片交易进行回滚操作。然而频繁回滚会大大降低区块链的验证效率,从而影响区块链的整体性能。
然而目前用于解决上述问题的多轮验证方案只考虑了单个分片验证失效的情况,未考虑总的分片验证情况,而且只要单个分片验证失效时就分配新的节点进行再次验证,未考虑是分片性能还是节点故障数超限导致的分片失效,对于降低交易回滚概率的效果比较有限,对于提高整体吞吐量的效果也比较有限。
发明内容
本申请的目的是提供一种区块链验证方法、装置、设备及介质,能够在验证时通过考虑有效验证分片数的比率,并对导致单个验证分片暂时失效的原因进行区分,采取对应的解决方案,从而更高效地进行区块链共识验证,进一步提高区块链的并发度和吞吐量。
为了实现上述目的,本申请提供如下技术方案:
一种区块链验证方法,所述方法包括:
获取跨分片交易;
根据所述跨分片交易和预设的映射规则,确定所述跨分片交易对应的多个验证分片;
将所述跨分片交易分配至所述多个验证分片进行验证,得到验证结果集合,所述验证结果集合包括所述多个验证分片分别对应的第一验证结果,所述第一验证结果用于指示验证分片为有效验证分片或者失效验证分片,所述有效验证分片是验证结果为有效的验证分片,所述失效验证分片是验证结果为失效的验证分片;
判断有效验证分片的个数与验证分片总数的比值是否达到预设值;
若是,将所述跨分片交易发送至输出分片;
若否,确定失效验证分片的失效原因;
根据所述失效原因将所述跨分片交易在所述失效验证分片进行重新验证,得到所述失效验证分片的第二验证结果;
根据所述第二验证结果更新所述验证结果集合,并执行判断有效验证分片的个数与验证分片总数的比值是否达到预设值这一步骤;
若执行判断有效验证分片的个数与验证分片总数的比值是否达到预设值这一步骤的次数大于预设次数,则放弃所述跨分片交易。
可选地,所述根据所述失效原因将所述跨分片交易在所述失效验证分片进行重新验证,包括:
若所述失效原因为所述失效验证分片验证超时,将所述跨分片交易重新分配至所述失效验证分片,由所述失效验证分片进行验证。
可选地,所述根据所述失效原因将所述跨分片交易在所述失效验证分片进行重新验证,包括:
若所述失效原因为所述失效验证分片中的故障节点数大于预设故障值,利用节点随机分配算法为所述失效验证分片重新分配节点;
将所述跨分片交易重新分配至重新分配节点后的失效验证分片中进行验证。
可选地,判断有效验证分片的个数与验证分片总数的比值是否达到预设值,包括:
判断有效验证分片的个数与验证分片总数的比值是否大于或等于三分之二。
一种区块链验证装置,所述装置包括:
获取单元,用于获取跨分片交易;
第一确定单元,用于根据所述跨分片交易和预设的映射规则,确定所述跨分片交易对应的多个验证分片;
第一验证单元,用于将所述跨分片交易分配至所述多个验证分片进行验证,得到验证结果集合,所述验证结果集合包括所述多个验证分片分别对应的第一验证结果,所述第一验证结果用于指示验证分片为有效验证分片或者失效验证分片,所述有效验证分片是验证结果为有效的验证分片,所述失效验证分片是验证结果为失效的验证分片;
判断单元,用于判断有效验证分片的个数与验证分片总数的比值是否达到预设值;
输出单元,用于若是,将所述跨分片交易发送至输出分片;
第二确定单元,用于若否,确定失效验证分片的失效原因;
第二验证单元,用于根据所述失效原因将所述跨分片交易在所述失效验证分片进行重新验证,得到所述失效验证分片的第二验证结果;
更新单元,用于根据所述第二验证结果更新所述验证结果集合,并令判断单元执行判断有效验证分片的个数与验证分片总数的比值是否达到预设值这一步骤;
放弃单元,若判断单元执行判断有效验证分片的个数与验证分片总数的比值是否达到预设值这一步骤的次数大于预设次数,则放弃所述跨分片交易。
可选地,所述第二验证单元具体用于:
若所述失效原因为所述失效验证分片验证超时,将所述跨分片交易重新分配至所述失效验证分片中进行验证。
可选地,所述第二验证单元具体用于:
若所述失效原因为所述失效验证分片中的故障节点数大于预设故障值,利用节点随机分配算法为所述失效验证分片重新分配节点;
将所述跨分片交易重新分配至重新分配节点后的失效验证分片中进行验证。
可选地,所述判断单元具体用于:
判断有效验证分片的个数与验证分片总数的比值是否大于或等于三分之二。
一种计算机设备,所述计算机设备包括:交互装置、输入/输出接口、处理器和存储器,所述存储器中存储有程序指令;
所述交互装置用于获取用户输入的操作指令;
所述处理器用于执行存储器中存储的程序指令,执行上述任意一项所述的方法。
一种计算机可读存储介质,包括指令,其特征在于,当所述指令在计算机设备上运行时,使得所述计算机设备执行上述任意一项所述的方法。
本申请提供了一种区块链验证方法,该方法包括获取跨分片交易;根据所述跨分片交易和预设的映射规则,确定所述跨分片交易对应的多个验证分片;将所述跨分片交易分配至所述多个验证分片进行验证,得到验证结果集合,所述验证结果集合包括所述多个验证分片分别对应的第一验证结果,所述第一验证结果用于指示验证分片为有效验证分片或者失效验证分片,所述有效验证分片是验证结果为有效的验证分片,所述失效验证分片是验证结果为失效的验证分片;判断有效验证分片的个数与验证分片总数的比值是否达到预设值;若是,将所述跨分片交易输出至输出分片;若否,确定失效验证分片的失效原因;根据所述失效原因将所述跨分片交易在所述失效验证分片进行重新验证,得到所述失效验证分片的第二验证结果;根据所述第二验证结果更新所述验证结果集合,并执行判断有效验证分片的个数与验证分片总数的比值是否达到预设值这一步骤;若执行判断有效验证分片的个数与验证分片总数的比值是否达到预设值这一步骤的次数大于预设次数,则放弃所述跨分片交易。可见,本申请能够在确定有效验证分片数达到预设值时,将跨分片交易视为验证成功,从而无需将该跨分片交易在失效验证分片上进行再次验证,更不需要进行回滚,节省了验证时间,提高了共识验证效率。并且对导致单个验证分片暂时失效的原因进行区分,采取对应的解决方案,让失效验证分片中的跨分片交易可以在下一轮验证中再次处理,降低跨分片交易回滚的概率,减少了回滚导致的交易延迟增大的发生,从而更高效地进行区块链共识验证,进一步提高区块链的并发度和吞吐量。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1A为本申请实施例提供的跨分片交易的处理流程图;
图1B为本申请实施例提供的拜占庭容错类共识算法的流程示意图;
图1C为本申请实施例提供的多轮共识的验证方案的流程示意图;
图2为本申请实施例提供的一种区块链验证方法的流程图;
图3为本申请实施例提供的一种区块链验证方法中的验证流程图;
图4为本申请实施例提供的另一种区块链验证方法的流程图;
图5为本申请实施例提供的一种区块链验证装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
区块链分片的核心思想是将区块链网络节点划分为若干个子网络,每个独立运行共识算法,对交易进行共识验证并且每个集合可以并行地处理不同的交易集合甚至只存储部分网络状态,从而达到提高交易吞吐量的效果。分片技术虽然可以提升区块链系统的性能,但同时也带来了新的挑战。分片后网络中必然存在跨分片交易,而跨分片交易的正确处理对系统的性能至关重要。
UTXO(Unspent Transaction Outputs,未花费的交易输出)模型应用于很多区块链网络中。在UTXO模型中,交易可以具有多个输入和输出。交易验证时,验证者需要验证每笔交易的输入尚未花费,并且确保在这笔交易完成后该交易的所有输入都已不可再花费。在基于UTXO模型的分片区块链系统中,交易的多个输入输出可能涉及到多个节点地址,根据分片协议,节点和交易按规则划分到不同的分片,这就导致一些交易需要在多个分片进行验证,也就是跨分片交易。在跨分片交易中,一般设定管理输入对象所在的分片称为输入分片(Input Shard,IS),管理输出对象所在分片称为输出分片(Output Shard, OS)。由于一笔跨分片交易涉及多个分片,为保证分片间的全局一致性需要多个分片之间协调处理。跨分片交易处理时,客户端将跨分片交易发送到涉及的输入分片中,每个分片独立地对该分片内的交易进行共识验证处理,只有所有的输入分片验证成功后才会提交跨分片交易到一个或多个输出分片,并在输出分片中进行再次验证。当任何一个输入分片验证交易失败或超出时间限制时,为保证区块链系统的一致性,需要对跨分片交易进行回滚操作,跨分片交易的处理流程如图1A所示。
虽然采用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)类共识算法的分片方案可以保证数据的最终一致性,但在这类分片方案中,分片中存在由于拜占庭(故障或作恶)节点分配不均,导致分片验证有效性遭到破坏的问题,从而影响某个分片内交易的处理。一旦某个分片失效导致涉及该分片内的跨分片交易无法得到验证,那么跨分片交易涉及的其他分片提交的跨分片事务就需要开始回滚操作,而回滚对于性能的负面影响是巨大的。设总节点个数为N,总体拜占庭比例为f<1/3,设将N个节点随机均匀地分到k个分片中,分片内节点数为L,分片后可能会存在单个分片拜占庭比例fi>1/3(1<=i<=k)致分片失效,如图1B所示。对于有效的跨分片交易,因某个分片内拜占庭节点比例f>1/3,而无法对片内交易达成共识验证,导致的跨分片交易回滚严重影响系统的性能,并且后续用户重新发送这笔交易到网络中谋求再次验证,将会产生更大的交易延迟。
现有的用于解决上述问题的多轮共识的验证方案为当跨分片交易被发送到多个输入分片,由各分片独立地进行验证处理,验证成功则打包出块。若出现交易在分片内因拜占节点(故障节点)过多使交易验证失效,则重新分配节点到该分片,再次对该笔交易进行共识验证,使其在有限的轮数内可以验证成功,尽量避免跨分片交易因单个输入分片失效而无法完成有效验证。这减少了跨分片交易回滚情况的发生,也可避免重新发送已回滚的交易产生更大的延迟。如图1C所示,多轮共识的验证方案的具体过程为:1)将交易根据映射规则分配到既定分片,并初始化交易的轮次;2)由分片内的全部节点对分配到该分片全部交易进行共识验证,验证成功则将该组交易打包交易到区块;3)若分片验证超时后还未得到有效共识,则通过随机分配算法重新分配一组节点到失效分片中(此时其它分片正常运行),对上一轮验证超时的那组交易进行新一轮共识验证;4)若连续T轮过后仍未达成有效共识,则选择放弃该笔交易。
多轮共识的验证方案通过有限牺牲交易的可用性,保全系统的总体性能,然而多轮共识的验证方案只考虑单个分片验证失效的情况,未考虑总的分片验证情况,而且只要单个分片验证失效时就分配新的节点进行再次验证,未考虑是分片性能还是节点故障数超限导致的分片失效,对于降低交易回滚概率的效果比较有限,对于提高整体吞吐量的效果也比较有限。
因此,针对上述问题,本申请实施例提供了一种区块链验证方法,可以应用于区块链的交易认证中,需要说明的是,本申请实施例所提供的区块链认证方法可以应用于各种有准入限制的区块链中,本申请实施例仅以联盟链作为例子以便于理解,以下对本申请实施例所提供的方法进行详细说明。
请参阅图2,本申请实施例所提供的区块链验证方法包括以下步骤。
S201、获取跨分片交易。
本实施例中,可以先获取待进行的跨分片交易。可以理解的是,由于一笔跨分片交易涉及多个分片,为保证分片间的全局一致性需要多个分片之间协调处理。跨分片交易处理时,客户端将跨分片交易发送到涉及的输入分片中,每个分片独立地对该分片内的交易进行共识验证处理,只有所有的输入分片验证成功后才会提交跨分片交易到一个或多个输出分片,并在输出分片中进行再次验证。
S202、根据所述跨分片交易和预设的映射规则,确定所述跨分片交易对应的多个验证分片。
本实施例中,可以预先设置好每个跨分片交易与多个验证分片之间的映射规则,也即预先规定每个跨分片交易由哪些验证分片进行验证,以便于在获取待进行的跨分片交易后,可以根据该预设的映射规则确定出与该跨分片交易对应的多个验证分片。可以理解的是,验证分片可以为对跨分片交易进行共识验证的出入分片。
进一步地,该映射规则可以整理成一个映射规则表,生成一个存储文件并存储于区块链中,方便需要的时候进行调用。
S203、将所述跨分片交易分配至所述多个验证分片进行验证,得到验证结果集合。
本实施例中,在确定跨分片交易对应的多个验证分片后,可以将该交易分配至对应的多个验证分片进行验证,由各分片独立地进行验证处理,得到各个验证分片对应的验证结果,并将这些验证结果汇总为验证结果集合。可以理解的是,验证分片的验证结果可以为有效和失效,验证结果为有效说明跨分片交易在该验证分片中验证通过,验证结果为失效说明跨分片交易在该验证分片中验证失败。进一步地,可以将跨分片交易在验证分片中的首次验证结果记为第一验证结果。
S204、判断有效验证分片的个数与验证分片总数的比值是否达到预设值。
本实施例中,在获得验证结果集合后,可以先判断验证结果集合中验证结果为有效的验证分片也即有效验证分片的个数,与对跨分片交易进行验证的验证分片的总数的比值是否达到预设值,其中预设值可以根据实际需要进行设定。可以理解的是,有效验证分片是验证结果为有效的验证分片。
可选地,可以判断有效验证分片的个数与验证分片总数的比值是否大于等于三分之二。可以理解的是,若交易验证通过的分片数超过总分片数的三分之二,则视为该交易的验证成功,不需要再对失效的分片再次验证,更不需要回滚,从而能够节省时间提高共识效率。
S205、若是,将所述跨分片交易发送至输出分片。
本实施例中,若有效验证分片的个数与验证分片总数的比值达到预设值,说明跨分片交易验证成功,则进入落账验证环节,可以将该交易发送至输出分片,由输出分片进行进一步的验证,具体过程如图3所示。
S206、若否,确定失效验证分片的失效原因。
S207、根据所述失效原因将所述跨分片交易在所述失效验证分片进行重新验证,得到所述失效验证分片的第二验证结果。
在本实施例中,若有效验证分片的个数与验证分片总数的比值未达到预设值,说明跨分片交易未验证成功,此时可以先确定出验证结果为失效的验证分片也即失效验证分片的失效原因,然后再根据失效原因将跨分片交易在失效验证分片中进行重新验证,并得到新的验证结果。可以理解的是,失效验证分片是验证结果为失效的验证分片。
进一步地,失效验证分片的失效原因可以包括失效验证分片验证超时以及失效验证分片中的故障节点数大于预设故障值等。失效验证分片验证超时是指验证分片中的节点由于性能下降无法在规定时间内给出验证回应,导致验证失效。失效验证分片中的故障节点数大于预设故障值是指验证分片中的故障节点数超过容许的预设故障值从而导致验证分片验证失效,其中预设故障值可以根据实际需要进行设定。
可选地,若失效原因为失效验证分片验证超时,则根据所述失效原因将所述跨分片交易在所述失效验证分片进行重新验证,包括:
将所述跨分片交易重新分配至所述失效验证分片中进行验证。
本实施例中,若失效原因为失效验证分片验证超时,则可以将跨分片交易重新分配至失效验证分片进行验证,得到新的验证结果。
可以理解的是,本实施例中通过判断暂时失效的验证分片是性能导致超时还是故障节点超过阀值,若是超时将在该验证分片内继续进行验证,让失效分片中的交易可以在下一轮验证中再次处理,降低跨分片交易回滚的概率,减少了回滚的交易重新提交产生更大的延迟现象的发生。
可选地,若失效原因为失效验证分片中的故障节点数大于预设故障值,则根据所述失效原因将所述跨分片交易在所述失效验证分片进行重新验证,包括:
利用节点随机分配算法为所述失效验证分片重新分配节点;
将所述跨分片交易重新分配至所述失效验证分片中进行验证。
本实施例中,若失效原因为失效验证分片中的故障节点数大于预设故障值,则可以利用节点随机分配算法为失效验证分片重新分配节点,并将跨分片交易重新分配至失效验证分片进行验证,得到新的验证结果。需要特别说明的是,在为失效验证分片重新分配节点时须保证节点分配时较高的随机性和不可预测性的特点。
可以理解的是,本实施例中通过判断暂时失效的验证分片是性能导致超时还是故障节点超过阀值,若是分片内故障节点过多,便及时地为失效分片更换验证节点,让失效分片中的交易可以在下一轮验证中再次处理,降低跨分片交易回滚的概率,减少了回滚的交易重新提交产生更大的延迟现象的发生。
S208、根据所述第二验证结果更新所述验证结果集合,并执行判断有效验证分片的个数与验证分片总数的比值是否达到预设值这一步骤。
本实施例中,在根据失效原因对失效验证分片进行重新验证得到新的验证结果,也即第二验证结果后,根据第二验证结果对验证结果集合进行更新,得到新的验证结果集合,并重新判断有效验证分片的个数与验证分片总数的比值是否达到预设值。可以理解的是,随着对失效验证分片进行重新验证,并将新的验证结果对验证结果集合进行更新,有效验证分片的个数与验证分片总数的比值也在随之变化,若在对失效验证分片进行重新验证后,使得有效验证分片的个数与验证分片总数的比值达到预设值,则可以说明此时跨分片交易验证成功,则进入落账验证环节,可以将该交易输出至输出分片,由输出分片进行进一步的验证。
S209、若执行判断有效验证分片的个数与验证分片总数的比值是否达到预设值这一步骤的次数大于预设次数,则放弃所述跨分片交易。
本实施例中,若执行判断有效验证分片的个数与验证分片总数的比值是否达到预设值这一步骤的次数大于预设次数,说明跨分片交易在失效验证分片中验证了多次,更新了多次验证结果,还是无法使得有效验证分片的个数与验证分片总数的比值达到预设值,也即对跨分片交易验证多次仍旧无法验证通过,此时可以认为该笔跨分片交易验证失败,并放弃该交易,与其他验证分片将该跨分片交易回滚至交易前状态。其中,预设次数可以根据实际需要进行设定。
在本申请实施例中提供了一种区块链验证方法,该方法包括获取跨分片交易;根据所述跨分片交易和预设的映射规则,确定所述跨分片交易对应的多个验证分片;将所述跨分片交易分配至所述多个验证分片进行验证,得到验证结果集合,所述验证结果集合包括所述多个验证分片分别对应的第一验证结果,所述第一验证结果用于指示验证分片为有效验证分片或者失效验证分片,所述有效验证分片是验证结果为有效的验证分片,所述失效验证分片是验证结果为失效的验证分片;判断有效验证分片的个数与验证分片总数的比值是否达到预设值;若是,将所述跨分片交易发送至输出分片;若否,确定失效验证分片的失效原因;根据所述失效原因将所述跨分片交易在所述失效验证分片进行重新验证,得到所述失效分片的第二验证结果;根据所述第二验证结果更新所述验证结果集合,并执行判断有效验证分片的个数与验证分片总数的比值是否达到预设值这一步骤;若执行判断有效验证分片的个数与验证分片总数的比值是否达到预设值这一步骤的次数大于预设次数,则放弃所述跨分片交易。可见,本申请能够在确定有效验证分片数达到预设值时,将跨分片交易视为验证成功,从而无需将该跨分片交易在失效验证分片上进行再次验证,更不需要进行回滚,节省了验证时间,提高了共识验证效率。并且对导致单个验证分片暂时失效的原因进行区分,采取对应的解决方案,让失效验证分片中的跨分片交易可以在下一轮验证中再次处理,降低跨分片交易回滚的概率,减少了回滚导致的交易延迟增大的发生,从而更高效地进行区块链共识验证,进一步提高区块链的并发度和吞吐量。
请参阅图4,本申请提供了另一种实施例,当跨分片交易被发送到多个输入分片,由各分片独立地进行验证处理,验证成功则打包出块。若出现交易在分片内验证超时或故障节点超过分片内1/3时,则要进行判断并进行多重验证。主要包括如下步骤:
(1)将交易根据映射规则分配到既定分片,初始化交易的次数。
(2)判断通过该交易的分片数是否超过所分配分片数的2/3(包含),如超过则打包交易到区块,输出到输出分片,如没有超过,则进入第3步。
(3)判断是超时还是分区内节点故障数超(1/3)导致无法完成验证,如是超时则继续在同一分片内进行交易验证,如果是节点故障,则使用节点分配随机算法补充节点到该分片中再次进行验证,在规定的次数内如此反复。
(4)在第3步中规定的次数内共识通过,则打包交易到区块,输出到输出分片。
(5)若第3步超过规定的次数仍未通过验证则选择放弃该笔交易,并对其他分片的同一交易进行回滚至交易前状态。
在本实施例中,实现了三重验证,第一重:在分配的分片之间根据阀值 (2/3)进行验证;第二重:性能导致超时的情况,在失效的分片内进行验证;第三重:分片内故障节点数超过阀值,随机分配节点到该分片中进行验证。通过上述技术方案,能够在验证时通过考虑有效验证分片数的比率,并对导致单个验证分片暂时失效的原因进行区分,采取对应的解决方案,从而更高效地进行区块链共识验证,进一步提高区块链的并发度和吞吐量。
请参阅图5,本申请实施例还提供了一种区块链验证装置,包括:
获取单元501,用于获取跨分片交易;
第一确定单元502,用于根据所述跨分片交易和预设的映射规则,确定所述跨分片交易对应的多个验证分片;
第一验证单元503,用于将所述跨分片交易分配至所述多个验证分片进行验证,得到验证结果集合,所述验证结果集合包括所述多个验证分片分别对应的第一验证结果,所述第一验证结果用于指示验证分片为有效验证分片或者失效验证分片,所述有效验证分片是验证结果为有效的验证分片,所述失效验证分片是验证结果为失效的验证分片;
判断单元504,用于判断有效验证分片的个数与验证分片总数的比值是否达到预设值;
输出单元505,用于若是,将所述跨分片交易发送至输出分片;
第二确定单元506,用于若否,确定失效验证分片的失效原因;
第二验证单元507,用于根据所述失效原因将所述跨分片交易在所述失效验证分片进行重新验证,得到所述失效验证分片的第二验证结果;
更新单元508,用于根据所述第二验证结果更新所述验证结果集合,并令判断单元504执行判断有效验证分片的个数与验证分片总数的比值是否达到预设值这一步骤;
放弃单元509,若判断单元504执行判断有效验证分片的个数与验证分片总数的比值是否达到预设值这一步骤的次数大于预设次数,则放弃所述跨分片交易。
可选地,所述第二验证单元507具体用于:
若所述失效原因为所述失效验证分片验证超时,将所述跨分片交易重新分配至所述失效验证分片,由所述失效验证分片进行验证。
可选地,所述第二验证单元507具体用于:
若所述失效原因为所述失效验证分片中的故障节点数大于预设故障值,利用节点随机分配算法为所述失效验证分片重新分配节点;
将所述跨分片交易重新分配至重新分配节点后的失效验证分片中进行验证。
可选地,所述判断单元504具体用于:
判断有效验证分片的个数与验证分片总数的比值是否大于或等于三分之二。
本申请提供了一种区块链验证装置,通过获取跨分片交易;根据所述跨分片交易和预设的映射规则,确定所述跨分片交易对应的多个验证分片;将所述跨分片交易分配至所述多个验证分片进行验证,得到验证结果集合,所述验证结果集合包括所述多个验证分片分别对应的第一验证结果,所述第一验证结果用于指示验证分片为有效验证分片或者失效验证分片,所述有效验证分片是验证结果为有效的验证分片,所述失效验证分片是验证结果为失效的验证分片;判断有效验证分片的个数与验证分片总数的比值是否达到预设值;若是,将所述跨分片交易输出至输出分片;若否,确定失效验证分片的失效原因;根据所述失效原因将所述跨分片交易在所述失效验证分片进行重新验证,得到所述失效验证分片的第二验证结果;根据所述第二验证结果更新所述验证结果集合,并执行判断有效验证分片的个数与验证分片总数的比值是否达到预设值这一步骤;若执行判断有效验证分片的个数与验证分片总数的比值是否达到预设值这一步骤的次数大于预设次数,则放弃所述跨分片交易。可见,本申请能够在确定有效验证分片数达到预设值时,将跨分片交易视为验证成功,从而无需将该跨分片交易在失效验证分片上进行再次验证,更不需要进行回滚,节省了验证时间,提高了共识验证效率。并且对导致单个验证分片暂时失效的原因进行区分,采取对应的解决方案,让失效验证分片中的跨分片交易可以在下一轮验证中再次处理,降低跨分片交易回滚的概率,减少了回滚导致的交易延迟增大的发生,从而更高效地进行区块链共识验证,进一步提高区块链的并发度和吞吐量。
上述对本申请实施例提供的方案进行了介绍。可以理解的是,计算机设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
从硬件结构上来描述,上述方法可以由一个实体设备实现,也可以由多个实体设备共同实现,还可以是一个实体设备内的一个逻辑功能模块,本申请实施例对此不作具体限定。
例如,上述方法均可以通过计算机设备来实现。该计算机设备包括至少一个处理器,通信线路,存储器以及至少一个通信接口。
处理器可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integratedcircuit,服务器IC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信线路可包括一通路,在上述组件之间传送信息。
通信接口,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless localareanetworks,WLAN)等。
存储器可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory, RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyer服务器able programmable read-onlymemory, EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器用于存储执行本申请方案的计算机执行指令,并由处理器来控制执行。处理器用于执行存储器中存储的计算机执行指令,从而实现本申请上述实施例提供的方法。
可选的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
在具体实现中,作为一种实施例,处理器可以包括一个或多个CPU。
在具体实现中,作为一种实施例,计算机设备可以包括多个处理器。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/ 或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,计算机设备还可以包括输出设备和输入设备。输出设备和处理器通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquid crystal display,LCD),发光二极管(light emitting diode,LED)显示设备,阴极射线管(cathode raytube,CRT)显示设备,或投影仪(projector)等。输入设备和处理器通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的计算机设备可以是一个通用设备或者是一个专用设备。在具体实现中,计算机设备可以是台式机、便携式电脑、网络服务器、掌上电脑(personal digitalassistant,PDA)、移动手机、平板电脑、无线终端设备、嵌入式设备等。本申请实施例不限定计算机设备的类型。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (6)

1.一种区块链验证方法,其特征在于,所述方法包括:
获取跨分片交易;
根据所述跨分片交易和预设的映射规则,确定所述跨分片交易对应的多个验证分片;
将所述跨分片交易分配至所述多个验证分片进行验证,得到验证结果集合,所述验证结果集合包括所述多个验证分片分别对应的第一验证结果,所述第一验证结果用于指示验证分片为有效验证分片或者失效验证分片,所述有效验证分片是验证结果为有效的验证分片,所述失效验证分片是验证结果为失效的验证分片;
判断有效验证分片的个数与验证分片总数的比值是否达到预设值;
若是,将所述跨分片交易发送至输出分片;
若否,确定失效验证分片的失效原因;
根据所述失效原因将所述跨分片交易在所述失效验证分片进行重新验证,得到所述失效验证分片的第二验证结果;
根据所述第二验证结果更新所述验证结果集合,并执行判断有效验证分片的个数与验证分片总数的比值是否达到预设值这一步骤;
若执行判断有效验证分片的个数与验证分片总数的比值是否达到预设值这一步骤的次数大于预设次数,则放弃所述跨分片交易;
其中,所述根据所述失效原因将所述跨分片交易在所述失效验证分片进行重新验证,包括:
若所述失效原因为所述失效验证分片验证超时,将所述跨分片交易重新分配至所述失效验证分片,由所述失效验证分片进行验证;
若所述失效原因为所述失效验证分片中的故障节点数大于预设故障值,利用节点随机分配算法为所述失效验证分片重新分配节点;
将所述跨分片交易重新分配至重新分配节点后的失效验证分片中进行验证。
2.根据权利要求1所述的方法,其特征在于,判断有效验证分片的个数与验证分片总数的比值是否达到预设值,包括:
判断有效验证分片的个数与验证分片总数的比值是否大于或等于三分之二。
3.一种区块链验证装置,其特征在于,所述装置包括:
获取单元,用于获取跨分片交易;
第一确定单元,用于根据所述跨分片交易和预设的映射规则,确定所述跨分片交易对应的多个验证分片;
第一验证单元,用于将所述跨分片交易分配至所述多个验证分片进行验证,得到验证结果集合,所述验证结果集合包括所述多个验证分片分别对应的第一验证结果,所述第一验证结果用于指示验证分片为有效验证分片或者失效验证分片,所述有效验证分片是验证结果为有效的验证分片,所述失效验证分片是验证结果为失效的验证分片;
判断单元,用于判断有效验证分片的个数与验证分片总数的比值是否达到预设值;
输出单元,用于若是,将所述跨分片交易发送至输出分片;
第二确定单元,用于若否,确定失效验证分片的失效原因;
第二验证单元,用于根据所述失效原因将所述跨分片交易在所述失效验证分片进行重新验证,得到所述失效验证分片的第二验证结果;
更新单元,用于根据所述第二验证结果更新所述验证结果集合,并令判断单元执行判断有效验证分片的个数与验证分片总数的比值是否达到预设值这一步骤;
放弃单元,若判断单元执行判断有效验证分片的个数与验证分片总数的比值是否达到预设值这一步骤的次数大于预设次数,则放弃所述跨分片交易;
其中,若所述失效原因为所述失效验证分片验证超时,则所述第二验证单元具体用于:
若所述失效原因为所述失效验证分片验证超时,将所述跨分片交易重新分配至所述失效验证分片,由所述失效验证分片进行验证;
若所述失效原因为所述失效验证分片中的故障节点数大于预设故障值,所述第二验证单元具体用于:
利用节点随机分配算法为所述失效验证分片重新分配节点;
将所述跨分片交易重新分配至重新分配节点后的失效验证分片中进行验证。
4.根据权利要求3所述的装置,其特征在于,所述判断单元具体用于:
判断有效验证分片的个数与验证分片总数的比值是否大于或等于三分之二。
5.一种计算机设备,其特征在于,所述计算机设备包括:交互装置、输入/输出接口、处理器和存储器,所述存储器中存储有程序指令;
所述交互装置用于获取用户输入的操作指令;
所述处理器用于执行存储器中存储的程序指令,执行如权利要求1-2中任意一项所述的方法。
6.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在计算机设备上运行时,使得所述计算机设备执行如权利要求1-2中任意一项所述的方法。
CN202210428934.XA 2022-04-22 2022-04-22 一种区块链验证方法、装置、设备及介质 Active CN115002106B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210428934.XA CN115002106B (zh) 2022-04-22 2022-04-22 一种区块链验证方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210428934.XA CN115002106B (zh) 2022-04-22 2022-04-22 一种区块链验证方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN115002106A CN115002106A (zh) 2022-09-02
CN115002106B true CN115002106B (zh) 2024-04-12

Family

ID=83025159

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210428934.XA Active CN115002106B (zh) 2022-04-22 2022-04-22 一种区块链验证方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN115002106B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108882230A (zh) * 2018-06-01 2018-11-23 中国联合网络通信集团有限公司 通话记录管理方法、装置及系统
CN110808838A (zh) * 2019-10-24 2020-02-18 华东师范大学 一种面向联盟链的分片方法
CN112184244A (zh) * 2020-09-29 2021-01-05 壹链盟生态科技有限公司 基于区块链的共识达成方法、装置及存储介质
CN113064759A (zh) * 2021-04-02 2021-07-02 浙江永旗区块链科技有限公司 一种区块链数据回滚处理方法及其处理系统
CN113157457A (zh) * 2021-04-30 2021-07-23 工银科技有限公司 区块链分片负载均衡方法及装置
WO2021203739A1 (zh) * 2020-04-08 2021-10-14 江苏复杂美科技有限公司 区块链回滚保险方法、设备和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11108856B2 (en) * 2018-08-31 2021-08-31 Nakamoto & Turing Labs Inc Methods and apparatus for performing distributed computing using blockchain

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108882230A (zh) * 2018-06-01 2018-11-23 中国联合网络通信集团有限公司 通话记录管理方法、装置及系统
CN110808838A (zh) * 2019-10-24 2020-02-18 华东师范大学 一种面向联盟链的分片方法
WO2021203739A1 (zh) * 2020-04-08 2021-10-14 江苏复杂美科技有限公司 区块链回滚保险方法、设备和存储介质
CN112184244A (zh) * 2020-09-29 2021-01-05 壹链盟生态科技有限公司 基于区块链的共识达成方法、装置及存储介质
CN113064759A (zh) * 2021-04-02 2021-07-02 浙江永旗区块链科技有限公司 一种区块链数据回滚处理方法及其处理系统
CN113157457A (zh) * 2021-04-30 2021-07-23 工银科技有限公司 区块链分片负载均衡方法及装置

Also Published As

Publication number Publication date
CN115002106A (zh) 2022-09-02

Similar Documents

Publication Publication Date Title
EP3487149B1 (en) Data shard storage method, device and system
CN106406896B (zh) 一种并行PipeLine技术的区块链建块方法
US10209908B2 (en) Optimization of in-memory data grid placement
CN111131209B (zh) 一种改进的高效共识方法、系统、计算机设备及存储介质
CN111988203B (zh) 节点选举方法、装置及存储介质
US8381015B2 (en) Fault tolerance for map/reduce computing
EP3208714A1 (en) Data reconstruction method, apparatus and system in distributed storage system
CN106603618A (zh) 一种基于云平台的应用弹性伸缩方法
CN113553375B (zh) 一种面向图式区块链的分片存储装置及方法
WO2019148716A1 (zh) 数据传输方法、服务器及存储介质
CN111708627A (zh) 基于分布式调度框架的任务调度方法以及装置
CN106874143A (zh) 服务器备份方法及其备份系统
CN112671928A (zh) 设备集中管理架构、负载均衡方法、电子设备及存储介质
CN109873714B (zh) 云计算节点配置更新方法及终端设备
CN114520812B (zh) 用于区块链分片系统的存储轮换方法、系统、设备及应用
CN115002106B (zh) 一种区块链验证方法、装置、设备及介质
CN104281636A (zh) 海量报表数据并发分布式处理方法
WO2022142008A1 (zh) 数据处理方法、装置、电子设备及存储介质
CN117453357A (zh) 节点任务调度方法、装置、计算机设备及存储介质
CN109919768B (zh) 区块生成方法、装置、介质和计算设备
CN108459926B (zh) 数据异地备份方法、装置及计算机可读介质
CN115185744A (zh) 备份数据的有效性验证方法、装置及计算机设备
CN114119242A (zh) 基于自适应窗口分片的联盟链性能优化方法及装置
CN110502582B (zh) 一种分布式数据库的在线扩容方法
CN109558214B (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