CN115396504B - 一种区块链投票数据缓存方法、设备及介质 - Google Patents
一种区块链投票数据缓存方法、设备及介质 Download PDFInfo
- Publication number
- CN115396504B CN115396504B CN202211012810.XA CN202211012810A CN115396504B CN 115396504 B CN115396504 B CN 115396504B CN 202211012810 A CN202211012810 A CN 202211012810A CN 115396504 B CN115396504 B CN 115396504B
- Authority
- CN
- China
- Prior art keywords
- voting data
- voting
- time
- data
- check
- 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
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000012545 processing Methods 0.000 claims abstract description 50
- 230000001360 synchronised effect Effects 0.000 claims abstract description 8
- 238000012795 verification Methods 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 10
- 230000001502 supplementing effect Effects 0.000 claims description 4
- 238000012856 packing Methods 0.000 claims description 3
- 238000012216 screening Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种区块链投票数据缓存方法、设备及介质,属于区块链技术领域,用于解决现有的区块链的网络节点在大量接收请求信息时,容易造成寄存器饱和,不利于连续发射数据信息的技术问题。方法包括:将获取的投票数据存储到当前校验节点的缓存队列中;更新部分历史投票数据的锁定延迟时间;确定投票数据的锁定过期时间;判断投票栈中投票数据的锁定过期时间是否小于等于当前时间;若是,则将投票数据及投票数据之后入栈的投票数据全部进行出栈处理;若否,则在缓存队列中的投票数据的数量大于等于第一预设阈值后,将缓存队列中大于等于第一预设阈值的投票数据进行出列处理;将当前校验节点与其他校验节点进行同步处理,并广播到其他校验节点中。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块链投票数据缓存方法、设备及介质。
背景技术
区块链技术的本质是具备容错性的复制状态机,历史证明是目前部分公链的创新时间系统。历史证明机制使用哈希函数来测量时间的流逝,并确定网络上发生的各种事件(例如事务请求)的日期。使用历史证明的链节点通过寄存器,既可以了解经过的时间,又可以了解网络上发生的事件的时间顺序。
当至少有超过节点数三分之二的非拜占庭节点在同一视图时,如果不能及时的执行请求,则必须移动到一个新的视图中,最大化这段时间,并在这段时间中,时间呈指数级增长,直到请求被执行,容易造成网络节点执行缓慢,不能连续发射新的请求,区块链的延迟性高,不能及时有效的处理请求信息。
发明内容
本申请实施例提供了一种区块链投票数据缓存的方法、设备及介质,用于解决如下技术问题:现有的区块链的网络节点在大量接收请求信息时,容易造成寄存器饱和,不利于连续发射数据信息,具有较高的延迟性,效率比较低。
本申请实施例采用下述技术方案:
一方面,本申请实施例提供了一种区块链投票数据缓存方法,其特征在于,所述方法包括:将从各个区块链节点中获取的投票数据存储到当前校验节点的缓存队列中;其中,所述投票数据包括新增投票数据以及历史投票数据;将所述新增投票数据添加到投票栈中,并更新部分历史投票数据的锁定延迟时间;其中,所述历史投票数据为在所述新增投票数据之前入栈的投票数据;根据所述投票栈中的投票数据的投票时间以及锁定延迟时间,确定所述投票数据的锁定过期时间;判断所述投票栈中投票数据的锁定过期时间是否小于等于当前时间;若是,则将所述投票数据及所述投票数据之后入栈的投票数据全部进行出栈处理;若否,则在所述缓存队列中的投票数据的数量大于等于第一预设阈值后,将所述缓存队列中大于等于第一预设阈值的投票数据进行出列处理;将所述当前校验节点与其他校验节点进行同步处理,并将出栈处理的投票数据以及出列处理的投票数据广播到其他校验节点中。
本申请实施例通过对缓存队列中投票数据的合理调度,解决了在大量网络节点接收请求消息时,寄存器容易过饱和的问题,提高了连续发射数据信息的可行性,使延迟能够大幅度降低,具有更高的处理效率。
在一种可行的实施方式中,将从各个区块链节点中获取的投票数据存储到当前校验节点的缓存队列中,具体包括:通过所述各个区块链节点对应的客户端,生成所述投票数据;其中,所述投票数据中包括时间戳;遍历区块链中所有的校验节点,得到最新空闲节点;将所述投票数据发送到所述最新空闲节点的所述缓存队列中,得到所述新增投票数据。
在一种可行的实施方式中,遍历区块链中所有的校验节点,得到最新空闲节点,具体包括:遍历所有校验节点,并计算每个校验节点的最小集群提交的临界值深度;在所述临界值深度满足临界值规则的校验节点中,筛选总集群锁定时间大于第二预设阈值的校验节点作为目标校验节点;其中,所述临界值规则为:所述校验节点的最小集群提交的临界值深度大于等于50%;获取所述新增投票数据的时间戳,并将所述时间戳与所述目标校验节点的最新出栈时间进行差值计算,若计算出的差值小于第三预设阈值,则将所述目标校验节点确定为最新空闲节点。
在一种可行的实施方式中,根据所述投票栈中投票数据的投票时间以及锁定延迟时间,确定所述投票数据的锁定过期时间,具体包括:根据所述投票数据的时间戳,确定所述投票数据的投票时间;将更新后的所述历史投票数据的锁定延迟时间,以及其余投票数据的原始锁定延迟时间,确定为所述投票数据的最终锁定延迟时间;将所述投票时间与所述最终锁定延迟时间相加,得到所述锁定过期时间。
本申请实施例利用锁定延迟时间迫使校验节点将机会成本提交给特定的节点,锁定延迟是在时间单位槽位中测量的,因此校验节点需要等待一个实时的强制延迟,才能打破对其他节点的提交。
在一种可行的实施方式中,将所述新增投票数据添加到投票栈中,并更新部分历史投票数据的锁定延迟时间,具体包括:判断所述历史投票数据与所述投票栈的栈顶距离;若所述栈顶距离大于所述历史投票数据中的历史栈顶距离最大值,则对所述历史投票数据的锁定延迟时间进行翻倍处理;若所述栈顶距离小于等于所述历史投票数据中的所述历史栈顶距离最大值,则所述历史投票数据的锁定延迟时间不变。
在一种可行的实施方式中,判断所述投票栈中投票数据的锁定过期时间是否小于等于当前时间;若是,则将所述投票数据及所述投票数据之后入栈的投票数据全部进行出栈处理,具体包括:比较所述历史投票数据中的所述锁定过期时间与所述新增投票数据的入栈时间值的大小;其中,新增投票数据的入栈时间为所述当前时间;若所述历史投票数据中的所述锁定过期时间小于等于所述新增投票数据的入栈时间值,则将所述历史投票数据以及在所述历史投票数据之后入栈的投票数据全部进行出栈处理。
在一种可行的实施方式中,将所述当前校验节点与其他校验节点进行同步处理,具体包括:控制所述当前校验节点向所述其他校验节点发送校验状态包;其中,所述校验状态包中包括所述当前校验节点的区块哈希值以及区块高度值;若所述当前校验节点的区块高度高于所述其他校验节点的区块高度,则将所述当前校验节点高于所述其他校验节点的区块高度部分进行分批打包,并通过所述校验状态包,对所述其他校验节点进行补齐,得到补齐校验节点;若所述当前校验节点的区块高度不高于所述其他校验节点的区块高度,则将所述其他校验节点确定为共识校验节点;通过所述补齐校验节点与所述共识校验节点,组成同步处理后的其他校验节点。
在一种可行的实施方式中,将出栈处理的投票数据以及出列处理的投票数据广播到其他校验节点中,具体包括:对同步处理后的其他校验节点的区块头数据进行区块哈希计算,并根据计算结果,对同步处理后的每个其他校验节点进行共识验证,得到验证结果;其中,所述计算结果由共识节点索引与区块签名组成;若所述验证结果为通过时,则将所述出栈处理的投票数据以及出列处理的投票数据进行区块广播,以实现所述投票数据广播到更新后的所述其他校验节点中。
本申请实施例通过同步处理,可以使网络中每个节点都可以知道其他节点的状态,而无需与他们通信,类似于异步共识,实现将投票数据进行区块广播,有利于更加高效的处理数据信息,并且能够连续的发射数据信息,延迟性更低。
第二方面,本申请实施例还提供了一种区块链投票数据缓存设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有能够被所述至少一个处理器执行的指令,以使所述至少一个处理器能够执行上述任一实施方式所述的一种区块链投票数据缓存方法。
第三方面,本申请实施例还提供了一种非易失性计算机存储介质,所述存储介质为非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有至少一个程序,每个所述程序包括指令,所述指令当被终端执行时,使所述终端执行上述任一实施方式所述的一种区块链投票数据缓存方法。
本申请实施例提供了一种区块链投票数据缓存方法、设备及介质,能够在实用拜占庭容错时,让指数级增长的延时可在历史证明中计算并强制执行,加强了活性而非一致性,解决了在大量网络节点接收请求消息时,寄存器容易过饱和的问题,提高了连续发射数据信息的可行性,使延迟能够大幅度降低,具有更高的处理效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本申请实施例提供的一种区块链投票数据缓存方法流程图;
图2为本申请实施例提供的一种区块链投票数据缓存设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请实施例提供了一种区块链投票数据缓存方法,如图1所示,区块链投票数据缓存方法具体包括步骤S101-S106:
S101、将从各个区块链节点中获取的投票数据存储到当前校验节点的缓存队列中。
具体地,通过各个区块链节点对应的客户端,生成投票数据。其中,投票数据中包括时间戳。遍历所有校验节点,并计算每个校验节点的最小集群提交的临界值深度。在临界值深度满足临界值规则的校验节点中,筛选总集群锁定时间大于第二预设阈值的校验节点作为目标校验节点。其中,临界值规则为:校验节点的最小集群提交的临界值深度大于等于50%。获取新增投票数据的时间戳,并将时间戳与目标校验节点的最新出栈时间进行差值计算,若计算出的差值小于第三预设阈值,则将目标校验节点确定为最新空闲节点。
在一个实施例中,在投票栈索引7处,锁定延迟时间为256个时间单位。当索引7在集群中提交的临界值深度小于50%时,校验节点可以拒绝投票并让栈中索引为0至7的投票过期。每个校验节点独立控制提交给校验节点的风险,使更高频率的节点将允许校验节点获得更多奖励。
作为一种可行的实施方式,首先根据各个改进的实用拜占庭容错区块链节点对应的客户端,生成投票数据,然后对区块链中所有的校验节点进行遍历,计算每个校验节点的最小集群提交的临界值深度,并在临界规则下,对临界值深度进行筛选,选出总集群锁定时间大于第二预设阈值的校验节点作为目标校验节点,然后将新增投票数据的时间戳与目标校验节点的最新出栈时间进行差值计算,确定出差值并与第三预设阈值进行比较,当小于第三预设阈值时,该目标验证节点则为最新空闲节点。
进一步地,将投票数据发送到最新空闲节点的缓存队列中,得到新增投票数据。
S102、将新增投票数据添加到投票栈中,并更新部分历史投票数据的锁定延迟时间。
具体地,判断历史投票数据与投票栈的栈顶距离。若栈顶距离大于历史投票数据中的历史栈顶距离最大值,则对历史投票数据的锁定延迟时间进行翻倍处理;其中,投票数据新入栈时,它的锁定延迟时间为2个时间单位槽位。若栈顶距离小于等于历史投票数据中的历史栈顶距离最大值,则历史投票数据的锁定延迟时间不变。
票序 | 投票时间 | 锁定延迟 | 锁定过期时间 |
④ | 4 | 2 | 6 |
③ | 3 | 4 | 7 |
② | 2 | 8 | 10 |
① | 1 | 16 | 17 |
表1
票序 | 投票时间 | 锁定延迟 | 锁定过期时间 |
⑤ | 9 | 2 | 11 |
② | 2 | 8 | 10 |
① | 1 | 16 | 17 |
表2
票序 | 投票时间 | 锁定延迟 | 锁定过期时间 |
⑥ | 10 | 2 | 12 |
⑤ | 9 | 4 | 13 |
② | 2 | 8 | 10 |
① | 1 | 16 | 17 |
表3
在一个实施例中,表1为投票栈初始状态表,表2为在单位时间9(即当前时间为9)时投票数据⑤的入栈表,表3为在单位时间为10(即当前时间为10)时投票数据⑥的入栈表。如表1、表2和表3所示,当新增投票数据入栈后,把新增投票数据添加到该当前校验节点的缓存队列的投票栈中,当⑤入栈后,此时⑤与栈顶的距离为0,对应的锁定延迟时间为2,当⑥入栈后,也就是在单位时间为10时,⑤与栈顶的距离变成了历史新高:1,所以锁定延迟时间加倍,由单位时间2变为单位时间4,根据表1可得,①和②,由于到栈顶的距离没有达到历史新高,所对应的锁定延迟也不会改变。
S103、根据投票栈中的投票数据的投票时间以及锁定延迟时间,确定投票数据的锁定过期时间。
具体地,根据投票数据的时间戳,确定投票数据的投票时间。将更新后的历史投票数据的锁定延迟时间,以及其余投票数据的原始锁定延迟时间,确定为投票数据的最终锁定延迟时间。将投票时间与最终锁定延迟时间相加,得到锁定过期时间。
作为一种可行的实施方式,首先对投票数据的投票时间进行确定,然后将更新后的历史投票数据的锁定延迟时间,以及其余投票数据的原始锁定延迟时间,统一确定为投票数据的锁定延迟时间,即最终锁定延迟时间,然后将投票时间与最终锁定延迟时间相加,得到锁定过期时间。
在一个实施例中,如表2和表3所示,锁定过期时间都是由锁定延迟时间以及投票时间相加所得到的,也就是更新后的历史投票数据的锁定延迟时间,以及其余投票数据的原始锁定延迟时间,统一确定为投票数据的锁定延迟时间,依然满足上述锁定过期时间。
S104、判断投票栈中投票数据的锁定过期时间是否小于等于当前时间;若是,则将投票数据及投票数据之后入栈的投票数据全部进行出栈处理。
具体地,比较历史投票数据中的锁定过期时间与新增投票数据的入栈时间值的大小。其中,新增投票数据的入栈时间为当前时间。若历史投票数据中的锁定过期时间小于等于新增投票数据的入栈时间值,则将历史投票数据以及在历史投票数据之后入栈的投票数据全部进行出栈处理。
作为一种可行的实施方式,对历史投票数据中的锁定过期时间与新增投票数据的入栈时间值的大小进行比较,也就是,将历史投票数据中的锁定过期时间与当前时间进行比较,当历史投票数据中有锁定过期时间小于等于新增投票数据的入栈时间值,则将该历史投票数据以及,在该历史投票数据之后入栈的新增投票数据进行出栈处理,并且不因新入栈的新增投票数据的锁定过期时间的大小所影响。
票序 | 投票时间 | 锁定延迟 | 锁定过期时间 |
⑦ | 11 | 2 | 13 |
① | 1 | 16 | 17 |
表4
在一个实施例中,表4为单位时间为10(即当前时间为10)时投票数据⑦入栈表。结合表2和表1中的内容,当单位时间为9时,⑤入栈后,此时④和③的锁定过期时间分别为6和7,所以,它们的锁定过期时间要小于时间单位为9时的情况,将④和③进行出栈处理,由于⑤的锁定过期时间依然大于单位时间9,所以⑤留在栈中。
在一个实施例中,结合表3和表4所示,当时间单位为10时,⑦入栈,而此时虽然⑤和⑥的锁定过期时间要大于单位时间10,但是②的锁定过期时间为10,已经不满足在栈中的条件,所以要将②、⑤和⑥进行出栈处理,也就是,最后得到如表4所示的只保留了①和⑦。
S105、若投票栈中投票数据的锁定过期时间大于当前时间,则在缓存队列中的投票数据的数量大于等于第一预设阈值后,将缓存队列中大于等于第一预设阈值的投票数据进行出列处理。
具体地,当缓存队列的投票数据的数量大于等于第一预设阈值,将大于等于第一预设阈值的投票数据都要进行出列处理,也就是,当缓存队列中的投票栈已经存满时,将所有的投票数据全部进行出列,不保留任何投票数据。
作为一种可行的实施例,当投票栈到达32个投票时,可以认为该投票栈处于最大锁定状态,当任何锁定值等于或大于1<<32时,符合上述条件的投票数据都会出列。
S106、将当前校验节点与其他校验节点进行同步处理,并将出栈处理的投票数据以及出列处理的投票数据广播到其他校验节点中。
具体地,控制当前校验节点向其他校验节点发送校验状态包;其中,校验状态包中包括当前校验节点的区块哈希值以及区块高度值。若当前校验节点的区块高度高于其他校验节点的区块高度,则将当前校验节点高于其他校验节点的区块高度部分进行分批打包,并通过校验状态包,对其他校验节点进行补齐,得到补齐校验节点。若当前校验节点的区块高度不高于其他校验节点的区块高度,则将其他校验节点确定为共识校验节点。通过补齐校验节点与共识校验节点,组成同步处理后的其他校验节点。
作为一种可行的实施方式,当前校验节点向其他校验节点发送校验状态包,来实现对其他校验节点的同步处理,通过对当前校验节点的区块高度与其他校验节点的区块高度的判断,实现对其他校验节点的同步处理,将当前校验节点高于其他校验节点的区块高度部分进行分批打包,得到补齐校验节点,当前校验节点的区块高度不高于其他校验节点的区块高度时,将其他校验节点确定为共识校验节点,最后将补齐校验节点与共识校验节点共同组成同步处理后的其他校验节点。
进一步地,对同步处理后的其他校验节点的区块头数据进行区块哈希计算,并根据计算结果,对同步处理后的每个其他校验节点进行共识验证,得到验证结果。其中,计算结果由共识节点索引与区块签名组成。若验证结果为通过时,则将出栈处理的投票数据以及出列处理的投票数据进行区块广播,以实现投票数据广播到更新后的其他校验节点中。
作为一种可行的实施方式,通过对同步处理后的其他校验节点的区块头数据进行区块哈希计算,对同步处理后的每个其他校验节点进行共识验证,然后根据验证结果,实现对出栈及出列的投票数据进行签名验证,来实现将验证通过后的投票数据广播到改进的实用拜占庭容错区块链中的各个区块中,最后执行来自客户端的请求操作消息的操作。
另外,本申请实施例还提供了一种区块链投票数据缓存设备,如图2所示,设备具体200包括:
至少一个处理器201,以及,与至少一个处理器201通信连接的存储器202。其中,存储器202存储有能够被至少一个处理器201执行的指令,以使至少一个处理器201能够执行:
将从各个区块链节点中获取的投票数据存储到当前校验节点的缓存队列中;其中,投票数据包括新增投票数据以及历史投票数据;
将新增投票数据添加到投票栈中,并更新部分历史投票数据的锁定延迟时间;其中,历史投票数据为在新增投票数据之前入栈的投票数据;
根据投票栈中的投票数据的投票时间以及锁定延迟时间,确定投票数据的锁定过期时间;
判断投票栈中投票数据的锁定过期时间是否小于等于当前时间;若是,则将投票数据及投票数据之后入栈的投票数据全部进行出栈处理;
若否,则在缓存队列中的投票数据的数量大于等于第一预设阈值后,将缓存队列中大于等于第一预设阈值的投票数据进行出列处理;
将当前校验节点与其他校验节点进行同步处理,并将出栈处理的投票数据以及出列处理的投票数据广播到其他校验节点中。
本申请实施例还提供了一种可读性存储介质一种非易失性计算机存储介质,其特征在于,所述存储介质为非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有至少一个程序,每个所述程序包括指令,所述指令当被终端执行时,使所述终端执行:
将从各个区块链节点中获取的投票数据存储到当前校验节点的缓存队列中;其中,投票数据包括新增投票数据以及历史投票数据;将新增投票数据添加到投票栈中,并更新部分历史投票数据的锁定延迟时间;其中,历史投票数据为在新增投票数据之前入栈的投票数据;根据投票栈中的投票数据的投票时间以及锁定延迟时间,确定投票数据的锁定过期时间;判断投票栈中投票数据的锁定过期时间是否小于等于当前时间;若是,则将投票数据及投票数据之后入栈的投票数据全部进行出栈处理;若否,则在缓存队列中的投票数据的数量大于等于第一预设阈值后,将缓存队列中大于等于第一预设阈值的投票数据进行出列处理;将当前校验节点与其他校验节点进行同步处理,并将出栈处理的投票数据以及出列处理的投票数据广播到其他校验节点中。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请提出了一种区块链投票数据缓存的方法、设备及介质,使用历史证明作为实用拜占庭容错区块链共识算法的网络时钟,能够在节点在拜占庭容错时,让指数级增长的延时可在历史证明中计算并强制执行,加强了活性而非一致性,解决了在大量网络节点接收请求消息时,寄存器容易过饱和的问题,提高了连续发射数据信息的可行性,使延迟能够大幅度降低,具有更高的处理效率。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请的实施例可以有各种更改和变化。凡在本申请实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种区块链投票数据缓存方法,其特征在于,所述方法包括:
将从各个区块链节点中获取的投票数据存储到当前校验节点的缓存队列中;其中,所述投票数据包括新增投票数据以及历史投票数据;
将所述新增投票数据添加到投票栈中,并更新部分历史投票数据的锁定延迟时间;其中,所述历史投票数据为在所述新增投票数据之前入栈的投票数据;
根据所述投票栈中的投票数据的投票时间以及锁定延迟时间,确定所述投票数据的锁定过期时间;
判断所述投票栈中投票数据的锁定过期时间是否小于等于当前时间;若是,则将所述投票数据及所述投票数据之后入栈的投票数据全部进行出栈处理;
若否,则在所述缓存队列中的投票数据的数量大于等于第一预设阈值后,将所述缓存队列中大于等于第一预设阈值的投票数据进行出列处理;
将所述当前校验节点与其他校验节点进行同步处理,并将出栈处理的投票数据以及出列处理的投票数据广播到其他校验节点中。
2.根据权利要求1所述的一种区块链投票数据缓存方法,其特征在于,将从各个区块链节点中获取的投票数据存储到当前校验节点的缓存队列中,具体包括:
通过所述各个区块链节点对应的客户端,生成所述投票数据;其中,所述投票数据中包括时间戳;
遍历区块链中所有的校验节点,得到最新空闲节点;
将所述投票数据发送到所述最新空闲节点的所述缓存队列中,得到所述新增投票数据。
3.根据权利要求2所述的一种区块链投票数据缓存方法,其特征在于,遍历区块链中所有的校验节点,得到最新空闲节点,具体包括:
遍历所有校验节点,并计算每个校验节点的最小集群提交的临界值深度;
在所述临界值深度满足临界值规则的校验节点中,筛选总集群锁定时间大于第二预设阈值的校验节点作为目标校验节点;其中,所述临界值规则为:所述校验节点的最小集群提交的临界值深度大于等于50%;
获取所述新增投票数据的时间戳,并将所述时间戳与所述目标校验节点的最新出栈时间进行差值计算,若计算出的差值小于第三预设阈值,则将所述目标校验节点确定为最新空闲节点。
4.根据权利要求1所述的一种区块链投票数据缓存方法,其特征在于,根据所述投票栈中投票数据的投票时间以及锁定延迟时间,确定所述投票数据的锁定过期时间,具体包括:
根据所述投票数据的时间戳,确定所述投票数据的投票时间;
将更新后的所述历史投票数据的锁定延迟时间,以及其余投票数据的原始锁定延迟时间,确定为所述投票数据的最终锁定延迟时间;
将所述投票时间与所述最终锁定延迟时间相加,得到所述锁定过期时间。
5.根据权利要求1所述的一种区块链投票数据缓存方法,其特征在于,将所述新增投票数据添加到投票栈中,并更新部分历史投票数据的锁定延迟时间,具体包括:
判断所述历史投票数据与所述投票栈的栈顶距离;
若所述栈顶距离大于所述历史投票数据中的历史栈顶距离最大值,则对所述历史投票数据的锁定延迟时间进行翻倍处理;
若所述栈顶距离小于等于所述历史投票数据中的所述历史栈顶距离最大值,则所述历史投票数据的锁定延迟时间不变。
6.根据权利要求1所述的一种区块链投票数据缓存方法,其特征在于,判断所述投票栈中投票数据的锁定过期时间是否小于等于当前时间;若是,则将所述投票数据及所述投票数据之后入栈的投票数据全部进行出栈处理,具体包括:
比较所述历史投票数据中的所述锁定过期时间与所述新增投票数据的入栈时间值的大小;其中,新增投票数据的入栈时间为所述当前时间;
若所述历史投票数据中的所述锁定过期时间小于等于所述新增投票数据的入栈时间值,则将所述历史投票数据以及在所述历史投票数据之后入栈的投票数据全部进行出栈处理。
7.根据权利要求1所述的一种区块链投票数据缓存方法,其特征在于,将所述当前校验节点与其他校验节点进行同步处理,具体包括:
控制所述当前校验节点向所述其他校验节点发送校验状态包;其中,所述校验状态包中包括所述当前校验节点的区块哈希值以及区块高度值;
若所述当前校验节点的区块高度高于所述其他校验节点的区块高度,则将所述当前校验节点高于所述其他校验节点的区块高度部分进行分批打包,并通过所述校验状态包,对所述其他校验节点进行补齐,得到补齐校验节点;
若所述当前校验节点的区块高度不高于所述其他校验节点的区块高度,则将所述其他校验节点确定为共识校验节点;
通过所述补齐校验节点与所述共识校验节点,组成同步处理后的其他校验节点。
8.根据权利要求7所述的一种区块链投票数据缓存方法,其特征在于,将出栈处理的投票数据以及出列处理的投票数据广播到其他校验节点中,具体包括:
对同步处理后的其他校验节点的区块头数据进行区块哈希计算,并根据计算结果,对同步处理后的每个其他校验节点进行共识验证,得到验证结果;其中,所述计算结果由共识节点索引与区块签名组成;
若所述验证结果为通过时,则将所述出栈处理的投票数据以及出列处理的投票数据进行区块广播,以实现所述投票数据广播到更新后的所述其他校验节点中。
9.一种区块链投票数据缓存设备,其特征在于,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有能够被所述至少一个处理器执行的指令,以使所述至少一个处理器能够执行根据权利要求1-8任一项所述的一种区块链投票数据缓存方法。
10.一种非易失性计算机存储介质,其特征在于,所述存储介质为非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有至少一个程序,每个所述程序包括指令,所述指令当被终端执行时,使所述终端执行根据权利要求1-8任一项所述的一种区块链投票数据缓存方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211012810.XA CN115396504B (zh) | 2022-08-23 | 2022-08-23 | 一种区块链投票数据缓存方法、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211012810.XA CN115396504B (zh) | 2022-08-23 | 2022-08-23 | 一种区块链投票数据缓存方法、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115396504A CN115396504A (zh) | 2022-11-25 |
CN115396504B true CN115396504B (zh) | 2024-01-16 |
Family
ID=84120140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211012810.XA Active CN115396504B (zh) | 2022-08-23 | 2022-08-23 | 一种区块链投票数据缓存方法、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115396504B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190054738A (ko) * | 2017-11-14 | 2019-05-22 | 주식회사 아이콘루프 | 비잔틴 장애를 극복 가능한 블록체인 생성 방법 |
CN110246038A (zh) * | 2019-04-26 | 2019-09-17 | 众安信息技术服务有限公司 | 一种区块链交易快速确认方法及系统 |
CN110288479A (zh) * | 2019-06-28 | 2019-09-27 | 深圳市网心科技有限公司 | 一种区块链数据的共识方法及相关设备 |
CN110300172A (zh) * | 2019-06-28 | 2019-10-01 | 深圳市网心科技有限公司 | 一种区块链数据的共识方法及相关设备 |
CN110708171A (zh) * | 2019-12-13 | 2020-01-17 | 腾讯科技(深圳)有限公司 | 区块链共识投票方法、装置、设备以及存储介质 |
CN110708163A (zh) * | 2019-09-10 | 2020-01-17 | 杭州秘猿科技有限公司 | 一种区块链的共识方法、装置、系统和电子设备 |
WO2020138532A1 (ko) * | 2018-12-27 | 2020-07-02 | 서강대학교 산학협력단 | 사물 인터넷 환경을 위한 동적 블라인드 투표기반의 블록체인 합의방법 |
WO2020133326A1 (zh) * | 2018-12-29 | 2020-07-02 | 北京建极练科技有限公司 | 区块链生成方法、系统、计算机存储介质和电子设备 |
CN111427957A (zh) * | 2020-03-26 | 2020-07-17 | 财付通支付科技有限公司 | 区块链投票信息校验方法、装置、设备以及存储介质 |
CN112187490A (zh) * | 2019-07-01 | 2021-01-05 | 深圳法大大网络科技有限公司 | 一种拜占庭容错共识方法及系统 |
CN113342902A (zh) * | 2021-08-09 | 2021-09-03 | 腾讯科技(深圳)有限公司 | 区块链网络的数据处理方法、装置、计算机设备和介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111522800B (zh) * | 2020-07-03 | 2020-10-30 | 支付宝(杭州)信息技术有限公司 | 蜜獾拜占庭容错共识机制的区块链共识方法、节点及系统 |
-
2022
- 2022-08-23 CN CN202211012810.XA patent/CN115396504B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190054738A (ko) * | 2017-11-14 | 2019-05-22 | 주식회사 아이콘루프 | 비잔틴 장애를 극복 가능한 블록체인 생성 방법 |
WO2020138532A1 (ko) * | 2018-12-27 | 2020-07-02 | 서강대학교 산학협력단 | 사물 인터넷 환경을 위한 동적 블라인드 투표기반의 블록체인 합의방법 |
WO2020133326A1 (zh) * | 2018-12-29 | 2020-07-02 | 北京建极练科技有限公司 | 区块链生成方法、系统、计算机存储介质和电子设备 |
CN110246038A (zh) * | 2019-04-26 | 2019-09-17 | 众安信息技术服务有限公司 | 一种区块链交易快速确认方法及系统 |
CN110288479A (zh) * | 2019-06-28 | 2019-09-27 | 深圳市网心科技有限公司 | 一种区块链数据的共识方法及相关设备 |
CN110300172A (zh) * | 2019-06-28 | 2019-10-01 | 深圳市网心科技有限公司 | 一种区块链数据的共识方法及相关设备 |
CN112187490A (zh) * | 2019-07-01 | 2021-01-05 | 深圳法大大网络科技有限公司 | 一种拜占庭容错共识方法及系统 |
CN110708163A (zh) * | 2019-09-10 | 2020-01-17 | 杭州秘猿科技有限公司 | 一种区块链的共识方法、装置、系统和电子设备 |
CN110708171A (zh) * | 2019-12-13 | 2020-01-17 | 腾讯科技(深圳)有限公司 | 区块链共识投票方法、装置、设备以及存储介质 |
CN111427957A (zh) * | 2020-03-26 | 2020-07-17 | 财付通支付科技有限公司 | 区块链投票信息校验方法、装置、设备以及存储介质 |
CN113342902A (zh) * | 2021-08-09 | 2021-09-03 | 腾讯科技(深圳)有限公司 | 区块链网络的数据处理方法、装置、计算机设备和介质 |
Non-Patent Citations (1)
Title |
---|
基于区块链的投票系统设计;郄九玲;胡浩;;通信技术(第07期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115396504A (zh) | 2022-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Spiegelman et al. | Bullshark: Dag bft protocols made practical | |
CN111131209B (zh) | 一种改进的高效共识方法、系统、计算机设备及存储介质 | |
US20230273912A1 (en) | Data processing method and apparatus for blockchain network, computer device, and computer-readable storage medium | |
Minsky et al. | Tolerating malicious gossip | |
US20220067063A1 (en) | Apparatus and method for adaptively managing sharded blockchain network based on deep q network | |
Yu et al. | Improved blockchain consensus mechanism based on PBFT algorithm | |
CN111104235A (zh) | 一种基于队列的业务请求异步处理方法及装置 | |
WO2022217807A1 (zh) | 区块链共识节点选择方法、装置、计算机设备和存储介质 | |
CN114157672B (zh) | 一种基于pbft的s-pbft简化共识协议运行及并行优化方法 | |
CN110705893A (zh) | 一种业务节点管理方法、装置、设备以及存储介质 | |
CN116304390B (zh) | 时序数据处理方法、装置、存储介质及电子设备 | |
CN114726517A (zh) | 一种区块链上产生随机数种子的方法、系统和共识节点 | |
CN111277627B (zh) | 一种基于贡献量权重证明共识机制的方法 | |
CN108206839A (zh) | 一种基于多数派数据存储方法、装置及系统 | |
Zhang et al. | EB-BFT: An elastic batched BFT consensus protocol in blockchain | |
CN115396504B (zh) | 一种区块链投票数据缓存方法、设备及介质 | |
CN112541040A (zh) | 一种流水号生成方法和装置 | |
Xu et al. | FAIR-BFL: Flexible and incentive redesign for blockchain-based federated learning | |
CN110502539A (zh) | 一种olap动态缓存方法及装置 | |
CN114499874A (zh) | 一种应用于工业互联网的拜占庭容错共识优化方法 | |
CN116074331A (zh) | 区块数据同步方法及相关产品 | |
CN116192868B (zh) | 一种应用于联盟链的并行拜占庭容错共识方法及终端 | |
An et al. | Research on Byzantine Fault Tolerant algorithm based on Node Weights | |
CN111711537B (zh) | 备用主节点列表更新方法、装置及设备 | |
CN118473640B (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 |