区块链数据分发加速方法、装置、设备及可读存储介质制造方法及图纸

技术编号:37076338 阅读:10 留言:0更新日期:2023-03-29 19:52
本申请涉及一种区块链数据分发加速方法、装置、设备及可读存储介质,涉及通信领域,其方法包括:接收至少一个待写入区块,每个待写入区块均通过数据广播传输链路或P2P谣言散播传输链路进行分发;按照预设的验证顺序,依次对至少一个待写入区块进行区块文件验证;若区块文件验证成功且待写入区块的区块高度为账本的最高区块高度的下一区块高度,则对区块文件验证成功的待写入区块进行记账,作为已写入区块;若区块文件验证失败、待写入区块的区块高度为账本的最高区块高度的下一区块高度且待写入区块通过数据广播传输链路分发,则将待写入区块丢弃并唤醒区块链Pull引擎,从其它区块链节点拉取待写入区块。本申请具有降低区块链交易记账时延的效果。交易记账时延的效果。交易记账时延的效果。

【技术实现步骤摘要】
区块链数据分发加速方法、装置、设备及可读存储介质


[0001]本申请涉及通信
,尤其是涉及一种区块链数据分发加速方法、装置、设备及可读存储介质。

技术介绍

[0002]区域链在本质上是一种记账方法,是由根据时间顺序生成的记录交易数据的区块链接组合形成,构成了系统内所有节点共享的交易数据库,使得以去中心化的方式集体维护数据库,具有“不可伪造”、“全程留痕”、“可以追溯”、“公开透明”、“集体维护”等特征。
[0003]区块链记账通常采用P2P(Peer to Peer)谣言散播的方式将一个节点的区块分发给区块链网络中的所有节点,P2P谣言散播分发中一般有两种节点间通信方式:Push和Pull,Push即节点收到新区块后选择其它节点去推送区块;Pull即节点定时或者被唤醒随机选择其它节点去拉取区块。一般而言,Push方式除带宽以外不需要考虑其他节点及网络状况,可以做eager push,Pull方式虽然理论上收敛快,但是和其它节点沟通交互多,需要顾及其它节点及网络状况,实际调用时不可能很密集,故常常lazy pull。
[0004]P2P谣言散播中,由于区块链不可能无休止持续Push下去,区块链中一般存在有类似“免疫屏障”的机制来使得Push停止,但是这样的机制也使得区块链中存在的“长尾节点”迟迟没有接收到推送的区块。同时系统中的Pull方式为了避免和Push发生转发带宽竞争,通常采用的Lazy Pull机制,由于节点无法得知新传播的区块信息,又缺乏良好准确的Pull触发方式,这使得谣言散播的同步效率不高,增加了区块链交易记账时延。

技术实现思路

[0005]为了降低区块链交易记账时延,本申请提供一种区块链数据分发加速方法、装置、设备及可读存储介质。
[0006]第一方面,本申请提供一种区块链数据分发加速方法,采用如下的技术方案:一种区块链数据分发加速方法,应用于区块链节点,所述方法包括:接收至少一个待写入区块,其中,每个待写入区块均通过数据广播传输链路或P2P谣言散播传输链路进行分发;按照预设的验证顺序,依次对所述至少一个待写入区块进行区块文件验证;对于任一所述待写入区块,若所述区块文件验证成功且所述待写入区块的区块高度为账本的最高区块高度的下一区块高度,则对区块文件验证成功的待写入区块进行记账,作为已写入区块;若所述区块文件验证失败、所述待写入区块的区块高度为账本的最高区块高度的下一区块高度且所述待写入区块通过数据广播传输链路分发,则将所述待写入区块丢弃并唤醒区块链Pull引擎,从其它区块链节点拉取所述待写入区块;若所述区块文件验证失败、所述待写入区块的区块高度为账本的最高区块高度的下一区块高度且所述待写入区块通过P2P谣言散播传输链路分发,则将所述待写入区块丢
弃。
[0007]通过采用上述技术方案,本申请区块链数据分发加速方法,利用传统的P2P谣言散播对待写入区块进行分发的基础上,并行一条或多条数据广播传输链路对待写入区块进行分发,哪条传输链路的待写入区块先到达,先进行区块文件验证,对于区块文件验证失败且通过数据广播传输链路分发的待写入区块,区块链节点唤醒区块链Pull引擎去其它区块链节点分布式拉取该待写入区块,降低了数据广播传输链路重传引发的时延,不仅提高了区块分发效率,还提高了区块分发的成功率。另外,还去除了传统的数据广播传输链路重传所需要的中心化内容重传服务器,降低成本。
[0008]可选的,若所述区块文件验证失败、所述待写入区块的区块高度为账本的最高区块高度的下一区块高度,则所述方法还包括:对所述待写入区块所对应的数据广播传输链路或P2P谣言散播传输链路的链路质量参数进行统计更新。
[0009]通过采用上述技术方案,多条传输链路并行的方式虽然可以加上区块的分发,但是还是存在传输链路发生误码率、丢包率的可能性,使待写入区块的区块文件验证失败,区块链节点对区块文件验证失败的待写入区块所对应的传输链路的链路质量进行统计更新,及时对上层应用进行提醒,便于区块链按照预设策略对数据广播传输链路进行切换、关闭。
[0010]可选的,在所述对所述待写入区块所对应的数据广播传输链路或P2P谣言散播传输链路的链路质量参数进行统计更新之后,所述方法还包括:若所述数据广播传输链路的链路质量良好,且与区块链Pull引擎上一次的唤醒时间的时间间隔达到第一预设时间间隔,则执行所述唤醒区块链Pull引擎的步骤。
[0011]通过采用上述技术方案,通过数据广播传输链路的链路质量良好,唤醒区块链Pull引擎去周围区块链节点分布式拉取待写入区块,这时区块链中已有一定比例的区块链节点对该待写入区块进行了记账,作为已写入区块,所以是一个良好的时机唤醒区块链Pull引擎,提高了区块传输成功的效率,其中,设置第一预设时间间隔以防区块链被攻击,还可以降低区块链节点极端频繁的连续拉取而影响其它区块链节点网络服务、稳定性等,对区块链节点进行保护。
[0012]可选的,在所述对区块文件验证成功的待写入区块进行记账,作为已写入区块之后,所述方法还包括:将已写入区块的状态设置为等待交叉验证,当达到第二预设时间间隔时,将所述已写入区块的状态设置为未等待交叉验证;若所述区块文件验证成功且所述待写入区块的区块高度不大于账本的最高区块高度,则所述方法还包括:判断所述待写入区块与账本中状态为等待交叉验证的区块的区块高度是否相同;若是,则基于交叉验证规则对所述待写入区块与账本中状态为等待交叉验证的区块进行交叉验证;若交叉验证成功,则对所述账本中状态为等待交叉验证的区块标记交叉验证成功信息,并将所述待写入区块丢弃;若交叉验证失败,则对所述账本中状态为等待交叉验证的区块标记交叉验证失败信息,并将所述待写入区块丢弃。
[0013]通过采用上述技术方案,由于部分通过区块文件验证的已写入区块可能存在中间人伪装攻击的情形,而这种攻击不仅影响区块的安全性,还对数据广播传输链路危害严重。
在将待写入区块通过P2P传输链路和一条或多条数据广播传输链路同时进行分发的基础上,增设交叉验证,利用后到达的待写入区块对账本中的同一区块高度的已写入区块进行交叉验证,从而及时发现异常区块,提高了区块的安全性,另外,账本中状态为等待交叉验证的区块达到第二预设时间间隔后,将所述已写入区块的状态设置为未等待交叉验证,以减少已写入区块状态始终为等待交叉验证影响区块链节点的性能。
[0014]可选的,若所述已写入区块的状态设置为未等待交叉验证,则所述方法还包括:对账本中状态为未等待交叉验证的区块标记未交叉验证信息。
[0015]可选的,若交叉验证失败,则所述方法还包括:对所述账本中状态为等待交叉验证的区块以及所述待写入区块所对应的传输链路的链路质量参数均进行统计更新。
[0016]通过采用上述技术方案,区块链节点交叉验证失败的区块所对应的传输链路的链路质量和待写入区块所对应的传输链路的链路质量参数均进行统计更新,及时对上层应用进行提醒,便于区块链按照预设策略对数据广播传输链路切换、关闭。
[0017本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链数据分发加速方法,其特征在于,应用于区块链节点,所述方法包括:接收至少一个待写入区块,其中,每个待写入区块均通过数据广播传输链路或P2P谣言散播传输链路进行分发;按照预设的验证顺序,依次对所述至少一个待写入区块进行区块文件验证;对于任一所述待写入区块,若所述区块文件验证成功且所述待写入区块的区块高度为账本的最高区块高度的下一区块高度,则对区块文件验证成功的待写入区块进行记账,作为已写入区块;若所述区块文件验证失败、所述待写入区块的区块高度为账本的最高区块高度的下一区块高度且所述待写入区块通过数据广播传输链路分发,则将所述待写入区块丢弃并唤醒区块链Pull引擎,从其它区块链节点拉取所述待写入区块;若所述区块文件验证失败、所述待写入区块的区块高度为账本的最高区块高度的下一区块高度且所述待写入区块通过P2P谣言散播传输链路分发,则将所述待写入区块丢弃。2.根据权利要求1所述的方法,其特征在于,若所述区块文件验证失败、所述待写入区块的区块高度为账本的最高区块高度的下一区块高度,则所述方法还包括:对所述待写入区块所对应的数据广播传输链路或P2P谣言散播传输链路的链路质量参数进行统计更新。3.根据权利要求2所述的方法,其特征在于,在所述对所述待写入区块所对应的数据广播传输链路或P2P谣言散播传输链路的链路质量参数进行统计更新之后,所述方法还包括:若所述数据广播传输链路的链路质量良好,且与区块链Pull引擎上一次的唤醒时间的时间间隔达到第一预设时间间隔,则执行所述唤醒区块链Pull引擎的步骤。4.根据权利要求1所述的方法,其特征在于,在所述对区块文件验证成功的待写入区块进行记账,作为已写入区块之后,所述方法还包括:将已写入区块的状态设置为等待交叉验证,当达到第二预设时间间隔时,将所述已写入区块的状态设置为未等待交叉验证;若所述区块文件验证成功且所述待写入区块的区块高度不大于账本的最高区块高度,则所述方法还包括:判断所述待写入区块与账本中状态为等待交叉验证的区块的区块高度是否相同;若是,则基于交叉验证规则对所述待写入区块与账本中状态为等待交叉验证的区块进行交叉验证;若交叉验证成功,则对所述账本中状态为等待交叉验证的区块标记交叉验证成功信息,并将所述待写入区块丢弃;若交叉验证失败...

【专利技术属性】
技术研发人员:叶楠惠新标周曦和
申请(专利权)人:上海佰贝网络工程技术有限公司
类型:发明
国别省市:

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

1