本技术涉及计算机,具体涉及一种区块链的数据处理方法、装置、电子设备和可读存储介质。
背景技术:
1、在区块链网络中,每一个数据都需要经过共识后才能落盘于区块链,在此过程中各节点写入的数据需要保持一致,数据落后或需要更新的节点需要向其他节点发起数据同步请求。
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、可选地,所述数据同步协议配置单元还具体用于:
26、根据所述节点信息,获取可连接的第二节点;
27、获取所述可连接的第二节点对应的分片索引,其中,所述分片索引为所述同步数据分片的索引值;
28、将所述第一节点的区块高度、所述待连接的第二节点的数量,以及所述可连接的第二节点对应的分片索引作为协议内容,生成所述数据同步协议。
29、可选地,所述数据更新单元包括:
30、信誉值计算子单元,用于根据接收的所述同步数据分片,或者所述每个第二节点发送数据时的状态,计算所述每个第二节点的信誉值;
31、列表更新子单元,用于根据所述每个第二节点的信誉值,更新本地存储的第二节点列表,得到更新的第二节点列表,其中,所述第二节点列表中包括可进行数据同步的第二节点;
32、请求修改子单元,用于根据所述更新的第二节点列表,修改所述数据同步请求。
33、可选地,所述信誉值计算子单元还具体用于:
34、获取接收的所述同步数据分片对应的准确度;
35、获取所述每个第二节点发送数据时的异常行为;
36、基于所述准确度,或者所述异常行为,周期性地对所述每个第二节点当前时刻的信誉值进行调整,得到所述每个第二节点的信誉值。
37、可选地,所述列表更新子单元还具体用于:
38、获取信誉值的异常阈值;
39、当所述第二节点列表中的任一个第二节点的信誉值小于所述异常阈值,将所述第二节点确定为待定异常节点;
40、获取所述待定异常节点的信誉值持续小于所述异常阈值的第一观察时长;
41、若所述第一观察时长大于时长阈值,则将所述待定异常节点确定为异常节点,并将所述异常节点从所述第二节点列表中删除。
42、可选地,所述区块链的数据处理装置,还包括:
43、待定异常节点确定单元,用于若所述第一观察时长小于时长阈值,且所述待定异常节点的信誉值恢复至大于所述异常阈值,则将所述待定异常节点确定为待定正常节点;
44、第二观察时长获取单元,用于获取所述待定正常节点的信誉值持续大于所述异常阈值的第二观察时长;
45、正常节点确定单元,用于若所述第二观察时长大于所述时长阈值,则将所述待定正常节点确定为正常节点,在所述第二节点列表中保留所述正常节点。
46、可选地,请求修改单元还具体用于:
47、获取所述更新的第二节点列表相较于第二节点列表,新增或删除的第二节点;
48、根据所述新增或删除的第二节点的节点信息,修改所述数据同步请求中携带的节点信息,其中,所述节点信息包括节点的名称、数量、分片索引和区块高度,所述分片索引为所述同步数据分片的索引值。
49、相应地,本技术实施例第四方面提供一种区块链的数据处理装置,所述装置应用于区块链网络的第二节点,所述装置包括:
50、请求接收单元,用于接收所述区块链网络的第一节点发送的数据同步请求,确定待发送至所述第一节点的同步数据;
51、分片处理单元,用于根据所述数据同步请求,对所述同步数据进行分片处理,得到多个同步数据分片;
52、分片筛选单元,用于从所述多个同步数据分片中确定待发送的同步数据分片;
53、分片发送单元,用于将所述同步数据分片和对应的信誉值持续地发送至所述第一节点,以使所述第一节点基于所述同步数据分片,或基于所述信誉值得到的更新的同步数据分片,得到完整的同步数据,其中,所述信誉值表征所述第二节点返回所述同步数据的稳定状态。
54、可选地,所述数据同步请求中携带有数据同步协议,所述数据同步协议中包括参与数据同步的第二节点的数量,以及所述第一节点的区块高度的协议内容;
55、所述分片处理单元还具体用于:
56、对所述同步数据进行分组,其中,每组同步数据包括至少一个区块的数据;
57、以所述第二节点的数量为分片数量,对所述每组同步数据进行分片处理,得到多个分片的数据体;
58、获取带有所述数据体所在分组信息的数据头;
59、将多个所述数据体与对应的数据头进行拼接,得到所述多个同步数据分片。
60、可选地,所述同步数据分成目标数量个发送轮次被发送;
61、所述分片发送单元还具体用于:
62、在当前发送轮次,将属于当前发送轮次的同步数据分片发送至所述第一节点,以完成当前发送轮次的数据发送操作;
63、在剩余的发送轮次,重复执行所述数据发送操作,直至完成所述目标数量个发送轮次的数据发送操作。
64、本技术实施例第五方面提供的一种电子设备,包括:
65、处理器和存储介质;
66、所述处理器,用于实现各个指令;
67、所述存储介质用于储存多条指令,所述指令用于由处理器加载并执行以上所述的区块链的数据处理方法。
68、本技术实施例第六方面还提供一种可读存储介质,所述可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本技术实施例所提供的任一种区块链的数据处理方法中的步骤。
69、本技术实施例第七方面还提供一种计算机程序产品,包括计算机程序或指令,所述计算机程序或指令被处理器执行时实现本技术实施例所提供的任一种区块链的数据处理方法。
70、由此可知,应用本技术实施例,请求数据同步的第一节点可以向多个参与共识机制的第二节点发送数据同步请求,并基于多个第二节点返回的多个同步数据分片拼接得到完整的同步数据。
71、通过以上方式,第一节点将数据同步请求发送至多个第二节点,每个第二节点返回各自的同步数据分片的同时,还会返回对应的信誉值,供第一节点根据信誉值判断每个第二节点返回数据的稳定状态,并通过更新数据同步请求和信誉高的第二节点,可以避免因第二节点出现异常导致整个数据同步流程中止或无法进行的情况,从而能够提升数据同步流程的稳定性。并且通过每个第二节点向第一节点返回对应的同步数据分片,直至第一节点基于全部的同步数据分片拼接得到完整的同步数据,可以减少多次发起数据同步请求的网络通信消耗,提升同步数据的传输和获取的速度,从而能够有效地提升数据同步流程的效率。
1.一种区块链的数据处理方法,其特征在于,所述方法由区块链网络的第一节点执行,包括:
2.根据权利要求1所述的方法,其特征在于,在所述向所述区块链网络的第二节点发送数据同步请求之前,还包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述节点信息,配置数据同步协议,包括:
4.根据权利要求1所述的方法,其特征在于,所述根据所述每个第二节点的信誉值,更新所述数据同步请求,以及用于处理所述更新的数据同步请求的第二节点,包括:
5.根据权利要求4所述的方法,其特征在于,所述根据接收的所述同步数据分片,或者所述每个第二节点发送数据时的状态,计算所述每个第二节点的信誉值,包括:
6.根据权利要求5所述的方法,其特征在于,所述根据所述每个第二节点的信誉值,更新本地存储的第二节点列表,包括:
7.根据权利要求5所述的方法,其特征在于,在所述获取所述待定异常节点的信誉值持续小于所述异常阈值的第一观察时长之后,还包括:
8.根据权利要求4-7中任一项所述的方法,其特征在于,所述根据所述更新的第二节点列表,修改所述数据同步请求,包括:
9.一种区块链的数据处理方法,其特征在于,所述方法由区块链网络的第二节点执行,所述方法包括:
10.根据权利要求9所述的方法,其特征在于,所述数据同步请求中携带有数据同步协议,所述数据同步协议中包括参与数据同步的第二节点的数量,以及所述第一节点的区块高度的协议内容;
11.根据权利要求9所述的方法,其特征在于,所述同步数据分成目标数量个发送轮次被发送;
12.一种区块链的数据处理装置,其特征在于,所述装置应用于区块链网络的第一节点,所述装置包括:
13.一种区块链的数据处理装置,其特征在于,所述装置应用于区块链网络的第二节点,所述装置包括:
14.一种电子设备,其特征在于,包括:
15.一种可读存储介质,存储有可执行指令,其特征在于,所述可执行指令被处理器执行时实现权利要求1至11中任一项所述的区块链的数据处理方法。
16.一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时实现权利要求1至11中任一项所述的区块链的数据处理方法。