本技术涉及区块链,具体而言,涉及一种基于区块链的数据处理方法及装置、电子设备、存储介质、程序产品。
背景技术:
1、区块链是信息技术领域的一种分布式账本技术,一般由共识、交易区块和状态数据存储、密码学身份安全等内容构成。在共识过程中,提案节点会根据交易信息的执行结果生成待上链区块,并将待上链区块发送至验证节点进行验证。但是相关技术中,交易信息的执行效率较低,进而降低了待上链区块的验证效率。
技术实现思路
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、存储装置,用于存储一个或多个计算机程序,当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述电子设备实现如前所述的基于区块链的数据处理方法。
72、根据本技术实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被电子设备的处理器执行时,使电子设备实现如前所述的基于区块链的数据处理方法。
73、根据本技术实施例的一个方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如前所述的基于区块链的数据处理方法。
74、在本技术的实施例所提供的技术方案中,提案节点获取多个交易信息并将多个交易信息发送至验证节点后,验证节点根据设定的执行顺序执行多个交易信息,得到多个交易信息的第一交易执行结果,并且,提案节点也根据设定的执行顺序执行多个交易信息,得到多个交易信息的第二交易执行结果,也就是说,验证节点和提案节点之间可以基于相同的执行顺序并行执行多个交易信息,不仅提升了交易执行效率,还可以避免由于执行顺序不一致导致验证节点和提案节点得到的交易执行结果不同的情况;然后,提案节点根据第二交易执行结果生成待上链区块,并将待上链区块发送至验证节点,以使验证节点基于第一交易执行结果和待上链区块中所包含的第二交易执行结果,对待上链区块进行验证,由于在接收到待上链区块之前,验证节点已根据设定的执行顺序执行多个交易信息,因此,在接收到待上链区块后,无需再执行多个交易信息,从而提升了验证效率。
75、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。