本技术涉及数据处理领域,具体涉及一种区块链的数据整合方法、装置、计算机设备及存储介质。
背景技术:
1、目前,市场上存在多种区块链技术架构,且各种区块链技术架构之下的数据访问api(application programming interface,应用程序编程接口)各不相同,导致区块链的迁移、维护、使用繁琐,具体问题三个方面,分别是:区块链的“孤岛”形式,对于技术同源的底层链,链上数据难以兼容;在跨链交易执行过程中,不同形式的接口、不同底层链之间的交易存在困难;区块链的变动,在某些场景下更换底层链技术路线后,业务层需要对应做大量改动。
2、综上,为了应对多种不同的区块链以及所对应的不同数据结构导致的系统维护困难、迁移困难,有必要提供一种针对多种区块链的底层统一的方案。
技术实现思路
1、本技术实施例提供一种区块链的数据整合方法、装置、计算机设备及存储介质,以解决多种区块链中的数据不兼容、难以交易、维护和迁移的技术问题。
2、一方面,本技术提供一种区块链的数据整合方法,所述区块链的数据整合方法包括:
3、获取区块链系统中多个业务节点的上链信息;
4、将所述上链信息发送给所述消息中间件的分布式消息队列中;
5、对所述分布式消息队列中的消息进行分析,得到所述上链消息的局部有序消息队列集合,所述局部有序消息队列集合包括多个局部有序消息队列,每个所述局部有序消息队列存储一个分区消息,每个分区消息对应一个消息主题;
6、对所述局部有序消息队列集合进行有序消费,得到全局有序消息队列集合,所述全局有序消息队列集合包括多个标记有顺序的全局有序消息队列,每个所述全局有序消息队列存储具有相同消息主题的所述分区消息;
7、将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链。
8、在本技术一些实施方案中,所述对所述局部有序消息队列集合进行有序消费,得到全局有序消息队列集合,所述全局有序消息队列集合包括多个标记有顺序的全局有序消息队列包括:
9、订阅所述局部有序消息队列的消息,得到多个消息主题标识及各个所述消息主题标识对应的分区消息;
10、将所述消息主题标识作为键、所述分区消息作为值,得到多个键值对消息队列;
11、获取预先创建的用于消费所述分布式消息队列中消息的多个内存队列,并将所述键值对消息队列中,相同键值的所述分区消息路由至一个所述内存队列,生成多个内存队列消息;
12、针对每个所述内存队列消息,分别开启预先配置的子线程对所述内存队列消息进行消费,生成所述全局有序消息队列。
13、在本技术一些实施方案中,所述分布式消息队列为kafka,所述订阅所述局部有序队列的消息,得到多个主题标识及各个所述主题标识对应的分区消息,包括:
14、获取预先发布的kafka消息的消息主题;
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、所述分布式消息队列为kafka,所述订阅所述局部有序队列的消息,得到多个主题标识及各个所述主题标识对应的分区消息,包括:
51、获取预先发布的kafka消息的消息主题;
52、根据所述消息主题,对所述局部有序队列中的各个分区消息进行分析,确定各个所述分区消息的消息主题标识;
53、订阅各个所述分区消息的消息主题标识,得到所述消息主题标识及各个所述消息主题标识对应的所述分区消息。
54、在本技术一些实施方案中,所述上链模块具体用于:
55、根据所述链通道标识和所述智能合约版本标识,确定所述上链数据的目标区块链;
56、将所述上链数据在所述目标区块链中进行上链。
57、在本技术一些实施方案中,所述上链模块具体还用于:
58、所述将所述链通道标识和所述智能合约版本标识,确定所述上链数据的目标区块链,包括:
59、根据所述智能合约版本标识确定所述上链数据所采用的目标智能合约;
60、将所述链通道标识与所述智能合约版本标识进行拼接,得到目标区块链类型标识;
61、根据所述目标区块链类型标识及所述目标智能合约,在预先配置的区块链类型标识、目标智能合约与区块链的映射表中,查找所述目标区块链。
62、在本技术一些实施方案中,所述上链模块具体还用于:
63、所述将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链,包括:
64、检测所述目标区块链是否存在预先配置的区块链网络;
65、若存在,则获取所述目标区块链对应的区块链网络,并利用所述区块链网络中配置的预设上链方法对所述上链数据进行上链;
66、若不存在,则根据所述链通道标识对应的连通道配置实例化区块链网络,并利用所述区块链网络中配置的上链方法对所述上链数据进行上链。
67、在本技术一些实施方案中,该区块链的数据整合装置还包括:
68、解析模块,用于通过区块链网络对上链后的上链数据进行解析,得到解析业务数据;
69、填充模块,用于对所述解析业务数据进行填充,得到标准化业务数据;
70、写入模块,用于将所述标准化业务数据写入预设数据库。
71、在本技术一些实施方案中,该区块链的数据整合装置还包括:
72、第一获取模块,用于获取预先存储的上链结果表,所述上链结果表中包括上链成功的数据;
73、对比模块,用于将所述上链数据与所述上链结果表中上链成功的数据进行对比校验,根据对比校验结果,确定是否存在上链失败数据;
74、二次上链模块,用于若存在所述上链失败数据,则对所述上链失败数据进行二次上链。
75、另一方面,本技术还提供一种计算机设备,所述计算机设备包括:
76、一个或多个处理器;
77、存储器;以及
78、一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现第一方面中任一项所述的区块链的数据整合方法。
79、第四方面,本技术还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行第一方面任一项所述的区块链的数据整合方法中的步骤。
80、本技术通过获取区块链系统中多个业务节点的上链信息,将上链信息发送给所述消息中间件的分布式消息队列中,对所述分布式消息队列中的消息进行分析,得到多个局部有序消息队列集合,对所述局部有序消息队列集合进行有序消费,得到全局有序消息队列集合,将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链,实现了对不同业务节点的上链消息的整合,由于全局有序消息队列具备有序性,从而保障了上链数据的上链的全局有序性。