CN117633102A - 区块链的数据整合方法、装置、计算机设备及存储介质 - Google Patents
区块链的数据整合方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN117633102A CN117633102A CN202211001630.1A CN202211001630A CN117633102A CN 117633102 A CN117633102 A CN 117633102A CN 202211001630 A CN202211001630 A CN 202211001630A CN 117633102 A CN117633102 A CN 117633102A
- Authority
- CN
- China
- Prior art keywords
- message
- uplink
- blockchain
- data
- messages
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000010354 integration Effects 0.000 title claims abstract description 64
- 238000005192 partition Methods 0.000 claims abstract description 135
- 230000015654 memory Effects 0.000 claims description 56
- 238000004458 analytical method Methods 0.000 claims description 18
- 238000013507 mapping Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000006854 communication Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000007175 bidirectional communication Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012106 screening analysis Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013396 workstream Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种区块链的数据整合方法、装置、计算机设备及存储介质,该方法通过获取区块链系统中多个业务节点的上链信息,将上链信息发送给所述区块链系统对应的消息中间件的分布式消息队列中,对所述分布式消息队列中的消息进行分析,得到多个局部有序消息队列集合,对所述局部有序消息队列集合进行有序消费,得到全局有序消息队列集合,将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链,实现了对不同业务节点的上链消息的整合,由于全局有序消息队列具备有序性,从而保障了上链数据的上链的全局有序性。
Description
技术领域
本申请涉及数据处理领域,具体涉及一种区块链的数据整合方法、装置、计算机设备及存储介质。
背景技术
目前,市场上存在多种区块链技术架构,且各种区块链技术架构之下的数据访问API(Application Programming Interface,应用程序编程接口)各不相同,导致区块链的迁移、维护、使用繁琐,具体问题三个方面,分别是:区块链的“孤岛”形式,对于技术同源的底层链,链上数据难以兼容;在跨链交易执行过程中,不同形式的接口、不同底层链之间的交易存在困难;区块链的变动,在某些场景下更换底层链技术路线后,业务层需要对应做大量改动。
综上,为了应对多种不同的区块链以及所对应的不同数据结构导致的系统维护困难、迁移困难,有必要提供一种针对多种区块链的底层统一的方案。
发明内容
本申请实施例提供一种区块链的数据整合方法、装置、计算机设备及存储介质,以解决多种区块链中的数据不兼容、难以交易、维护和迁移的技术问题。
一方面,本申请提供一种区块链的数据整合方法,所述区块链的数据整合方法包括:
获取区块链系统中多个业务节点的上链信息;
将所述上链信息发送给所述消息中间件的分布式消息队列中;
对所述分布式消息队列中的消息进行分析,得到所述上链消息的局部有序消息队列集合,所述局部有序消息队列集合包括多个局部有序消息队列,每个所述局部有序消息队列存储一个分区消息,每个分区消息对应一个消息主题;
对所述局部有序消息队列集合进行有序消费,得到全局有序消息队列集合,所述全局有序消息队列集合包括多个标记有顺序的全局有序消息队列,每个所述全局有序消息队列存储具有相同消息主题的所述分区消息;
将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链。
在本申请一些实施方案中,所述对所述局部有序消息队列集合进行有序消费,得到全局有序消息队列集合,所述全局有序消息队列集合包括多个标记有顺序的全局有序消息队列包括:
订阅所述局部有序消息队列的消息,得到多个消息主题标识及各个所述消息主题标识对应的分区消息;
将所述消息主题标识作为键、所述分区消息作为值,得到多个键值对消息队列;
获取预先创建的用于消费所述分布式消息队列中消息的多个内存队列,并将所述键值对消息队列中,相同键值的所述分区消息路由至一个所述内存队列,生成多个内存队列消息;
针对每个所述内存队列消息,分别开启预先配置的子线程对所述内存队列消息进行消费,生成所述全局有序消息队列。
在本申请一些实施方案中,所述分布式消息队列为kafka,所述订阅所述局部有序队列的消息,得到多个主题标识及各个所述主题标识对应的分区消息,包括:
获取预先发布的kafka消息的消息主题;
根据所述消息主题,对所述局部有序队列中的各个分区消息进行分析,确定各个所述分区消息的消息主题标识;
订阅各个所述分区消息的主题标识,得到所述主题标识及各个所述主题标识对应的所述分区消息。
在本申请一些实施方案中,所述上链信息包括待上链的区块链的链通道标识和智能合约版本标识;
所述将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链,包括:
根据所述链通道标识和所述智能合约版本标识,确定所述上链数据的目标区块链;
将所述上链数据在所述目标区块链中进行上链。
在本申请一些实施方案中,所述将所述链通道标识和所述智能合约版本标识,确定所述上链数据的目标区块链,包括:
根据所述智能合约版本标识确定所述上链数据所采用的目标智能合约;
将所述链通道标识与所述智能合约版本标识进行拼接,得到目标区块链类型标识;
根据所述目标区块链类型标识及所述目标智能合约,在预先配置的区块链类型标识、目标智能合约与区块链的映射表中,查找所述目标区块链。
在本申请一些实施方案中,所述将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链,包括:
检测所述目标区块链是否存在预先配置的区块链网络;
若存在,则获取所述目标区块链对应的区块链网络,并利用所述区块链网络中配置的预设上链方法对所述上链数据进行上链;
若不存在,则根据所述链通道标识对应的连通道配置实例化区块链网络,并利用所述区块链网络中配置的上链方法对所述上链数据进行上链。
在本申请一些实施方案中,在所述将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链之后,还包括:
通过区块链网络对上链后的上链数据进行解析,得到解析业务数据;
对所述解析业务数据进行填充,得到标准化业务数据;
将所述标准化业务数据写入预设数据库。
在本申请一些实施方案中,在所述将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链之后,还包括:
获取预先存储的上链结果表,所述上链结果表中包括上链成功的数据;
将所述上链数据与所述上链结果表中上链成功的数据进行对比校验,根据对比校验结果,确定是否存在上链失败数据;
若存在所述上链失败数据,则对所述上链失败数据进行二次上链。
另一方面,本申请提供一种区块链的数据整合装置,所述区块链的数据整合装置包括:
获取模块,用于获取区块链系统中多个业务节点的上链信息;
发送模块,用于将所述上链信息发送给所述消息中间件的分布式消息队列中;
分析模块,用于对所述分布式消息队列中的消息进行分析,得到所述上链消息的局部有序消息队列集合,所述局部有序消息队列集合包括多个局部有序消息队列,每个所述局部有序消息队列存储一个分区消息,每个分区消息对应一个消息主题;
整合模块,用于对所述局部有序消息队列集合进行有序消费,得到全局有序消息队列集合,所述全局有序消息队列集合包括多个标记有顺序的全局有序消息队列,每个所述全局有序消息队列存储具有相同消息主题的所述分区消息;
上链模块,用于将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链。
在本申请一些实施方案中,所述整合模块具体用于:
所述对所述局部有序消息队列集合进行有序消费,得到全局有序消息队列集合,所述全局有序消息队列集合包括多个标记有顺序的全局有序消息队列包括:
订阅所述局部有序消息队列的消息,得到多个-主题标识及各个所述消息主题标识对应的分区消息;
将所述消息主题标识作为键、所述分区消息作为值,得到多个键值对消息队列;
获取预先创建的用于消费所述分布式消息队列中消息的多个内存队列,并将所述键值对消息队列中,相同键值的所述分区消息路由至一个所述内存队列,生成多个内存队列消息;
针对每个所述内存队列消息,分别开启预先配置的子线程对所述内存队列消息进行消费,生成所述全局有序消息队列。
在本申请一些实施方案中,所述整合模块具体还用于:
所述分布式消息队列为kafka,所述订阅所述局部有序队列的消息,得到多个主题标识及各个所述主题标识对应的分区消息,包括:
获取预先发布的kafka消息的消息主题;
根据所述消息主题,对所述局部有序队列中的各个分区消息进行分析,确定各个所述分区消息的消息主题标识;
订阅各个所述分区消息的消息主题标识,得到所述消息主题标识及各个所述消息主题标识对应的所述分区消息。
在本申请一些实施方案中,所述上链模块具体用于:
根据所述链通道标识和所述智能合约版本标识,确定所述上链数据的目标区块链;
将所述上链数据在所述目标区块链中进行上链。
在本申请一些实施方案中,所述上链模块具体还用于:
所述将所述链通道标识和所述智能合约版本标识,确定所述上链数据的目标区块链,包括:
根据所述智能合约版本标识确定所述上链数据所采用的目标智能合约;
将所述链通道标识与所述智能合约版本标识进行拼接,得到目标区块链类型标识;
根据所述目标区块链类型标识及所述目标智能合约,在预先配置的区块链类型标识、目标智能合约与区块链的映射表中,查找所述目标区块链。
在本申请一些实施方案中,所述上链模块具体还用于:
所述将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链,包括:
检测所述目标区块链是否存在预先配置的区块链网络;
若存在,则获取所述目标区块链对应的区块链网络,并利用所述区块链网络中配置的预设上链方法对所述上链数据进行上链;
若不存在,则根据所述链通道标识对应的连通道配置实例化区块链网络,并利用所述区块链网络中配置的上链方法对所述上链数据进行上链。
在本申请一些实施方案中,该区块链的数据整合装置还包括:
解析模块,用于通过区块链网络对上链后的上链数据进行解析,得到解析业务数据;
填充模块,用于对所述解析业务数据进行填充,得到标准化业务数据;
写入模块,用于将所述标准化业务数据写入预设数据库。
在本申请一些实施方案中,该区块链的数据整合装置还包括:
第一获取模块,用于获取预先存储的上链结果表,所述上链结果表中包括上链成功的数据;
对比模块,用于将所述上链数据与所述上链结果表中上链成功的数据进行对比校验,根据对比校验结果,确定是否存在上链失败数据;
二次上链模块,用于若存在所述上链失败数据,则对所述上链失败数据进行二次上链。
另一方面,本申请还提供一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器;以及
一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现第一方面中任一项所述的区块链的数据整合方法。
第四方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行第一方面任一项所述的区块链的数据整合方法中的步骤。
本申请通过获取区块链系统中多个业务节点的上链信息,将上链信息发送给所述消息中间件的分布式消息队列中,对所述分布式消息队列中的消息进行分析,得到多个局部有序消息队列集合,对所述局部有序消息队列集合进行有序消费,得到全局有序消息队列集合,将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链,实现了对不同业务节点的上链消息的整合,由于全局有序消息队列具备有序性,从而保障了上链数据的上链的全局有序性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的区块链的数据整合装置的场景示意图;
图2是本申请实施例中提供的区块链的数据整合方法的一个实施例流程示意图;
图3是本申请实施例中步骤304的一个实施例流程示意图;
图4是本申请实施例中步骤305的一个实施例流程示意图;
图5是本申请实施例中提供的区块链的数据整合装置的一个实施例结构示意图;
图6是本申请实施例中提供的计算机设备的一个实施例结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请中,“示例性”一词用来表示“用作例子、例证或说明”。本申请中被描述为“示例性”的任何实施例不一定被解释为比其它实施例更优选或更具优势。为了使本领域任何技术人员能够实现和使用本申请,给出了以下描述。在以下描述中,为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本申请。在其它实例中,不会对公知的结构和过程进行详细阐述,以避免不必要的细节使本申请的描述变得晦涩。因此,本申请并非旨在限于所示的实施例,而是与符合本申请所公开的原理和特征的最广范围相一致。
需要说明的是,本申请实施例方法由于是在计算机设备中执行,各计算机设备的处理对象均以数据或信息的形式存在,例如时间,实质为时间信息,可以理解的是,后续实施例中若提及尺寸、数量、位置等,均为对应的数据存在,以便计算机设备进行处理,具体此处不作赘述。
本申请实施例提供一种区块链的数据整合方法、装置、计算机设备及存储介质,以下分别进行详细说明。
请参阅图1,图1为本申请实施例所提供的区块链的数据整合装置的场景示意图,该区块链的数据整合装置可以包括计算机设备100,计算机设备100中集成有区块链的数据整合装置,如图1中的计算机设备。
本申请实施例中计算机设备100主要用于获取区块链系统中多个业务节点的上链信息;将所述上链信息发送给所述消息中间件的分布式消息队列中,所述消息中间件用于传输所述区块链系统中的消息;对所述分布式消息队列中的消息进行分析,得到所述上链消息的局部有序消息队列集合,所述局部有序消息队列集合包括多个局部有序消息队列,每个所述局部有序消息队列存储一个分区消息,每个分区消息对应一个消息主题;对所述局部有序消息队列集合进行有序消费,得到全局有序消息队列集合,所述全局有序消息队列集合包括多个标记有顺序的全局有序消息队列,每个所述全局有序消息队列存储具有相同消息主题的所述分区消息;将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链。计算机设备100在处理各个业务节点的上链信息时,实现了对不同业务节点的上链消息的整合,由于全局有序消息队列具备有序性,从而保障了上链数据的上链的全局有序性。
本申请实施例中,该计算机设备100可以是独立的服务器,也可以是服务器组成的服务器网络或服务器集群,例如,本申请实施例中所描述的计算机设备100,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云服务器。其中,云服务器由基于云计算(Cloud Computing)的大量计算机或网络服务器构成。
可以理解的是,本申请实施例中所使用的终端100可以是既包括接收和发射硬件的设备,即具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备。具体的终端100具体可以是台式终端或移动终端,终端100具体还可以是手机、平板电脑、笔记本电脑等中的一种。
本领域技术人员可以理解,图1中示出的应用环境,仅仅是与本申请方案一种应用场景,并不构成对本申请方案应用场景的限定,其他的应用环境还可以包括比图1中所示更多或更少的计算机设备,例如图1中仅示出1个计算机设备,可以理解的,该区块链的数据整合装置还可以包括一个或多个其他服务,具体此处不作限定。
另外,如图1所示,该区块链的数据整合装置还可以包括存储器200,用于不同业务节点的上链信息,如交易信息,例如数字藏品的各种交易信息,具体的,如数字藏品的归属信息,数字藏品的准转移信息等。
需要说明的是,图1所示的区块链的数据整合装置的场景示意图仅仅是一个示例,本申请实施例描述的区块链的数据整合装置以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着区块链的数据整合装置的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
首先,本申请实施例中提供一种区块链的数据整合方法,该区块链的数据整合方法的执行主体为区块链的数据整合装置,该区块链的数据整合装置应用于计算机设备,该区块链的数据整合方法包括:获取区块链系统中多个业务节点的上链信息;将所述上链信息发送给所述消息中间件的分布式消息队列中,;对所述分布式消息队列中的消息进行分析,得到所述上链消息的局部有序消息队列集合,所述局部有序消息队列集合包括多个局部有序消息队列,每个所述局部有序消息队列存储一个分区消息,每个分区消息对应一个消息主题;对所述局部有序消息队列集合进行有序消费,得到全局有序消息队列集合,所述全局有序消息队列集合包括多个标记有顺序的全局有序消息队列,每个所述全局有序消息队列存储具有相同消息主题的所述分区消息;将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链。
如图2所示,为本申请实施例中区块链的数据整合方法的一个实施例流程示意图,该区块链的数据整合方法可以包括如下步骤301~305,具体如下:
301、获取区块链系统中多个业务节点的上链信息。
区块链系统是指包含有多种不同数据结构的区块链组成的系统,其中的至少两个具有不同数据结构的区块链构成为为异构区块链。示例性地,区块链A的数据结构的结构体为{did,blockhash、funcParam(Json)},其中的did,blockhash、time、funcParam(Json)分别表示为分布式数字身份标识、块哈希、Json格式的传参;区块链B的数据结构的结构体为{txhash、blockheight},其中的txhash、blockheight分别表示为当前哈希、区块高度,区块链A与区块链B的数据结构的结构体不同,即区块链A与区块链B的数据结构不同,也即区块链A与区块链B组合为异构区块链。
一个区块链具有一种数据结构,其中的数据结构包括数据的参数类型、数据构建方式和参数属性等信息,异构区块链中的不同数据结构的数据,被称为异构数据,也即异构区块链中存在较多的异构数据,而异构数据在进行数据共享/存储过程中,需要进行数据转化,在异构数据较多时,会导致上链效率降低。
上链信息是指一个业务节点中,与进行数据上链相关的信息,包括多个业务节点各自上传的待上链数据、业务节点在区块链系统上的用户标识及私钥。该用户标识和私钥用于在上链时进行身份确权验证,待上链数据是指需要在区块链进行上链的数据,且不同业务节点上的待上链数据由于针对的是不同的业务,因此,各自的待上链数据为异构数据,即数据结构、类型必然不同。
其中,业务节点是指区块链技术架构中应用链对应的应用的节点,在区块链技术架构中,存在多种应用链,每种应用链对应的区块链类型、智能合约类型及数据结构不尽相同,示例性地,区块链类型根据技术实现可以分为evm、fisco bcos或hyperledger fabric等。
在一个具体实施方式中,可以在区块链系统中的业务节点上预先配置业务层、场景层和接入层,业务层为外部需要调用区块链服务的服务,场景层用于提供针对不同区块链智能合约类型的对应场景服务,接入层用于对场景层以及对外提供sdk、restful接口方式及同步上链服务、异步上链服务。在业务层生成上链需求时,将待上链数据提供给场景层。场景层获取用户标识和私钥,并将用户标识、私钥和待上链数据打包为上链信息,提交到接入层,且不同场景层提交的上链信息中的待上链数据,调用不同智能合约的参数封装,其中的参数包括区块链的类型和相应类型的区块链上的智能合约版本。
302、将所述上链信息发送给所述消息中间件的分布式消息队列中。
其中,消息中间件是在分布式系统中完成消息的发送和接收的基础组件,通过高效可靠的消息传递机制进行消息的传输,该消息中间件包括但不限于是ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ或RocketMQ等。分布式消息队列是消息中间件中用于保存消息的容器。
在本申请实施例中,通过消息中间件传输上链信息后,存储在分布式消息队列中,实现对海量数据消息进行快速筛选分析,提高消息传输效率高吞吐量和处理性能,还有利于提高后续数据上链的效率。
303、对所述分布式消息队列中的消息进行分析,得到所述上链消息的局部有序消息队列集合,所述局部有序消息队列集合包括多个局部有序消息队列,每个所述局部有序消息队列存储一个分区消息,每个分区消息对应一个消息主题。
其中,局部有序消息队列是指能够保证存储在同一分区(partition)内的消息有序的消息队列,即一个分区消息存放于一个局部有序队列,可以将分布式消息队列中的消息的内部划分成需要的分区数,把消息通过分区策略路由至固定的分区中,实现各个固定分区中的消息有序。
分区消息是指存储在一个分区中的上链信息,可以理解地,由步骤301可知,上链信息由用户标识、私钥和待上链数据打包得到,由于分区消息是对上链信息进行分布式消息处理后得到的,因此,分区消息中包含有用户标识和私钥。
具体地,区块链系统对存储于分布式消息队列中的消息进行分析,优选地,本实施例采用分布式发布订阅消息系统Kafka对分布式消息队列中的消息进行分析,Kafka通过磁盘数据结构提供消息的持久化,这种结构对于TB数量级的消息存储也能够保持长时间的稳定性能,能够处理各个应用链中不同业务节点的所有动作流数据,本实施例中,工作流数据具体可以是业务节点在进行数据上链过程中产生的各种数据。更具体地,Kafka集群获取到的每条消息都有一个消息主题,这个类别被称为Topic。不同Topic的消息分区存储,每个分区的存储位置可以根据需求进行自定义并记录在Offset中,消费者只需指定消息的Topic即可获取数据而不必关心数据具体存储在哪个地方。因此,为了实现局部有序,在kafka集群中的生产者发送消息时,指定分区键值(partition key),则根据分区键值的哈希(hash)值与分区数,进行运算后确定发送到哪个分区(partition),如此,分区键值相同的消息会放在同一个分区。每个分区内,每条消息都有Offset,保证同一分区内有序,也即局部有序,其中的Offset为存储位置的索引序列,Offset包括但不限于:Offset编号、消息类别、分布式服务器IP地址、存储位置和消息时间。且分区数量可以设置多个,以提升Topic的整体吞吐量。
需要说明的是,由于Kafka采用解耦的设计思想,并非原始的发布订阅,生产者把数据推送给每个Topic,消费者从Topic中获取数据,这种方式具有如下优势:
a)生产者的负载与消费者的负载解耦;
b)消费者按照自己的需要获取数据,避免了消费者集群中产生大量没必要的垃圾数据。其中,获取数据使用Fetch方法,Fetch方法提供了获取资源数据的API接口和更强大更灵活的功能集,消费者可以根据自己的能力来获取接口,不受生产者的服务器限制;
c)消费者可以自定义消费的数量。
可以理解地,由于这些优势,使得Kafka能够实时获取并存储对所有待上链信息进行快速分析,得到多个上链消息的局部有序消息队列,每个局部有序消息队列存储一个分区消息。
值得说明的是,针对每个分区,通过一个单线程处理的消费者,在实现部分有序的前提条件下,通过分区数量的并发来提高消息处理效率。
304、对所述局部有序消息队列集合进行有序消费,得到全局有序消息队列集合,所述全局有序消息队列集合包括多个标记有顺序的全局有序消息队列,每个所述全局有序消息队列存储具有相同消息主题的所述分区消息。
在一具体实施方式中,如图3所示,步骤304中所述对所述局部有序消息队列集合进行有序消费,得到全局有序消息队列集合,所述全局有序消息队列集合包括多个标记有顺序的全局有序消息队列,每个所述全局有序消息队列存储具有相同消息主题的所述分区消息,可以包括如下步骤401~404,具体如下:
401、订阅所述局部有序消息队列的消息,得到多个消息主题标识及各个所述消息主题标识对应的分区消息。
具体地,在得到局部有序消息队列后,消费者根据自身所需,订阅局部有序消息队列的消息,进而获取所需的各个主题标识及各个所述主题标识对应的分区消息。
在一具体实施方式中,步骤401中所述订阅所述局部有序消息队列的消息,得到多个消息主题标识及各个所述消息主题标识对应的分区消息,可以包括如下步骤501~503,具体如下:
501、获取预先发布的kafka消息的消息主题;
502、根据所述消息主题,对所述局部有序队列中的各个分区消息进行分析,确定各个所述分区消息的消息主题标识;
503、订阅各个所述分区消息的消息主题标识,得到所述消息主题标识及各个所述消息主题标识对应的所述分区消息。
具体地,Kafka获取到的每条消息都有一个消息主题,根据预先发布的消息主题,对分布式的消息进行分区存储,并对每个分区存储的消息进行分析,根据分析结果,确定每个分区消息的消息主题标识,并对消息主题标识进行发布,消费者按需订阅分区消息的消息主题标识,得到消息主题标识及消息主题标识对应的分区消息。
在一个具体实施方式中,根据预先发布的kafka消息的消息主题划分多个分区,得到分区总数M后,对获取到的消息中的分区键值进行哈希(hash)算法,得到分区键值的哈希值N,则分区键值对应的分区序号可以采用哈希值取余运算,即分区序号P=N%M,将同一分区键值计算的P值发送到对应的第P个分区中,得到各个消息主题标识的分区消息。
本实施例中,通过先发布的kafka消息的消息主题和Kafka集群进行分区,使得消费者根据接收到的消息主题标识进行按需订阅,得到消息主题标识及各个消息主题标识对应的分区消息,实现消息的局部有序化。
402、将所述消息主题标识作为键、所述分区消息作为值,得到多个键值对消息队列。
403、获取预先创建的用于消费所述分布式消息队列中消息的多个内存队列,并将所述键值对消息队列中,相同键值的所述分区消息路由至一个所述内存队列,生成多个内存队列消息。
404、针对每个所述内存队列消息,分别开启预先配置的子线程对所述内存队列消息进行消费,生成所述全局有序消息队列。
其中,内存队列是用于存放消息的队列,具有先进先出的特点。本实施例中,相同键值的分区消息路由到一个内存队列。本实施例中的键值为消息主题标识,因此,一个消息主题的分区消息放到一个内存队列,由于不同的局部有序消息队列中存储的分区消息的消息主题可能相同,因此,一个内存队列中存放至少一个分区消息,也即一个内存队列包含至少一个局部有序消息队列,从而后续从每个内存队列中取出分区消息进行消费。
具体地,区块链的底层链将订阅的每个kafka数据转化为键值对,得到多个键值对消息队列,在一具体实施方式中,每个键值对消息队列可以表示为:MAP<partitionKey,LinkedBlockingQueue>,其中,partitionKey为分区消息的主题标识,LinkedBlockingQueue为消息队列。
进一步地,获取预先创建的用于消费所述分布式消息队列中消息的多个内存队列,并将所述键值对消息队列中,相同键值的所述分区消息路由至一个所述内存队列,生成多个内存队列消息,再采用针对每个所述内存队列消息,分别开启预先配置的子线程对所述内存队列消息进行消费,生成所述全局有序消息队列。
本实施例中,通过底层链对消息队列进行结构转化,得到上链便捷快速的键值对消息队列,进而通过子线程对每个内存队列消息进行消费,得到全局有序消息队列,实现局部有序消息队列转化为全局有序消息队列,使得全局上链具备有序性,确保事务的一致性。
305、将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链。
其中,上链数据可以是一种结构体,示例性地,上链数据的结构可以如下:
{
"txParam":{
"chain":"channel7",
"scene":"evidence",
"args":[{
"serialId":"123",
"funcName":"saveUUIDAndHash",
"funcParam":["4444","4444"],
"user":"0xc654ef5a92b7c98a97d117f106238b808d1ff872",
"sk":
"d8af653f6508b56d8687f1a307d3994adbda165d042d27ac3e49b13f6d608488",
"certId":"",
"useCns":false,
"cnsName":""
}],
"key":"channel7"}
}
其中的"txParam"、"chain"、"scene"、"funcParam"、"user"、"sk"、"certId"、"useCns"、"cnsName"、"key"均为区块链中的的参数,分别为区块链函数、区块链类型、场景、传参、用户、私钥、证书ID、智能合约、智能合约名称、智能合约版本。上链数据在区块链系统中上链场景可以是存证、溯源或数字藏品等。
具体地,在确定全局有序消息队列中的所述具有相同消息主题的所述分区消息后,将该分区消息作为上链数据,并基于每个分区消息中包含的用户标识和私钥,对该上链数据进行上链处理,实现了对不同业务节点的上链消息的整合,由于全局有序消息队列具备有序性,从而保障了上链数据的上链的全局有序性。
值得说明的是,对上链数据在区块链中进行上链还可以是通过同步方式,其具体过程为:发送上链请求,判断上链数据是否达到上限,如果达到上限,则调用回退函数,如fallback。
在一具体实施方式中,上链信息包括上链信息对应的链通道标识和智能合约版本标识;步骤305中所述将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链,可以包括如下步骤601~602,具体如下:
601、根据所述链通道标识和所述智能合约版本标识,确定所述上链数据的目标区块链。
其中,链通道标识是用于唯一标识区块链的符号,智能合约版本标识是用于对智能合约的版本进行唯一标识的符号,在区块链系统中,包含多个区块链,每个区块链具有唯一的链通道标识,同时,在区块链系统的智能合约层,具有多个智能合约,每个智能合约根据具体应用需要进行版本升级,在进行上链之前,需要对智能合约的版本进行验证,确保对应的智能合约版本为符合要求的智能合约版本。
在一具体实施方式中,如图4所示,步骤601中所述将所述链通道标识和所述智能合约版本标识,确定所述上链数据的目标区块链,可以包括如下步骤701~703,具体如下:
701、根据所述智能合约版本标识确定所述上链数据所采用的目标智能合约;
702、将所述链通道标识与所述智能合约版本标识进行拼接,得到目标区块链类型标识;
703、根据所述目标区块链类型标识及所述目标智能合约,在预先配置的区块链类型标识、目标智能合约与区块链的映射表中,查找所述目标区块链。
具体地,本实施例中存在多个应用链,不同应用链对应不同的业务需求,采用不同的智能合约,为提高上链效率,本实施例通过智能合约定位目标区块链,减少目标区块链定位的时间开销,有利于提高上链的效率。
其中,映射表为预先配置,用于存储区块链类型标识、目标智能合约与区块链的关联信息。
本实施例中,通过智能合约版本标识确定所述上链数据所采用的目标智能合约,确保所采用的智能合约为符合的版本要求符合区块链要求,进而对链通道标识与所述智能合约版本标识进行拼接,确定目标区块链类型标识,并在预先配置的映射表中进行查询,定位目标区块链,减少目标区块链定位时间开销。
本实施例中,通过在链通道标识和智能合约版本标识的组合方式,快速确定目标区块链,有利于提高查询定位目标链的效率。
602、将所述上链数据在所述目标区块链中进行上链。
在一具体实施方式中,步骤305中所述将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链,可以包括如下步骤603~605,具体如下:
603、检测所述目标区块链是否存在预先配置的区块链网络;
604、若存在,则获取所述目标区块链对应的区块链网络,并利用所述区块链网络中配置的预设上链方法对所述上链数据进行上链;
605、若不存在,则根据所述链通道标识对应的连通道配置实例化区块链网络,并利用所述区块链网络中配置的上链方法对所述上链数据进行上链。
其中,区块链网络(network)其对应的是区块链的配置数据,包括主机集群、证书、共识算法、类型(bcos、fabric)等。
具体地,可以通过底层链blockchain领域层查询目标区块链是否存在预先配置的区块链网络缓存(network缓存),其中的底层链是一种存储在区块链网络中的分布式的资料库。若存在,则获取目标区块链对应的区块链网络,并利用所述区块链网络中配置的预设上链方法对所述上链数据进行上链,若不存在,则从区块链对应的数据库中查询目标区块链的配置,并实例化目标区块链对应的区块链网络(network)存入缓存,并执行上链处理。
需要说明的是,在预先配置的区块链网络缓存中,包括区块链网络对应的每个区块链的上链方法。
本实施例中,通过上链信息中包含的链通道标识和智能合约版本标识等参数进行目标区块链快速定位,进而检查预先配置的区块链网络中是否存在目标区块链,若存在,则通过区块链网络中的上链方法执行上链处理,若不存在,则对目标区块链进行实例化,进而执行上链处理。
在一具体实施方式中,在步骤305中所述将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链之后,该区块链的数据整合方法还可以包括如下步骤306~308,具体如下:
306、通过区块链网络对上链后的上链数据进行解析,得到解析业务数据;
307、对所述解析业务数据进行填充,得到标准化业务数据;
308、将所述标准化业务数据写入预设数据库。
其中,预设配置规则具体包括但不限于:正则表达式、字段标准化、数据清洗等。
本实施例中,通过对上链数据进行标准化,再存入预设与数据库,确保后续数据查询使用的便捷性。
在一具体实施方式中,在步骤305中所述将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链之后,该区块链的数据整合方法还可以包括如下步骤309~311,具体如下:
309、获取预先存储的上链结果表,所述上链结果表中包括上链成功的数据;
310、将所述上链数据与所述上链结果表中上链成功的数据进行对比校验,根据对比校验结果,确定是否存在上链失败数据;
311、若存在所述上链失败数据,则对所述上链失败数据进行二次上链。
需要说明的是,区块链将上链成功的数据存入上链结果表,智能合约层定时将上链结果表数据存入数据库中,示例性地,数据库可以是redis数据库、hbase数据库、mongodb数据库、clickhouse数据库或dorisdb数据库等,其中的mongodb数据库有利于提高对上链数据的持久化存储,clickhouse数据库和dorisdb数据库有利于提高对上链数据的查询和分析性能,进而后续在数据库进行数据对比校验,有利于提高数据比对校验的速度。
本实施例中,通过对上链数据与上链成功的数据进行对比校验,根据对比校验结果,确定是否存在上链失败数据,若存在,则对上链失败数据进行二次上链,确保上链信息全部实现上链,提高上链数据的完整性。
为了更好实现本申请实施例中区块链的数据整合方法,在区块链的数据整合方法基础之上,本申请实施例中还提供一种区块链的数据整合装置,如图5所示,所述区块链的数据整合装置800包括:
获取模块801,用于获取区块链系统中多个业务节点的上链信息;
发送模块802,用于将所述上链信息发送给所述消息中间件的分布式消息队列中;
分析模块803,用于对所述分布式消息队列中的消息进行分析,得到所述上链消息的局部有序消息队列集合,所述局部有序消息队列集合包括多个局部有序消息队列,每个所述局部有序消息队列存储一个分区消息,每个分区消息对应一个消息主题;
整合模块804,用于对所述局部有序消息队列集合进行有序消费,得到全局有序消息队列集合,所述全局有序消息队列集合包括多个标记有顺序的全局有序消息队列,每个所述全局有序消息队列存储具有相同消息主题的所述分区消息;
上链模块805,用于将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链。
本申请实施例中,通过获取区块链系统中多个业务节点的上链信息,将上链信息发送给所述消息中间件的分布式消息队列中,对所述分布式消息队列中的消息进行分析,得到多个局部有序消息队列集合,对所述局部有序消息队列集合进行有序消费,得到全局有序消息队列集合,将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链,实现了对不同业务节点的上链消息的整合,由于全局有序消息队列具备有序性,从而保障了上链数据的上链的全局有序性。
在本申请一些实施例中,所述整合模块804具体用于:
所述对所述局部有序消息队列集合进行有序消费,得到全局有序消息队列集合,所述全局有序消息队列集合包括多个标记有顺序的全局有序消息队列包括:
订阅所述局部有序消息队列的消息,得到多个-主题标识及各个所述消息主题标识对应的分区消息;
将所述消息主题标识作为键、所述分区消息作为值,得到多个键值对消息队列;
获取预先创建的用于消费所述分布式消息队列中消息的多个内存队列,并将所述键值对消息队列中,相同键值的所述分区消息路由至一个所述内存队列,生成多个内存队列消息;
针对每个所述内存队列消息,分别开启预先配置的子线程对所述内存队列消息进行消费,生成所述全局有序消息队列。
在本申请一些实施例中,所述整合模块804具体还用于:
所述分布式消息队列为kafka,所述订阅所述局部有序队列的消息,得到多个主题标识及各个所述主题标识对应的分区消息,包括:
获取预先发布的kafka消息的消息主题;
根据所述消息主题,对所述局部有序队列中的各个分区消息进行分析,确定各个所述分区消息的消息主题标识;
订阅各个所述分区消息的消息主题标识,得到所述消息主题标识及各个所述消息主题标识对应的所述分区消息。
在本申请一些实施例中,所述上链模块805具体用于:
根据所述链通道标识和所述智能合约版本标识,确定所述上链数据的目标区块链;
将所述上链数据在所述目标区块链中进行上链。
在本申请一些实施例中,所述上链模块805具体还用于:
所述将所述链通道标识和所述智能合约版本标识,确定所述上链数据的目标区块链,包括:
根据所述智能合约版本标识确定所述上链数据所采用的目标智能合约;
将所述链通道标识与所述智能合约版本标识进行拼接,得到目标区块链类型标识;
根据所述目标区块链类型标识及所述目标智能合约,在预先配置的区块链类型标识、目标智能合约与区块链的映射表中,查找所述目标区块链。
在本申请一些实施例中,所述上链模块805具体还用于:
所述将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链,包括:
检测所述目标区块链是否存在预先配置的区块链网络;
若存在,则获取所述目标区块链对应的区块链网络,并利用所述区块链网络中配置的预设上链方法对所述上链数据进行上链;
若不存在,则根据所述链通道标识对应的连通道配置实例化区块链网络,并利用所述区块链网络中配置的上链方法对所述上链数据进行上链。
在本申请一些实施例中,该区块链的数据整合装置还包括:
解析模块,用于通过区块链网络对上链后的上链数据进行解析,得到解析业务数据;
填充模块,用于对所述解析业务数据进行填充,得到标准化业务数据;
写入模块,用于将所述标准化业务数据写入预设数据库。
在本申请一些实施例中,该区块链的数据整合装置还包括:
第一获取模块,用于获取预先存储的上链结果表,所述上链结果表中包括上链成功的数据;
对比模块,用于将所述上链数据与所述上链结果表中上链成功的数据进行对比校验,根据对比校验结果,确定是否存在上链失败数据;
二次上链模块,用于若存在所述上链失败数据,则对所述上链失败数据进行二次上链。
本申请实施例还提供一种计算机设备,其集成了本申请实施例所提供的任一种区块链的数据整合装置,所述计算机设备包括:
一个或多个处理器;
存储器;以及
一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行上述区块链的数据整合方法实施例中任一实施例中所述的区块链的数据整合方法中的步骤。
本申请实施例还提供一种计算机设备,其集成了本申请实施例所提供的任一种区块链的数据整合装置。如图6所示,其示出了本申请实施例所涉及的计算机设备的结构示意图,具体来讲:
该计算机设备可以包括一个或者一个以上处理核心的处理器901、一个或一个以上计算机可读存储介质的存储器902、电源903和输入单元904等部件。本领域技术人员可以理解,图6中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器901是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器902内的软件程序和/或模块,以及调用存储在存储器902内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。可选的,处理器901可包括一个或多个处理核心;优选的,处理器901可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器901中。
存储器902可用于存储软件程序以及模块,处理器901通过运行存储在存储器902的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器902可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器902还可以包括存储器控制器,以提供处理器901对存储器902的访问。
计算机设备还包括给各个部件供电的电源903,优选的,电源903可以通过电源管理系统与处理器901逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源903还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该计算机设备还可包括输入单元904,该输入单元904可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器901会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器902中,并由处理器901来运行存储在存储器902中的应用程序,从而实现各种功能,如下:
获取区块链系统中多个业务节点的上链信息;
将所述上链信息发送给所述消息中间件的分布式消息队列中;
对所述分布式消息队列中的消息进行分析,得到所述上链消息的局部有序消息队列集合,所述局部有序消息队列集合包括多个局部有序消息队列,每个所述局部有序消息队列存储一个分区消息,每个分区消息对应一个消息主题;
对所述局部有序消息队列集合进行有序消费,得到全局有序消息队列集合,所述全局有序消息队列集合包括多个标记有顺序的全局有序消息队列,每个所述全局有序消息队列存储具有相同消息主题的所述分区消息;
将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行本申请实施例所提供的任一种区块链的数据整合方法中的步骤。例如,所述计算机程序被处理器进行加载可以执行如下步骤:
获取区块链系统中多个业务节点的上链信息;
将所述上链信息发送给所述消息中间件的分布式消息队列中;
对所述分布式消息队列中的消息进行分析,得到所述上链消息的局部有序消息队列集合,所述局部有序消息队列集合包括多个局部有序消息队列,每个所述局部有序消息队列存储一个分区消息,每个分区消息对应一个消息主题;
对所述局部有序消息队列集合进行有序消费,得到全局有序消息队列集合,所述全局有序消息队列集合包括多个标记有顺序的全局有序消息队列,每个所述全局有序消息队列存储具有相同消息主题的所述分区消息;
将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对其他实施例的详细描述,此处不再赘述。
具体实施时,以上各个单元或结构可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元或结构的具体实施可参见前面的方法实施例,在此不再赘述。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种区块链的数据整合方法、装置、计算机设备及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种区块链的数据整合方法,其特征在于,应用于区块链系统,所述区块链系统包括用于传输消息的消息中间件,所述消息中间件包括用于存储消息的分布式消息队列,所述区块链的数据整合方法包括:
获取所述区块链系统中多个业务节点的上链信息;
将所述上链信息发送给所述消息中间件的分布式消息队列中;
对所述分布式消息队列中的消息进行分析,得到所述上链消息的局部有序消息队列集合,所述局部有序消息队列集合包括多个局部有序消息队列,每个所述局部有序消息队列存储一个分区消息,每个分区消息对应一个消息主题;
对所述局部有序消息队列集合进行有序消费,得到全局有序消息队列集合,所述全局有序消息队列集合包括多个标记有顺序的全局有序消息队列,每个所述全局有序消息队列存储具有相同消息主题的所述分区消息;
将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链。
2.根据权利要求1所述的区块链的数据整合方法,其特征在于,所述对所述局部有序消息队列集合进行有序消费,得到全局有序消息队列集合,包括:
订阅所述局部有序消息队列的消息,得到多个消息主题标识及各个所述消息主题标识对应的分区消息;
将所述消息主题标识作为键、所述分区消息作为值,得到多个键值对消息队列;
获取预先创建的用于消费所述分布式消息队列中消息的多个内存队列,并将所述键值对消息队列中,相同键值的所述分区消息路由至一个所述内存队列,生成多个内存队列消息;
针对每个所述内存队列消息,分别开启预先配置的子线程对所述内存队列消息进行消费,生成所述全局有序消息队列。
3.根据权利要求2所述的区块链的数据整合方法,其特征在于,所述分布式消息队列为kafka,所述订阅所述局部有序队列的消息,得到多个主题标识及各个所述主题标识对应的分区消息,包括:
获取预先发布的kafka消息的消息主题;
根据所述消息主题,对所述局部有序队列中的各个分区消息进行分析,确定各个所述分区消息的消息主题标识;
订阅各个所述分区消息的消息主题标识,得到所述消息主题标识及各个所述消息主题标识对应的所述分区消息。
4.根据权利要求1-3任一项所述的区块链的数据整合方法,其特征在于,所述上链信息包括待上链的区块链的链通道标识和智能合约版本标识;
所述将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链,包括:
根据所述链通道标识和所述智能合约版本标识,确定所述上链数据的目标区块链;
将所述上链数据在所述目标区块链中进行上链。
5.根据权利要求4所述的区块链的数据整合方法,其特征在于,所述将所述链通道标识和所述智能合约版本标识,确定所述上链数据的目标区块链,包括:
根据所述智能合约版本标识确定所述上链数据所采用的目标智能合约;
将所述链通道标识与所述智能合约版本标识进行拼接,得到目标区块链类型标识;
根据所述目标区块链类型标识及所述目标智能合约,在预先配置的区块链类型标识、目标智能合约与区块链的映射表中,查找所述目标区块链。
6.根据权利要求5所述的区块链的数据整合方法,其特征在于,所述将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链,包括:
检测所述目标区块链是否存在预先配置的区块链网络;
若存在,则获取所述目标区块链对应的区块链网络,并利用所述区块链网络中配置的预设上链方法对所述上链数据进行上链;
若不存在,则根据所述链通道标识对应的连通道配置实例化区块链网络,并利用所述区块链网络中配置的上链方法对所述上链数据进行上链。
7.根据权利要求1所述的区块链的数据整合方法,其特征在于,在所述将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链之后,还包括:
通过区块链网络对上链后的上链数据进行解析,得到解析业务数据;
对所述解析业务数据进行填充,得到标准化业务数据;
将所述标准化业务数据写入预设数据库。
8.根据权利要求1所述的区块链的数据整合方法,其特征在于,在所述将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链之后,还包括:
获取预先存储的上链结果表,所述上链结果表中包括上链成功的数据;
将所述上链数据与所述上链结果表中上链成功的数据进行对比校验,根据对比校验结果,确定是否存在上链失败数据;
若存在所述上链失败数据,则对所述上链失败数据进行二次上链。
9.一种区块链的数据整合装置,其特征在于,应用于区块链系统,所述区块链系统包括用于传输消息的消息中间件,所述消息中间件包括用于存储消息的分布式消息队列,所述区块链的数据整合装置包括:
获取模块,用于获取所述区块链系统中多个业务节点的上链信息;
发送模块,用于将所述上链信息发送给所述消息中间件的分布式消息队列中;
分析模块,用于对所述分布式消息队列中的消息进行分析,得到所述上链消息的局部有序消息队列集合,所述局部有序消息队列集合包括多个局部有序消息队列,每个所述局部有序消息队列存储一个分区消息,每个分区消息对应一个消息主题;
整合模块,用于对所述局部有序消息队列集合进行有序消费,得到全局有序消息队列集合,所述全局有序消息队列集合包括多个标记有顺序的全局有序消息队列,每个所述全局有序消息队列存储具有相同消息主题的所述分区消息;
上链模块,用于将所述全局有序消息队列中的所述具有相同消息主题的所述分区消息作为上链数据,在所述区块链系统上链。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行权利要求1至8任一项所述的区块链的数据整合方法中的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211001630.1A CN117633102A (zh) | 2022-08-19 | 2022-08-19 | 区块链的数据整合方法、装置、计算机设备及存储介质 |
PCT/CN2023/113768 WO2024037629A1 (zh) | 2022-08-19 | 2023-08-18 | 区块链的数据整合方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211001630.1A CN117633102A (zh) | 2022-08-19 | 2022-08-19 | 区块链的数据整合方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117633102A true CN117633102A (zh) | 2024-03-01 |
Family
ID=89940785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211001630.1A Pending CN117633102A (zh) | 2022-08-19 | 2022-08-19 | 区块链的数据整合方法、装置、计算机设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117633102A (zh) |
WO (1) | WO2024037629A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118093147B (zh) * | 2024-04-29 | 2024-08-02 | 浙江农商数字科技有限责任公司 | 一种基于任务链和分治法的海量数据汇总方法及系统 |
CN118277134B (zh) * | 2024-06-04 | 2024-08-27 | 北京友友天宇系统技术有限公司 | 基于分布式消息队列的数据处理方法和系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110795257B (zh) * | 2019-09-19 | 2023-06-16 | 平安科技(深圳)有限公司 | 处理多集群作业记录的方法、装置、设备及存储介质 |
CN111930533A (zh) * | 2020-07-28 | 2020-11-13 | 银盛支付服务股份有限公司 | 一种基于kafka的生产消费同一数据的有序处理方法及系统 |
CN113347164B (zh) * | 2021-05-24 | 2022-11-04 | 湖南大学 | 基于区块链的分布式共识系统及方法、设备、存储介质 |
CN113347238A (zh) * | 2021-05-26 | 2021-09-03 | 湖南大学 | 基于区块链的消息分区方法及系统、设备、存储介质 |
CN114390097A (zh) * | 2022-01-10 | 2022-04-22 | 北京新华夏信息技术有限公司 | 基于消息队列的区块链运行方法、系统及其应用 |
-
2022
- 2022-08-19 CN CN202211001630.1A patent/CN117633102A/zh active Pending
-
2023
- 2023-08-18 WO PCT/CN2023/113768 patent/WO2024037629A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024037629A1 (zh) | 2024-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113243005A (zh) | 按需网络代码执行系统中的基于性能的硬件仿真 | |
US9363195B2 (en) | Configuring cloud resources | |
CN117633102A (zh) | 区块链的数据整合方法、装置、计算机设备及存储介质 | |
US20150347305A1 (en) | Method and apparatus for outputting log information | |
CN111562889B (zh) | 数据处理方法、装置、系统及存储介质 | |
CN113709810B (zh) | 一种网络服务质量的配置方法、设备和介质 | |
CN115361389B (zh) | 一种云计算实例创建方法及装置 | |
CN112698952A (zh) | 计算资源统一管理方法、装置、计算机设备及存储介质 | |
CN113014608A (zh) | 一种流量分发控制方法、装置、电子设备及存储介质 | |
CN110457132B (zh) | 一种功能对象的创建方法、装置和终端设备 | |
CN114710571A (zh) | 数据包处理系统 | |
CN110380902B (zh) | 拓扑关系生成方法、装置、电子设备及存储介质 | |
CN112015515B (zh) | 一种虚拟网络功能的实例化方法及装置 | |
CN109981697A (zh) | 一种文件转存方法、系统、服务器及存储介质 | |
CN116032614A (zh) | 容器网络微隔离方法、装置、设备和介质 | |
CN114756301A (zh) | 日志处理方法、装置和系统 | |
CN114024976B (zh) | 一种基于5g的大数据服务架构及构建大数据业务的方法 | |
CN114844957B (zh) | 链路报文转换方法、装置、设备、存储介质和程序产品 | |
US12073263B1 (en) | Dynamic processing of API requests | |
US20240348513A1 (en) | Slice-driven deployment of network functions | |
CN114253747B (zh) | 一种分布式消息管理系统和方法 | |
CN116828588B (zh) | 通信方法、可读介质和电子设备 | |
US20230315543A1 (en) | Tightly coupled parallel applications on a serverless computing system | |
US20230315541A1 (en) | Tightly coupled parallel applications on a serverless computing system | |
CN112988125B (zh) | 一种数据桥接方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |