区块生成方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:21166772 阅读:36 留言:0更新日期:2019-05-22 09:35
本申请提供了一种区块生成方法、装置、计算机设备和存储介质,其中,该方法包括:第一节点获取第一节点与第二节点之间的平均网络延迟和最大网络延迟;第一节点根据平均网络延迟确定第一节点和第二节点之间的平均系统时间差值;第一节点接收第二节点生成的区块,并确定接收到区块时的本地时间戳,其中,区块中携带有时间戳;第一节点根据平均网络延迟、最大网络延迟、平均系统时间差值、本地时间戳和区块所携带的时间戳确定区块是否为第二节点在满足预设时间要求的出块时间生成的区块。上述方案解决了现有技术中区块时间合理性判断准确率低的技术问题,达到了有效提升区块时间合理性判断的准确率以及提高区块生成效率的技术效果。

Block generation methods, devices, computer equipment and storage media

This application provides a block generation method, device, computer equipment and storage medium, in which the method includes: the first node obtains the average network delay and the maximum network delay between the first node and the second node; the first node determines the average system time difference between the first node and the second node based on the average network delay; and the first node receives the second node generation. The first node determines whether the block is a block generated by the second node according to the average network delay, the maximum network delay, the average system time difference, the local time stamp and the time stamp carried by the block. The above scheme solves the technical problem of low accuracy of block time reasonableness judgment in the existing technology, and achieves the technical effect of effectively improving the accuracy of block time reasonableness judgment and the efficiency of block generation.

【技术实现步骤摘要】
区块生成方法、装置、计算机设备和存储介质
本申请涉及区块链
,特别涉及一种区块生成方法、装置、计算机设备和存储介质。
技术介绍
随着互联网技术的不断发展,区块链技术的发展也越来越迅速。区块链技术是一种去中心化且公开透明的技术。区块链技术采用数据区块打破了目前互联网对中心服务器的依赖,网络中产生的所有数据都会被区块生成节点进行记录,并通过数据的广播和其他节点的验证,以形成新的区块并上链至区块链的尾部。待上链区块被确认后,该新的区块被永久记录于区块链中;而对于得不到确认的区块,将区块中的数据回滚。在所有实现BFT(ByzantineFaultTolerance,拜占庭容错)机制的共识算法中,在该算法中,区块能否被通过其他区块的验证取决于该区块是否是合理的,而在并行确认的BFT机制中,判断区块是否合理的依据需要根据当前时间是否是当前区块的提议人的出块周期,在时间符合的情况下,才会进一步判断区块的合理性。然而,大多数区块链系统本身并没有做时钟同步,即便有个别区块链系统实现了部分时钟同步简单协议,但也只能保证本节点在没有恶意修改系统时间的前提下的节点时间的准确性,无法准确判断区块时间的合理性。针对上述问题,目前尚未提出有效的解决方案。
技术实现思路
本申请实施例提供了一种区块生成方法、装置、计算机设备和存储介质,以解决现有技术中判断区块时间合理性的准确率低的问题。本申请实施例提供了一种区块生成方法,包括:第一节点获取第一节点与第二节点之间的平均网络延迟和最大网络延迟;第一节点根据平均网络延迟确定第一节点和第二节点之间的平均系统时间差值;第一节点接收第二节点生成的区块,并确定接收到区块时的本地时间戳,其中,区块中携带有时间戳;第一节点根据平均网络延迟、最大网络延迟、平均系统时间差值、本地时间戳和区块所携带的时间戳确定区块是否为第二节点在满足预设时间要求的出块时间生成的区块。在一个实施例中,第一节点获取第一节点与第二节点之间的平均网络延迟和最大网络延迟,包括:第一节点重复执行N次如下信息交互操作,以得到N个网络延迟数据:第一节点发送ping报文给第二节点,其中,ping报文中携带有ping报文离开第一节点的第一时间戳;第一节点接收第二节点响应于ping报文返回的pong报文;第一节点计算第一节点接收到pong报文的第二时间戳;第一节点根据第一时间戳和第二时间戳计算第一节点和第二节点之间的网络延迟数据,其中,N为正整数;第一节点根据N个网络延迟数据确定第一节点和第二节点之间的平均网络延迟和最大网络延迟。在一个实施例中,第一节点根据N个网络延迟数据确定第一节点和第二节点之间的平均网络延迟和最大网络延迟,包括:按照以下公式计算网络延迟均值:按照以下公式计算最大网络延迟:NetDelaymax=Max(Delay0:DelayN-1);根据计算得到的网络延迟均值和预设的系统允许最大网络延迟,确定平均网络延迟,其中,NetDelayaver为网络延迟均值,NetDelaymax为最大网络延迟,i=0,...,N-1,Delayi是第一节点在第i次执行信息交互操作中计算得到的第一节点和第二节点之间的网络延迟数据,Delayi=(T2i-T1i)/2,其中,T2i是第i次信息交互操作中的第二时间戳,T1i是第i次信息交互操作中的第一时间戳。在一个实施例中,根据计算得到的网络延迟均值和预设的系统允许最大网络延迟,计算平均网络延迟,包括:确定网络延迟均值是否大于预设的系统允许最大网络延迟;在确定网络延迟均值大于预设的系统允许最大网络延迟的情况下,将预设的系统允许最大网络延迟确定为平均网络延迟;在确定网络延迟均值不大于预设的系统允许最大网络延迟的情况下,将网络延迟均值确定为平均网络延迟。在一个实施例中,第一节点根据平均网络延迟确定第一节点和第二节点之间的平均系统时间差值,包括:按照以下公式计算系统时间差值均值:其中,TimeDiffaver为系统时间差值均值,NetDelay为平均网络延迟,T2i是第i次信息交互操作中的第二时间戳,T1i是第i次信息交互操作中的第一时间戳;根据系统时间差值均值和预设的系统允许最大系统时间差值,确定平均系统时间差值。在一个实施例中,根据系统时间差值均值和系统允许的最大系统时间差值阈值,确定平均系统时间差,可以包括:确定系统时间差值均值是否大于预设的系统允许最大系统时间差值;在确定系统时间差值均值大于预设的系统允许最大系统时间差值的情况下,将预设的系统允许最大系统时间差值确定为平均系统时间差值;在确定系统时间差值均值不大于预设的系统允许最大系统时间差值的情况下,将系统时间差值均值确定为平均系统时间差值。在一个实施例中,第一节点根据平均网络延迟、最大网络延迟、平均系统时间差值、本地时间戳和区块所携带的时间戳确定区块是否为第二节点在满足预设时间要求的出块时间生成的区块,包括验证以下不等式是否成立以确定区块是否为第二节点在满足预设时间要求的出块时间生成的区块:Localtime+TimeDiff+NetDelaymax≥timestamp+NetDelay≥Localtime+TimeDiff,其中,Localtime为本地时间戳,TimeDiff为平均系统时间差值,NetDelaymax为最大网络延迟,timestamp为区块中携带的时间戳,NetDelay为平均网络延迟。本申请实施例还提供了一种区块生成装置,位于第一节点中,包括:获取模块,用于获取第一节点与第二节点之间的平均网络延迟和最大网络延迟;第一确定模块,用于根据平均网络延迟确定第一节点和第二节点之间的平均系统时间差值;接收模块,用于接收第二节点生成的区块,并确定接收到区块时的本地时间戳,其中,区块中携带有时间戳;第二确定模块,用于根据平均网络延迟、最大网络延迟、平均系统时间差值、本地时间戳和区块所携带的时间戳确定区块是否为第二节点在满足预设时间要求的出块时间生成的区块。本申请实施例还提供一种计算机设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述任意实施例中所述的区块生成方法的步骤。本申请实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述任意实施例中所述的区块生成方法的步骤。在本申请实施例中,提供了一种区块生成方法,第一节点首先获取第一节点和第二节点之间的平均网络延迟、最大网络延迟和平均系统时间差值,接收第二节点生成的区块并计算接收到该区块时的本地时间戳,再根据获得的平均网络延迟、最大网络延迟、平均系统时间差值、本地时间戳和区块所携带的时间戳确定该区块是否为第二节点在满足预设时间要求的出块时间生成的区块。上述方案中的区块生成方法,通过结合本地时间戳、区块所携带的时间戳、平均网络延迟、最大网络延迟和平均系统时间差值来综合判断接收到的区块是否为第二节点在正常出块时间生成的区块,相比于现有技术中仅基于区块所携带的时间戳来进行判断,本方案的方法可以更准确地进行判断,可以降低区块时间合理性的误判率,从而避免或减少对时间不合理的区块做出进一步验证和确认而导致的恶意分叉和系统资源浪费,进而提高区块生成效率。通过上述方案解决了现有技术中区块时间合理性判断准确率低的技术问题,达到了有本文档来自技高网...

【技术保护点】
1.一种区块生成方法,其特征在于,包括:第一节点获取所述第一节点与第二节点之间的平均网络延迟和最大网络延迟;所述第一节点根据所述平均网络延迟确定所述第一节点和所述第二节点之间的平均系统时间差值;所述第一节点接收所述第二节点生成的区块,并确定接收到所述区块时的本地时间戳,其中,所述区块中携带有时间戳;所述第一节点根据所述平均网络延迟、所述最大网络延迟、所述平均系统时间差值、所述本地时间戳和所述区块所携带的时间戳确定所述区块是否为所述第二节点在满足预设时间要求的出块时间生成的区块。

【技术特征摘要】
1.一种区块生成方法,其特征在于,包括:第一节点获取所述第一节点与第二节点之间的平均网络延迟和最大网络延迟;所述第一节点根据所述平均网络延迟确定所述第一节点和所述第二节点之间的平均系统时间差值;所述第一节点接收所述第二节点生成的区块,并确定接收到所述区块时的本地时间戳,其中,所述区块中携带有时间戳;所述第一节点根据所述平均网络延迟、所述最大网络延迟、所述平均系统时间差值、所述本地时间戳和所述区块所携带的时间戳确定所述区块是否为所述第二节点在满足预设时间要求的出块时间生成的区块。2.根据权利要求1所述的方法,其特征在于,第一节点获取所述第一节点与第二节点之间的平均网络延迟和最大网络延迟,包括:所述第一节点重复执行N次如下信息交互操作,以得到N个网络延迟数据:所述第一节点发送ping报文给所述第二节点,其中,所述ping报文中携带有ping报文离开所述第一节点的第一时间戳;所述第一节点接收所述第二节点响应于所述ping报文返回的pong报文;所述第一节点计算所述第一节点接收到所述pong报文的第二时间戳;所述第一节点根据所述第一时间戳和所述第二时间戳计算所述第一节点和所述第二节点之间的网络延迟数据,其中,N为正整数;所述第一节点根据所述N个网络延迟数据确定所述第一节点和所述第二节点之间的平均网络延迟和最大网络延迟。3.根据权利要求2所述的方法,其特征在于,所述第一节点根据所述N个网络延迟数据确定所述第一节点和所述第二节点之间的平均网络延迟和最大网络延迟,包括:按照以下公式计算网络延迟均值:按照以下公式计算所述最大网络延迟:NetDelaymax=Max(Delay0:DelayN-1);根据计算得到的所述网络延迟均值和预设的系统允许最大网络延迟,确定所述平均网络延迟,其中,NetDelayaver为所述网络延迟均值,NetDelaymax为所述最大网络延迟,i=0,...,N-1,Delayi是所述第一节点在第i次执行所述信息交互操作中计算得到的所述第一节点和所述第二节点之间的网络延迟数据,Delayi=(T2i-T1i)/2,其中,T2i是第i次信息交互操作中的所述第二时间戳,T1i是第i次信息交互操作中的所述第一时间戳。4.根据权利要求3所述的方法,其特征在于,根据计算得到的所述网络延迟均值和预设的系统允许最大网络延迟,计算所述平均网络延迟,包括:确定所述网络延迟均值是否大于所述预设的系统允许最大网络延迟;在确定所述网络延迟均值大于所述预设的系统允许最大网络延迟的情况下,将所述预设的系统允许最大网络延迟确定为所述平均网络延迟;在确定所述网络延迟均值不大于所述预设的系统允许最大网络延迟的情况下,将所述网络延迟均值确定为所述平均网络延迟。5.根据权利要求4所述的方法,其特征...

【专利技术属性】
技术研发人员:李升林姜海涛孙立林
申请(专利权)人:矩阵元技术深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1