CN110569305A 区块同步方法、装置、介质和计算设备 (网易(杭州)网络有限公司)_第1页
CN110569305A 区块同步方法、装置、介质和计算设备 (网易(杭州)网络有限公司)_第2页
CN110569305A 区块同步方法、装置、介质和计算设备 (网易(杭州)网络有限公司)_第3页
CN110569305A 区块同步方法、装置、介质和计算设备 (网易(杭州)网络有限公司)_第4页
CN110569305A 区块同步方法、装置、介质和计算设备 (网易(杭州)网络有限公司)_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本发明的实施方式提供了一种区块同步方述一个区块链节点的区块高度小于所述另一区2获取所述区块链网络中另一区块链节点的区块链信息,所述区块链信息包括区块高基于所述全局状态信息执行所述区块链网络在存储所述全局状态信息之后,基于所述一个区对于任一待同步区块,获取所述任一待同步区块的区块获取并执行所述任一待同步区块的下一个待同将与所述节点内容对应的键值对信息存储于所述一个区块链节点的区块高度与所述另一区块链节点的区块高度之间的差异是否大于预定如果是,则执行所述获取所述另一区块链节点中与当前最新区块关联的全局状态信8.根据权利要求1所述的方法,其中,所述共识验证合约包括实用拜占庭容错共识算3第一获取模块,用于获取所述区块链网络中另45[0020]在本发明的再一实施例中,上述共识验证模块具体用于以全局定上述一个区块链节点的区块高度与上述另一区块链节点的区块高度之间的差异是否大6[0026]通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目[0029]图3A示意性地示出了根据本发明一个实施例的两个区块链节点的区块链的示例够将本公开的范围完整地传达给本领域的技7(BlockHeight)、区块链节点(Node)、区块链网络(BlockchainNetwork)、MPT(MerklePatriciaTrie)树形结构、实用拜占庭容错共识(PracticalByzantineFault是结合了默克尔树(MerkleTree)以及紧凑前缀树(PatriciaTree)的特点后创建的树形链节点的区块高度时,获取上述另一区块链节点中与当前最新区块关联的全局状态信息,[0044]在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方[0047]图1示意性地示出了根据本发明实施方式的区块同步方法及其装置的应用场景。~106中任意两个区块链节点之间都可进行点对点通信。[0050]区块链110是通过散列指针按时间顺序链接的区块的分布式数据库。区块链的区块链节点创建区块并将该区块加入到区块链中,加入的区块作为该区块链上当前最新区8[0055]图2示意性地示出了根据本发明一个实施例的区块同步方法的流程图,该方法可是区块链节点B的区块链中当前最新区块的区块高度。当两个区块链节点各自本地存储的[0059]在操作S202,当一个区块链节点的区块高度小于另一区块链节[0060]本操作S202将区块链节点A自身存储的区块链的区块高度与区块链节点B自身存储的区块链的区块高度进行比较。当区块链节点A自身存储的区块链的区块高度小于区块区块链节点B所存储的区块链的当前最新区块关联的全局状态信息,基于该全局状态信息能够还原出区块链节点B的区块链的当前最新区[0062]其中,在区块链节点A存储与区块链节点B的当前最新区块关[0064]其中,在区块链节点A完成对于区块链节点B的当前最新区块的全局状态的同步9区块链网络中的共识验证过程。图2所示的方法只需区块链节点A对区块链节点B的当前最链节点A完成对于区块链节点B的当前最新区块的全局状态的同步后,区块链节点A再从区块链节点B异步拉取二者相差的区块数据。由于同步全局状态后区块链节点A即可正常工基于区块链节点A的区块高度与另一区块链节点B的区块高度之间的差异,确定待同步区[0068]图3A示意性地示出了根据本发明一个实施例的两个区块链节点的区块链的示例摘要(PreviousBlockHash)、区块难度(BlockDifficulty)、以及链总难度(Total[0069]区块链节点A与区块链节点B之间建立连接时,各自均可以接获取区块链节点B的区块链中当前最新区块(即区块高度为40的区块)的全局状态信息并进行存储,在该全局状态信息的基础上区块链节点A可以参与区块链网络中的共识验证过区块链节点A向区块链节点B发起区块头(BlockHeader)请求,区块链节点B在收到区块链息,如区块摘要等)。然后区块链节点A再依据区块摘要再次向区块链节点B发起区块体[0071]在本公开的一个实施例中,区块链节点B中与当前最新区块关联的全局状态信息[0072]例如,在以太坊(Ethereum)区块链网络中,状态信息均是通过状态数据库(StateDB)来存储和获取的。StateDB作为表层和其他逻辑模块交互,在StateDB之后使用状态信息等。MPT中的所有树结构节点最后会以键值对的形式存入区块链节点的磁盘数据库。块链节点B的区块链中从区块高度为2的区块[0074]区块链节点A向区块链节点B发起关于区块链节点B的当前最新区块(即区块高度相应状态树中的全部树结构节点。区块链节点B将所加载的树结构节点内容发送至区块链并在收到表征同步完成的消息后,确定完成对区块链节点B的当前最新区块的全局状态信息的全量同步过程,在后续可以寻找合适时机异步地进行各待同步区块的增量同步过程。同步当前最新区块所关联的全局状态信息即可,无需通过以太坊虚拟机(EVM)依次执行每[0075]区块链节点A在完成上述全量同步过程后即可正常出块、正常参与执行区块链网证合约可以包括:以全局状态信息为基础进行与共识验证合约相关的状态获取和状态变[0076]上述全量同步过程在区块链网络使用强一致性共识验证合约的情况能够提高共块链节点A的区块高度与区块链节点B的区块高度之间[0087]图4示意性地示出了根据本发明一个实施例的区块同步装置的框图,该装置可以[0089]第一获取模块410用于获取区块链网络中另一区块链节点的区块链信息,区块链[0090]第二获取模块420用于当上述一个区块链节点的区块高度小于上述另一区块链节[0093]图5示意性地示出了根据本发明另一个实施例的区块同步装置的框图,该装置可包括交易列表。持久化子模块562用于执行该交易列表并持久化状态变更。然后执行模块560接着获取并执行该任一待同步区块的下一个待同步区块,直至获取并执行上述另一区[0099]在本发明的再一实施例中,状态存储模块530具体用于将与节点内容对应的键值[0100]在本发明的再一实施例中,上述共识验证模块540具体用于以全局状态信息为基[0107]在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形[0109]图6示意性地示出了根据本发明实施方式的计算机可读存储介质产品的示意图,[0112]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)[0118]下面参照图7来描述根据本发明的这种实施方式的用于实现区块同步方法的计算[0122]存储单元702还可以包括具有一组(至少一个)程序模块7024的程序/实用工具配器706与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特[0124]应当注意,尽管在上文详细描述中提及了区块同步装置的若干单元/模块或子单描述的一个单元/模块的特征和功能可以进一步划分为由

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论