用于区块链网络中的数据同步的方法、装置和计算设备制造方法及图纸

技术编号:23932831 阅读:56 留言:0更新日期:2020-04-25 02:04
本说明书的实施例提供了用于区块链网络中的数据同步的方法、装置和计算设备。该方法包括:从需要进行数据同步的N个区块中的第i个区块开始,向区块链网络中的其它节点发起数据请求,以便获得N个区块的数据;从其它节点接收N个区块中的第j个区块的数据,其中,第j个区块的数据包括用于验证第j个区块的数据的合法性的数据正确性证明;基于在第j个区块的数据中包括的数据正确性证明,来验证第j个区块的数据的合法性;在对第j个区块的数据的合法性验证通过的情况下,存储第j个区块的数据。

Methods, devices and computing devices for data synchronization in blockchain networks

【技术实现步骤摘要】
用于区块链网络中的数据同步的方法、装置和计算设备
本说明书的实施例涉及区块链技术,并且具体地,涉及用于区块链网络中的数据同步的方法、装置和计算设备。
技术介绍
区块链技术,也被称为分布式账本技术,是一种由若干个节点共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明以及不可篡改等各种特性,使得区块链技术已经在众多的领域中得以广泛应用。
技术实现思路
考虑到现有技术的上述问题,本说明书的实施例提供了用于区块链网络中的数据同步的方法、装置和计算设备。一方面,本说明书的实施例提供了一种用于区块链网络中的数据同步的方法,包括:从需要进行数据同步的N个区块中的第i个区块开始,向区块链网络中的其它节点发起数据请求,以便获得所述N个区块的数据,其中,N为大于1的正整数,i为小于或等于N的正整数;从所述其它节点接收所述N个区块中的第j个区块的数据,其中,所述第j个区块的数据包括用于验证所述第j个区块的数据的合法性的数据正确性证明,j为小于或等于N的正整数;基于在所述第j个区块的数据中包括的数据正确性证明,来验证所述第j个区块的数据的合法性;在对所述第j个区块的数据的合法性验证通过的情况下,存储所述第j个区块的数据。另一方面,本说明书的实施例提供了一种用于区块链网络中的数据同步的装置,包括:数据请求单元,用于从需要进行数据同步的N个区块中的第i个区块开始,向区块链网络中的其它节点发起数据请求,以便获得所述N个区块的数据,其中,N为大于1的正整数,i为小于或等于N的正整数;接收单元,用于从所述其它节点接收所述N个区块中的第j个区块的数据,其中,所述第j个区块的数据包括用于验证所述第j个区块的数据的合法性的数据正确性证明,j为小于或等于N的正整数;验证单元,用于基于在所述第j个区块的数据中包括的数据正确性证明,来验证所述第j个区块的数据的合法性;存储单元,用于在所述验证单元对所述第j个区块的数据的合法性验证通过的情况下,存储所述第j个区块的数据。另一方面,本说明书的实施例提供了一种计算设备,包括:至少一个处理器;与所述至少一个处理器进行通信的存储器,其上存储有可执行指令,所述可执行指令在被所述至少一个处理器执行时使得所述至少一个处理器实现上述方法。可见,在该技术方案中,可以从需要进行数据同步的多个区块中的任一区块发起数据请求,而在接收到其中任一区块的数据时,可以基于该区块的数据中携带的数据正确性证明来验证该区块的数据的合法性,这样在合法性验证通过时,就可以完成针对该区块的数据同步。由此,无需按照区块之间的单方向顺序来依次执行各个区块的数据同步,从而能够提高区块链网络中的数据同步效率。附图说明通过结合附图对本说明书的实施例的更详细的描述,本说明书的实施例的上述以及其它目的、特征和优势将变得更加明显,其中,在本说明书的实施例中,相同的附图标记通常代表相同的元素。图1是根据一个实施例的用于区块链网络中的数据同步的方法的示意性流程图。图2是根据一个实施例的用于区块链网络中的数据同步的装置的示意性框图。图3是根据一个实施例的用于区块链网络中的数据同步的计算设备的硬件结构图。具体实施方式现在将参考各实施例讨论本文描述的主题。应当理解的是,讨论这些实施例仅是为了使得本领域技术人员能够更好地理解并且实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离权利要求书的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个实施例可以根据需要,省略、替换或者添加各种过程或组件。区块链网络是一种全新的分布式基础架构。例如,其通常可以构建在对等网络上,利用链式数据结构来存储和验证数据,利用分布式节点之间的共识协议来保证数据更新结果的一致性,利用密码学方案来保证数据的不可篡改以及传输和访问的安全,以及利用由自动化脚本代码组成的智能合约来编程和操作数据。其中,链式数据结构通常是指一种数据组织形式。例如,可以将状态转移记录(例如,其也可以被称为交易)以列表的形式存储在“区块”中,多个区块可以按照一定的逻辑顺序排列,每个区块的“区块头”可以包括表示前一个区块的摘要数据的数据字段,从而形成“链式数据结构”。共识协议通常是指在区块链网络中用于确保各个参与节点能够独立记账的同时对最终记账结果达成一致的一组协议。常见的共识协议可以包括非确定性共识协议和确定性共识协议。例如,非确定性共识协议可以包括工作量证明(ProofofWork,PoW)协议、权益证明(ProofofStake,PoS)协议等。确定性共识协议可以包括实用拜占庭容错(PracticalByzantineFaultTolerance,PBFT)、HoneyBadgerBFT协议等。就参与方的组织方式而言,区块链网络通常可以包括公有链网络、私有链网络和联盟链网络。公有链网络通常可以采用非确定性共识协议,而私有链网络和联盟链网络通常可以采用确定性共识协议。如上所述,在区块链网络中,通常可以包括多个参与节点。各个节点之间可以通过共识协议来确保各自数据的一致性。然而,在某些情况下,比如因宕机而重启、网络抖动或新加入区块链网络等等各种原因,节点的数据可能会落后于其它正常节点,即该节点的区块数据与其它正常节点的区块数据不一致。例如,节点本地的最优区块号可能是X,而区块链网络的当前最优区块号可能是Y,在这种情况下,该节点需要对第X+1个区块至第Y个区块进行数据同步。如上所述,由于各个区块之间存在顺序关联性,这样对某个区块的数据的验证可能需要结合前面区块的数据来完成,所以在对区块进行数据同步时,一般采用单方向顺序依次对各个区块进行数据同步。然而,这种方式可能耗时较长,效率较低。因此,期望有一种机制来高效地实现节点的数据同步。鉴于此,本说明书的实施例提供了一种用于区块链网络中的数据同步的技术方案。具体而言,在该技术方案中,区块的数据可以包括针对该区块的数据正确性证明。这样,各个区块的数据的合法性可以独立地验证,而无需依赖于其它区块的数据。那么,在数据同步过程中,可以从需要进行数据同步的N个区块中的任一区块开始发起数据请求,而在接收到任意一个区块的数据时,可以基于该区块的数据中携带的数据正确性证明,来独立地验证该区块的数据的合法性。一旦合法性验证通过,就可以将该区块的数据进行存储,从而完成针对该区块的数据同步。可见,在该技术方案中,由于可以基于在区块的数据中携带的数据正确性证明来独立地验证该区块的数据的合法性,而不依赖于其它区块的数据,这样无需按照区块之间的单方向顺序来逐个区块地完成数据同步,从而能够极大地提供区块链网络中的数据同步的效率。下面将结合具体实施例来描述上述技术方案。图1是根据一个实施例的用于区块链网络中的数据同步的方法的示意性流程图。例如,图1的方法可以由区块链网络中的数据落后的节点来执行。如图1所示,在步骤102中,可以从需要进行数据同步的N个区块中的本文档来自技高网...

【技术保护点】
1.一种用于区块链网络中的数据同步的方法,包括:/n从需要进行数据同步的N个区块中的第i个区块开始,向区块链网络中的其它节点发起数据请求,以便获得所述N个区块的数据,其中,N为大于1的正整数,i为小于或等于N的正整数;/n从所述其它节点接收所述N个区块中的第j个区块的数据,其中,所述第j个区块的数据包括用于验证所述第j个区块的数据的合法性的数据正确性证明,j为小于或等于N的正整数;/n基于在所述第j个区块的数据中包括的数据正确性证明,来验证所述第j个区块的数据的合法性;/n在对所述第j个区块的数据的合法性验证通过的情况下,存储所述第j个区块的数据。/n

【技术特征摘要】
1.一种用于区块链网络中的数据同步的方法,包括:
从需要进行数据同步的N个区块中的第i个区块开始,向区块链网络中的其它节点发起数据请求,以便获得所述N个区块的数据,其中,N为大于1的正整数,i为小于或等于N的正整数;
从所述其它节点接收所述N个区块中的第j个区块的数据,其中,所述第j个区块的数据包括用于验证所述第j个区块的数据的合法性的数据正确性证明,j为小于或等于N的正整数;
基于在所述第j个区块的数据中包括的数据正确性证明,来验证所述第j个区块的数据的合法性;
在对所述第j个区块的数据的合法性验证通过的情况下,存储所述第j个区块的数据。


2.根据权利要求1所述的方法,其中,从第i个区块开始,向其它节点发起数据请求,包括:
从所述第i个区块开始,按照区块编号增大的方向来向所述其它节点发起数据请求;
与从所述第i个区块开始发起的数据请求同时地,从第i-1个区块开始,按照区块编号减小的方向来向所述其它节点发起数据请求,其中,i为大于1的正整数。


3.根据权利要求1或2所述的方法,其中,所述N个区块中的第1个区块至第N个区块为本地当前最优区块的下一个区块至所述区块链网络的当前最优区块;
从第i个区块开始,向其它节点发起数据请求,包括:
向所述其它节点发送请求消息,其中,所述请求消息用于请求所述N个区块中的第一组区块的数据,所述第一组区块包括从所述第i个区块至所述区块链网络的当前最优区块。


4.根据权利要求3所述的方法,其中,所述第j个区块为所述区块链网络的当前最优区块;
所述方法还包括:
在存储所述区块链网络的当前最优区块的数据之后,参与所述区块链网络的共识过程。


5.根据权利要求1或2所述的方法,其中,所述区块链网络为采用确定性共识协议的联盟链网络。


6.一种用于区块链网络中的数据同步的装置,包括:
数据请求单元,用于从需要进行数据同步的N个区块中的第i个区块开始,向区块链网络...

【专利技术属性】
技术研发人员:陈锐
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:浙江;33

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

1