System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及区块链,特别涉及一种区块链节点差额同步方法、电子设备及芯片系统。
技术介绍
1、在区块链节点进行数据同步的过程中,可以采用全同步模式;例如使用go语言编写的开源以太坊geth(go ethereum)客户端,作为连接用户与以太坊网络之间的桥梁,可以支持全同步模式。
2、然而,在采用全同步模式进行区块链节点同步的过程中,各个环节串行执行,执行性能完全依赖单核主频;当新启动的节点与区块链网络中当前最高区块之间的区块数量差异较大时,同步时间过长且不可控。
技术实现思路
1、根据本申请的各种实施例,提供一种区块链节点差额同步方法、电子设备及芯片系统,可以提高系统并行处理能力,提高同步效率。
2、第一方面,本申请提供了一种区块链节点差额同步方法;该方法包括:
3、基于区块链的区块高度,从至少一个对端节点获取多个待同步区块;在数据处理阶段,对多个待同步区块进行并行数据处理;并行数据处理包括并行执行多个待同步区块的交易;在数据更新阶段,根据对每个待同步区块的数据处理结果,并行更新执行完每个待同步区块后的每个世界状态;其中,一个轮次的数据处理阶段和数据更新阶段,用于完成对多个待同步区块的并行同步处理。
4、通过上述方式,基于区块高度差额,获取多个待同步区块,对多个待同步区块进行并行同步处理,无需针对每个待同步的区块数据执行一次执行交易和更新状态的串行同步流程;通过对多个待同步区块的交易进行并行执行,各区块之间相对独立,对下一区块交易的执行,
5、在第一方面的一种可能的实现方式中,每个待同步区块包括区块头和区块体,数据处理阶段包括区块头阶段和区块体阶段;对多个待同步区块进行并行数据处理,包括:
6、在区块头阶段,对多个待同步区块头进行并行数据处理;在区块头处理完成后,在区块体阶段进行并行数据处理,得到针对每个待同步区块的数据处理结果。
7、在第一方面的一种可能的实现方式中,对多个待同步区块头进行并行数据处理,包括:
8、对多个待同步区块头进行并行验证,并在验证通过后并行计算每个区块头的反向映射。
9、在第一方面的一种可能的实现方式中,对多个待同步区块体进行并行数据处理,得到针对每个待同步区块的数据处理结果,包括:
10、对多个待同步区块体进行并行验证,确定每个区块体的交易数据,交易数据包括交易的数量及交易的标识;根据标识及数量,并行执行多个待同步区块体的交易,得到每个待同步区块对应的交易执行结果;基于每个待同步区块对应的交易执行结果,并行计算执行完每个待同步区块后的全局状态,将全局状态作为每个待同步区块的数据处理结果。
11、在第一方面的一种可能的实现方式中,所述数据更新阶段包括哈希阶段;根据对每个所述待同步区块的数据处理结果,并行更新执行完每个所述待同步区块后的每个世界状态,包括:
12、在哈希阶段,基于每个数据处理结果,并行更新哈希表中执行完每个待同步区块后的状态数据;状态数据包括账户地址和存储位置;世界状态包括哈希表的状态数据。
13、在第一方面的一种可能的实现方式中,更新阶段还包括状态树阶段;在哈希阶段之后,该方法还包括:在状态树阶段,基于哈希表的状态数据,并行计算每个待同步区块对应的根节点的哈希值,得到每个待同步区块对应的状态根哈希。
14、在第一方面的一种可能的实现方式中,更新阶段还包括调用追踪索引阶段;在状态数阶段之后,该方法还包括:基于每个状态根哈希,并行更新临时表中多个待同步区块的交易执行过程数据;针对多个待同步区块,并行创建每个待同步区块的交易执行过程数据的第一反向索引;第一反向索引用于记录与追踪交易执行过程数据。
15、在第一方面的一种可能的实现方式中,更新阶段还包括:历史索引阶段、日志索引阶段、交易查找阶段;在调用追踪索引阶段之后,该方法还包括:在历史索引节点,基于区块链中并行执行完每个待同步区块后的变更集的数据,并行创建每个待同步区块对应的账户与存储的历史索引;在日志索引阶段,基于区块链中并行执行完每个待同步区块后的日志表的数据,并行创建每个待同步区块对应的事件日志的第二反向索引;在交易查找阶段,针对多个待同步区块的区块体和交易表中多个待同步区块的交易数据,并行创建每个待同步区块的交易数据与交易哈希的映射。
16、在第一方面的一种可能的实现方式中,该方法还包括:在第一控制流执行的过程中,接收并存储一个或多个对端节点发送的所有待同步区块;基于第一控制流与第二控制流之间的数据交换,在第二控制流的执行过程中,获取所有待同步区块中第一数量的待同步区块,针对第一数量的待同步区块,进行并行同步处理;在对第一数量的待同步区块完成同步后,针对所有待同步区块中的第二数量的待同步区块,进行并行同步处理,直到同步完所有待同步区块;第二数量小于或等于第一数量;在对第一数量和第二数量的待同步区块进行并行同步过程中,基于第一控制流继续接收并存储一个或多个对端节点发送的下一阶段所有待同步的区块。
17、在第一方面的一种可能的实现方式中,该方法还包括:在接收到落后节点发送的同步请求时,基于区块链的区块高度差额,向落后节点发送一个或多个待同步区块。
18、第二方面,本申请提供了一种区块链节点差额同步装置,该装置包括:
19、数据获取单元,用于基于区块链的区块高度差额,从至少一个对端节点获取多个待同步区块;
20、并行处理单元,用于在数据处理阶段,对多个所述待同步区块进行并行数据处理;所述并行数据处理包括并行执行多个所述待同步区块的交易;
21、状态更新单元,用于在数据更新阶段,根据对每个所述待同步区块的数据处理结果,并行更新执行完每个所述待同步区块后的每个世界状态;其中,一个轮次的所述数据处理阶段和所述数据更新阶段,用于完成对多个所述待同步区块的并行同步处理。
22、第三方面,本申请提供一种电子设备,所述电子设备包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面中任一项所述的方法。
23、第四方面,本申请提供一种芯片系统,所述芯片系统应用于电子设备,所述芯片系统包括一个或多个处理器,所述一个或多个处理器用于调用计算机指令以使得所述电子设备执行如第一方面所述的方法。
24、第五方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的方法。
25、第六方面,本申请提供一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子本文档来自技高网...
【技术保护点】
1.一种区块链节点差额同步方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,每个所述待同步区块包括区块头和区块体,所述数据处理阶段包括区块头阶段和区块体阶段;所述对多个所述待同步区块进行并行数据处理,包括:
3.根据权利要求2所述的方法,其特征在于,所述对多个所述区块头进行并行数据处理,包括:
4.根据权利要求2所述的方法,其特征在于,所述对多个所述区块体进行并行数据处理,得到针对每个所述待同步区块的数据处理结果,包括:
5.根据权利要求1所述的方法,其特征在于,所述数据更新阶段包括哈希阶段;所述根据对每个所述待同步区块的数据处理结果,并行更新执行完每个所述待同步区块后的每个世界状态,包括:
6.根据权利要求5所述的方法,其特征在于,所述数据更新阶段还包括状态树阶段;在所述哈希阶段之后,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,所述数据更新阶段还包括调用追踪索引阶段;在所述状态数阶段之后,所述方法还包括:
8.根据权利要求7所述的方法,其特征在于,所述数
9.根据权利要求1至8任一项所述的方法,其特征在于,所述方法还包括:
10.一种电子设备,其特征在于,所述电子设备包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至9中任一项所述的方法。
11.一种芯片系统,其特征在于,所述芯片系统应用于电子设备,所述芯片系统包括一个或多个处理器,所述一个或多个处理器用于调用计算机指令以使得所述电子设备执行如权利要求1至9中任一项所述的方法。
12.一种计算机程序产品,其特征在于,当计算机程序产品在电子设备上运行时,使得电子设备执行权利要求1至9中任一项所述的方法。
...【技术特征摘要】
1.一种区块链节点差额同步方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,每个所述待同步区块包括区块头和区块体,所述数据处理阶段包括区块头阶段和区块体阶段;所述对多个所述待同步区块进行并行数据处理,包括:
3.根据权利要求2所述的方法,其特征在于,所述对多个所述区块头进行并行数据处理,包括:
4.根据权利要求2所述的方法,其特征在于,所述对多个所述区块体进行并行数据处理,得到针对每个所述待同步区块的数据处理结果,包括:
5.根据权利要求1所述的方法,其特征在于,所述数据更新阶段包括哈希阶段;所述根据对每个所述待同步区块的数据处理结果,并行更新执行完每个所述待同步区块后的每个世界状态,包括:
6.根据权利要求5所述的方法,其特征在于,所述数据更新阶段还包括状态树阶段;在所述哈希阶段之后,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,所述数据更新阶段还包括调用追踪索引阶段;在所述状态...
【专利技术属性】
技术研发人员:谢迪凡,汪晓可,秦启睿,李晓静,王磊,陆晓宇,
申请(专利权)人:杭州高新区滨江区块链与数据安全研究院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。