CN116701452A - 数据处理方法、相关设备、存储介质及程序产品 - Google Patents
数据处理方法、相关设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN116701452A CN116701452A CN202210183887.7A CN202210183887A CN116701452A CN 116701452 A CN116701452 A CN 116701452A CN 202210183887 A CN202210183887 A CN 202210183887A CN 116701452 A CN116701452 A CN 116701452A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- blockchain
- source data
- source
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 32
- 238000012545 processing Methods 0.000 claims abstract description 115
- 238000006243 chemical reaction Methods 0.000 claims abstract description 65
- 238000000034 method Methods 0.000 claims abstract description 47
- 238000004590 computer program Methods 0.000 claims description 27
- 238000005457 optimization Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 description 27
- 238000005516 engineering process Methods 0.000 description 18
- 230000001360 synchronised effect Effects 0.000 description 10
- 238000013480 data collection Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000007405 data analysis Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 208000001613 Gambling Diseases 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012795 verification 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
- G06F16/1794—Details of file format conversion
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据处理方法、相关设备、存储介质及程序产品,其中方法包括:从区块链网络中获取源数据,并将获取的源数据存储到缓存池中;对源数据进行数据格式转换处理,并将格式转换后的源数据存储为目标格式的一个或多个数据文件,其中,基于目标格式的数据文件进行数据采集的速率,满足执行目标业务时的速率要求;当目标业务设备需执行目标业务时,使目标业务设备通过第一线程池从目标格式的一个或多个数据文件中异步采集目标业务的相关数据,以基于采集到的相关数据执行目标业务。采用本申请实施例提供的数据处理方法可以有效提升对区块链网络中相关数据进行数据处理时的效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法、相关设备、存储介质及程序产品。
背景技术
随着计算机技术领域中的区块链技术的迅猛发展以及区块链应用的落地,区块链网络中产生了大量的区块链链上数据(以下简称:区块链数据)。在对区块链网络中的相关数据进行数据分析之前通常需要获取较为全面的区块链数据(如:区块中的内部交易数据、交易收据等详细信息)。然而,传统的数据处理方法在实际应用过程中,全面的区块链数据的数据采集过程与基于采集到的区块链数据进行业务数据采集的过程通常会互相影响,导致了传统的数据处理方法在对区块链网络中的相关数据进行数据处理时的效率较为低下的问题。
发明内容
本申请实施例提供了一种数据处理方法、相关设备、存储介质及程序产品,可提升对区块链网络中相关数据进行数据处理时的效率。
一方面,本申请实施例提供了一种数据处理方法,包括:
从区块链网络中获取源数据,并将获取的源数据存储到缓存池中;
对所述源数据进行数据格式转换处理,并将格式转换后的源数据存储为目标格式的一个或多个数据文件,其中,基于目标格式的数据文件进行数据采集的速率,满足执行目标业务时的速率要求;
当目标业务设备需执行所述目标业务时,使所述目标业务设备通过第一线程池从所述目标格式的一个或多个数据文件中异步采集所述目标业务的相关数据,以基于采集到的相关数据执行所述目标业务。
再一方面,本申请实施例提供了一种数据处理装置,包括:
获取单元,用于从区块链网络中获取源数据,并将获取的源数据存储到缓存池中;
数据格式转换单元,用于对所述源数据进行数据格式转换处理,并将格式转换后的源数据存储为目标格式的一个或多个数据文件,其中,基于目标格式的数据文件进行数据采集的速率,满足执行目标业务时的速率要求;
业务执行单元,用于当目标业务设备需执行所述目标业务时,使所述目标业务设备通过第一线程池从所述目标格式的一个或多个数据文件中异步采集所述目标业务的相关数据,以基于采集到的相关数据执行所述目标业务。
再一方面,本申请实施例还提供了一种计算机设备,包括:
处理器,所述处理器用于实现一条或多条计算机程序;
计算机存储介质,所述计算机存储介质存储有一条或多条计算机程序,所述一条或多条计算机程序适于由所述处理器加载并执行如第一方面所述的数据处理方法。
再一方面,本申请实施例还提供了一种计算机存储介质,所述计算机存储介质存储有一条或多条计算机程序,所述一条或多条计算机程序适于由所述处理器加载并执行如第一方面所述的数据处理方法。
再一方面,本申请实施例提供了一种计算机产品,所述计算机产品包括计算机程序,所述计算机程序适于由处理器加载并执行如第一方面所述的数据处理方法。
在本申请实施例中,计算机设备可以从区块链网络中获取源数据,并将获取到的源数据存储到缓存池中;然后,计算机设备可以将缓存池中存储的源数据进一步打包为目标格式的数据文件,以使得目标业务需要执行时,计算机设备可以从数据文件中进行相关业务数据的采集,从而避免计算机设备在采集业务数据时影响计算机设备从区块链网络中获取源数据的效率,因此,本申请实施例可以提升计算机设备在对与区块链网络相关的数据进行数据处理时的效率。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的一种区块链的结构示意图;
图1b是本申请实施例提供的一种区块链系统的结构示意图;
图1c是本申请实施例提供的一种数据处理方案的流程示意图;
图1d是本申请实施例提供的一种数据处理系统的结构示意图;
图1e是本申请实施例提供的又一种数据处理系统的结构示意图;
图2是本申请实施例提供的一种数据处理方法的流程示意图;
图3是本申请实施例提供的一种部署在区块链虚拟机中的插桩代码的伪代码示意图;
图4是本申请实施例提供的又一种数据处理方法的流程示意图;
图5是本申请实施例提供的一种数据采集流程的示意图;
图6是本申请实施例提供的一种数据处理装置的结构示意图;
图7是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请实施例所提供的方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。需要说明的是,本申请实施例中描述的各个具体实施例只是本申请一部分实施例,而不是全部的实施例。基于本申请中的各个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例可以用于对区块链网络中的相关区块链数据进行数据采集,进而实现对区块链数据所蕴含的信息的提取。区块链网络是基于区块链技术构建的,其具备去中心化,不可篡改等特性。为了便于理解本申请实施例的应用领域以及采用的技术手段,以下将对区块链技术以及与区块链技术相关的概念进行详细解释。
区块链技术是一种新兴技术,是一门涉及密码学,博弈论,货币学的交叉学科。区块链技术主要利用区块链(Blockchain,一种利用以区块为单位的链式数据结构)来存储数据,利用共识算法来保证数据的一致性,利用密码学来保证数据的安全性。区块链的结构可以如图1a所示,区块链包括一系列按照产生的先后时间顺序相互接续的区块(Block,数据块),区块中记录了区块链网络(或区块链系统)中区块链节点提交的记录数据,并且需要说明的是,新产生的区块一旦加入到区块链中就不会再被移除。以下结合图1a所示的区块链,对区块的产生时间顺序进行举例说明。在图1a所示的区块链中,区块1的产生时间先于区块2的产生时间,区块2的产生时间先于区块3的产生时间。其中,区块链本质上可以理解为一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。并且,每个区块的区块结构(Block Structure)可以如下:存储交易记录的哈希值(本区块的哈希值)以及前一区块的哈希值。那么,各区块可以通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息,本申请实施例对此不作详述。
在区块链技术中,还有一个重要概念是智能合约。随着区块链技术与智能合约的结合,各种各样的区块链平台相继面世,满足了不同业务场景的需求,使得区块链技术的发展得到了进一步推进。其中,智能合约是指一种计算机化的协议,具体可以理解为可以执行某个合约的条款,或部署在共享账本上的用于在满足一定条件时而执行的代码。实际应用中,智能合约可以用于根据实际的业务需求来完成自动化的交易,例如:查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的名下等。当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约,本申请实施例对此不做详述。其中,共享账本可以理解为:任一区块链节点用于提供账目数据的存储、查询和修改等操作的功能。任一区块链节点可以将对账目数据的操作的记录数据发送到区块链系统中的其他区块链节点,其他区块链节点验证有效后,其他区块链节点可以将记录数据存入临时区块中,以作为承认账目数据有效的响应。此外,其他区块链节点还可以向发起操作的区块链节点发送确认通知,本申请对其具体实现方式不做详述。
需要说明的是,区块链节点存在于区块链网络或区块链系统中,区块链网络或区块链系统可以包括多个区块链节点。其中,区块链网络或区块链系统的结构可以示例性地参见图1b所示,其本质上可以看作一个分布式系统。在分布式系统中,任何计算设备可以加入该系统而成为一个节点,节点包括硬件层、中间层、操作系统层和应用层。因此,区块链系统(或区块链网络)可以包括一个或多个区块链节点(如:区块链节点101、区块链节点102等)以及客户端103,任一区块链节点可以是接入区块链网络中的任意形式的计算设备,如服务器、终端等。区块链节点之间可以形成点对点(P2P,Peer To Peer)网络,其中,P2P网络使用的网络协议是P2P协议,该协议是一个运行在传输控制协议(TCP,TransmissionControl Protocol)协议之上的应用层协议,本申请实施例对该协议不作详述。此外还需要说明的是,区块链节点可以具备多项功能,如:路由功能、应用功能等。其中,路由功能是区块链节点具有的基本功能,其主要用于支持区块链节点之间的通信。应用功能可以部署在区块链中,其主要用于根据实际业务需求而实现特定业务。在区块链节点基于应用功能实现相关业务的过程中,应用功能还可以用于记录与实现该功能相关的数据所形成的记录数据,并在记录数据中携带数字签名以表示该记录数据的来源;此外,应用功能还可以用于将记录数据添加到临时区块中,其添加前提是:在该应用功能所在区块链节点将记录数据发送到区块链系统中的其他区块链节点后,其他区块链节点验证记录数据来源成功以及验证记录数据完整性成功。基于上述描述,在实际应用中的应用功能可以实现的具体业务可以包括钱包业务。钱包业务用于提供电子货币的交易的功能,其具体可以包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他区块链节点,其他区块链节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中)、查询电子货币地址中剩余的电子货币等功能。
区块链网络中的区块链数据蕴含了丰富的信息,那么,随着区块链技术的广泛应用,众多与区块链数据相关的数据处理方法便应运而生。为了能够以较高的数据处理效率对区块链数据进行数据处理,本申请实施例基于上述区块链技术提出了两种数据处理方案。在具体实施例中,任一数据处理方案均可以由计算机设备来执行,且计算机设备可以是服务器,也可以是终端设备。其中,终端设备可以包括但不限于:智能手机、平板电脑、笔记本电脑、台式计算机、车载终端、智能电视等。终端设备内可运行各式各样的客户端(application,APP),如多媒体播放客户端、社交客户端、浏览器客户端、信息流客户端、教育客户端、图像处理客户端,等等。此外,服务器可以包括但不限于:独立的物理服务器,多个物理服务器构成的服务器集群或者分布式系统,以及提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content DeliveryNetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器等,本申请实施例对此不作具体限制。
基于上述关于区块链技术、区块链网络以及区块链等相关描述,本申请实施例提供了两种数据处理方案。以下结合图1c所示的流程图对第一种数据处理方案的大致原理进行阐述。如图1c所示,计算机设备在对区块链网络中的相关数据进行数据处理时,可以先从区块链网络中获取区块,然后,计算机设备可以将区块以及区块中的外部交易数据插入至存储引擎中。其中,在计算机设备执行数据插入的过程中,计算机设备可以采用存储引擎创建被插入的数据的索引,以便于后续的数据查询。那么,本方案中的存储引擎可以理解为一个具备数据索引功能以及数据存储功能的数据库,且根据图1c可见,本方案中的存储引擎可以示例性地包括:索引库(如:布隆过滤器)、数据库管理模块(如:MongoDB、PostgreSQL等)和其他模块。其中,索引库可以用于建立索引和进行索引查找,数据库管理模块可以用于进行相关数据(如:区块、区块的外部交易数据等)的存储。进一步地,计算机设备可以采用区块链节点中的区块链虚拟机基于外部交易数据进行相应处理,以得到区块对应的内部交易数据和交易收据。在计算机设备得到内部交易数据和交易收据之后,计算机设备可以将内部交易数据和交易收据也插入到存储引擎中。在此情况下,当需要执行目标业务时,计算机设备可以从存储引擎中根据相应的索引查询到相关业务数据,进而可以基于业务数据执行目标业务。其中,目标业务可以是任一项与数据文件中的数据相关的业务,如:数据分析业务、数据统计业务、区块链价值信息提取业务等。在后续实施例中,均以目标业务为数据分析业务为例来对本申请实施例的相关实现方式进行详细说明。那么,业务数据可以理解为基于区块链网络上的区块链数据执行目标业务时所需的数据。
在第一种数据处理方案的实际应用过程中,本申请发现:若存在数据存储和数据查询需要同时进行时,存储引擎既需要执行数据插入的工作,又需要执行数据索引的工作。因此不难看出,在存储引擎将从区块链网络中同步到的数据插入至存储引擎时,若存在从已同步的数据中获取与目标业务相关的业务数据的行为,则会降低存储引擎的插入性能,从而影响数据存储的速率,进一步也就减缓了整个数据处理流程。那么,也就是说,在第一种数据处理方案中,从区块链网络中进行数据同步的过程和获取业务数据的过程是耦合在一起的,这导致计算机设备在基于第一种数据处理方案执行数据处理时的数据处理效率不够理想。
为了改善第一种数据处理方案中的不足之处,本申请实施例提出了第二种数据处理方案,该数据处理方案的大致原理可以如下:计算机设备从区块链网络中同步区块链数据,然后计算机设备可以将同步的区块链数据存储至缓存池;进一步地,计算机设备可以对缓存池中的区块链数据进行数据格式转换处理,以得到目标格式的数据文件。其中,从目标格式的数据文件中采集业务数据的速率可以高于从缓存池中采集业务数据的速率。那么,当有目标业务需要执行时,目标业务设备可以采用第一线程池从数据文件中采集业务数据,无需从缓存池中进行数据获取,从而使得目标业务可以顺利执行的同时不会影响到区块链数据的同步。也就是说,在第二种数据处理方案中,由于获取的业务数据是从数据文件中获取的,而从区块链网络中同步的区块链数据是存储在缓存池中的,因此,业务数据的采集和区块链数据的获取这两个操作各自进行、互不影响,从而可见,第二种数据处理方案在用于从区块链网络中提取业务数据时,具有较高的数据处理效率。
那么,基于上述两种数据处理方案的相关描述不难看出,第二种数据处理方案的实用性要优于第一种数据处理方案,因此,以下重点以第二种数据处理方案为例来对本申请的相关实施例进行详细说明。也就可以理解的是,在无特殊说明的情况下,以下各实施例中所提及的数据处理方案均指的是第二种数据处理方案。
在一个实施例中,本申请实施例提供的数据处理方案可以应用于数据处理系统中,由数据处理系统中的相关设备来协同执行。在此情况下,数据处理系统的结构可以参见图1d,由图1d可见数据处理系统可以包括区块链网络111,新建区块链节点112以及目标业务设备113。其中,区块链网络111与新建区块链节点112建立有数据连接,以使得新建区块链节点112可以从区块链网络111中获取区块链数据;目标业务设备113与新建区块链节点112建立有数据连接,以使得目标业务设备113可以从新建区块链节点112获取到的区块链数据中采集业务数据,进而执行目标业务。基于此,当该数据处理方案应用于如图1d所示的数据处理系统时,该数据处理方案的大致原理可以如下:将新建区块链节点112加入至区块链网络111中,以使得新建区块链节点112可以从区块链网络111中进行区块链数据的同步,示例性地,新建区块链节点112可以将同步到的区块链数据存储至缓存池,并且,新建区块链节点112可以在同步区块链数据的过程中,对区块链数据进行数据格式转换以得到数据文件。进一步地,当有目标业务需要执行时,目标业务设备113可以基于与新建区块链节点112之间的数据连接,从数据文件中进行业务数据的采集,从而可以使得目标业务设备113能够基于业务数据执行目标业务。可选地,本申请实施例中的数据处理系统的结构还可以如图1e所示。那么,在实际应用中,区块链数据的获取以及业务数据的采集都可以由目标业务设备来执行。具体来说,可以将目标业务设备114加入至区块链网络111,然后由目标业务设备114中的第二线程池对获取到的区块链数据进行数据格式转换得到数据文件,由目标业务设备114中的第一线程池从数据文件中采集业务数据,同样可以保证数据处理时的效率。
基于上述两种数据处理方案的描述,本申请实施例提出了一种数据处理方法,该数据处理方法可以由上述提及的计算机设备来执行。请参见图2,图2为该数据处理方法的流程示意图,如图2所示,该方法可以包括步骤S201-S203:
S201,从区块链网络中获取源数据,并将获取的源数据存储到缓存池中。
源数据指的是用于执行目标业务的业务数据的数据源。在本申请实施例中,源数据可以理解为计算机设备基于区块链网络中的区块链数据获取到的相关数据。具体地,区块链数据可以例如是构成区块链的一个或多个区块,也就是说,本申请实施例中的源数据可以是计算机设备基于一个或多个区块获取到的。其中,一个区块主要由区块头和区块体组成,区块头可以包括一个区块的基本信息(如:区块生产者的地址、时间戳、交易默克尔根等),区块体可以包括对象发起的交易的具体信息。在本申请实施例中,区块体包括的交易的具体信息可以称为外部交易数据,并且一个区块具体可以包括一个或多个外部交易数据。需要说明的是,在区块链技术的实际应用中,交易一般代表对象(如:用户)对智能合约的调用,那么,外部交易可以代表对象与区块链的一次交互。其中,交互可以如:对象调用区块链上的某个智能合约、合约函数或函数参数等。示例性地,对象可以包括交易的发送者和/或接受者。那么,基于上述描述可以理解,外部交易数据可以是对象与区块链之间的交互数据,如:与一笔或多笔外部交易相关的数据。
在具体实施例中,在对象调用智能合约的过程中,还可以产生内部交易数据和交易收据,也就是说,内部交易数据和交易收据可以是在外部交易的执行过程中产生。以下对内部交易数据和交易收据的一种产生方式进行详细说明。对象可以发起外部交易,具体地,外部交易可以由对象调用智能合约的某个函数来执行。在被调用的函数内部(也就是在这个函数执行过程中),智能合约可以继续调用其他智能合约,或者与其他对象进行交互,那么,在一个智能合约调用其他智能合约,或在一个智能合约与其他对象进行交互的过程中所产生的数据则可以理解为内部交易数据和交易收据。并且在一种可行的实施方式中,交易收据可以具体是智能合约运行的结果(成功或者失败)和/或智能合约在运行过程中产生的某些相关的日志输出。
那么,本申请实施例中的源数据可以包括但不限于以下任意一种或多种:区块、区块中的外部交易数据、基于外部交易数据进行外部交易重放后得到的内部交易数据和交易收据。其中,外部交易重放可以理解为计算机设备重新执行外部交易,或者理解为计算机设备重新运行外部交易数据,其本质是计算机设备重新对相关智能合约进行调用。在计算机设备重放外部交易时,被调用的智能合约将在区块链虚拟机上运行,本申请实施例中的区块链虚拟机可以存在于计算机设备中。此外需要说明的是,在本申请实施例中,区块、外部交易数据、内部交易数据以及交易收据,可以看作四种不同数据类型的源数据。
以下将结合具体实施例,对计算机设备获取源数据以及对源数据进行存储的方式进行详细说明。在本申请实施例中,当计算机设备获取到源数据之后,计算机设备可以将获取的源数据存储于缓存池中,以备后续使用。在本申请实施例中,缓存池可以是基于计算机设备中可信硬件构建的任一存储空间,也可以是计算机设备所在网络中的任意存储空间。其中,存储空间可以包括本地存储空间和云存储空间中的一种或两种,本申请实施例对此不做限制。可以理解,基于可信硬件构建的存储空间可以保证从区块链网络中同步到的数据的安全性,进而保护相关对象的合法权益。又基于上述描述可知,区块可以是计算机设备直接从区块链网络中获取的,外部交易数据可以是计算机设备从获取的区块中提取出来的,内部交易数据以及交易收据可以是计算机设备采用区块链虚拟机重新运行外部交易数据后得到的。因此,在本申请实施例中,计算机设备获取源数据,并将获取的源数据存储到缓存池的具体方式可以如下:
计算机设备可以直接将从区块链网络中获取的区块存储到缓存池中。又由于区块是存在于区块链网络的区块链中的,而区块链是由具有特定的排列顺序一个或多个区块构成的。那么,在此情况下,计算机设备从区块链网络中获取区块时,可以是按照区块链中区块的排列顺序(如:区块号由小到大的排列顺序、区块号由大到小的排列顺序)获取的。当计算机设备获取到区块之后,计算机设备可以基于获取的区块获取其他数据类型的源数据。具体来说,为了获取内部交易数据和交易收据,计算机设备可以将获取的区块中存储的外部交易数据输入到区块链虚拟机中,并从所述区块链虚拟机中获取区块链虚拟机在运行外部交易数据后所产生的内部交易数据和交易收据。然后,计算机设备可以将区块中的外部交易数据,基于外部交易数据获取到的内部交易数据以及交易收据一同存储到缓存池中。那么,由于计算机设备在获取区块时,可以是按照区块链中各个区块的排列顺序获取的,因此也就不难理解,计算机设备在存储源数据至缓存池时,也可以按照区块号的排列顺序依次将相应的源数据(如:该区块中的外部交易数据、基于该区块的外部交易数据获取的内部交易数据以及交易收据)存储到缓存池。
其中,计算机设备在将获取的区块中存储的外部交易数据输入至区块链虚拟机进行运行,以获取相应内部交易数据以及交易收据时,计算机设备可以先将用于获取交易收据和内部交易收据的插桩代码(其伪代码可如图3所示)部署到区块链虚拟机中,然后,计算机设备可以将获取的区块中存储的外部交易数据(一个或多个)输入到区块链虚拟机。进一步地,计算机设备可以调用区块链虚拟机中的插桩代码以一个区块为单位,对由一个区块中存储的外部交易数据所产生的内部交易数据和交易收据进行记录,以从区块链虚拟机中获取相应的内部交易数据和交易收据。在本申请实施例中,以一个区块为单位对相关数据进行记录可以理解为:对同一区块中的外部交易数据,由同一区块的外部交易数据所产生的内部交易数据及交易收据打上相同的区块号标签,该区块号标签用于指示该同一区块的区块号。在此情况下,计算机设备在存储源数据时可以将相同区块号标签的源数据存储至一起(如:将相同区块号标签的外部交易数据存储在一起,将相同区块号标签的内部交易数据存储在一起),进而可以保证源数据也可以按照区块的排列顺序(如:由小到大的排列顺序)进行存储,避免了计算机设备获取的源数据排序不可靠、排列顺序不可验证等问题,从而使得计算机设备或其他设备对相关交易数据的验证更加轻松,在一定程度上可以保证区块链交易发送者的权益。
在此需要特别说明的是,当本申请实施例在运用到具体产品或技术中时,若涉及到获取与对象相关的数据的行为,则相关的产品或技术需要获得对象的许可或者同意,并且相关的产品或技术获取的相关数据需要符合相关国家和地区的法律法规和标准。
S202,对源数据进行数据格式转换处理,并将格式转换后的源数据存储为目标格式的一个或多个数据文件。
在具体实施例中,目标格式可以是区块链网络中存储区块链数据的数据格式,也可以是计算机设备在执行目标业务时所需的业务数据的数据格式。由于不同的区块链平台中区块链数据的数据格式不相同,因此不难理解,本申请实施例可以应用于不同的区块链平台中。其中,当目标格式是区块链数据的数据格式时,计算机设备在对源数据进行数据格式转换处理之前,计算机设备可以先获取区块链网络中区块链数据的数据格式作为目标格式,然后,计算机设备可以将缓存池中存储的源数据转换为目标格式,并进一步基于格式转换后的源数据生成目标格式的一个或多个数据文件。在此情况下,计算机设备在后续获取与目标业务相关的业务数据时,可以直接从数据文件中获取。可以理解,在具体实现中,由于计算机设备从数据文件中获取业务数据,那么,计算机设备可以一次从多个数据文件中并行获取,从而可以使得计算机设备在获取业务数据时具备更高的速率。
其中,计算机设备基于目标格式的数据文件进行数据采集时的速率,满足执行目标业务是的速率要求。具体来说,计算机设备从目标格式的数据文件中进行数据采集的速率,可以不低于计算机设备从缓存池中进行数据采集的速率;或者,计算机设备从目标格式的数据文件中进行数据采集的速率,符合计算机设备在执行目标业务时所需的数据输入速率。举例来说,假设计算机设备在执行目标业务时,需要按照每秒50M的速度向计算机设备中输入业务数据,那么,计算机设备从数据文件中进行数据采集时,可以是按照每秒采集50M业务数据的速率进行的,以此来满足目标业务执行时的速率要求。示例性地,目标格式可以是JSON格式,JSON即JavaScript Object Notation(JS对象简谱),是一种轻量级的数据交换格式。相较于其他数据格式而言,JSON格式更易于人类的阅读和编写,同时也易于计算机设备的解析和生成,可以有效地提升数据处理和数据传输的效率。那么,本申请实施例中的数据文件则可以理解为JSON文件,也可具体理解为:用于存储某一数据类型的源数据在转换为JSON格式后得到的相关数据的文件。
S203,当目标业务设备需要执行目标业务时,使目标业务设备通过第一线程池从目标格式的一个或多个数据文件中异步采集目标业务的相关数据,以基于采集到的相关数据执行目标业务。
在具体实现中,目标业务设备可以是用于执行本申请实施例所用到的计算机设备,也可以是与计算机设备建立有数据连接的其他可用于进行数据处理,以实现执行目标业务的计算设备,本申请实施例对此不作具体限制。第一线程池可以包括一个或多个线程(为了便于说明,以下称第一线程池中的线程为第一线程),每个第一线程均可以用于从数据文件中采集目标业务的相关数据(即:业务数据)。其中,第一线程池可以是计算机设备中的线程池,也可以是目标业务设备中的线程池,还可以是除目标业务设备和计算机设备之外的其他设备中的,可被计算机设备和/或目标业务设备调用的线程池,本申请实施例对此也不做具体限制。为了便于说明,在无特殊说明的情况下,以下均以目标业务设备和计算机设备为同一设备,且第一线程池位于计算机设备中为例,来对本申请实施例的相关步骤进行详细说明。
在具体实现中,计算机设备可以从目标格式的一个或多个数据文件中异步获取相关数据。其中,异步指的是计算机多线程的异步处理,与计算机多线程的同步处理相反。结合本申请实施例来说,一方面,异步可以是第一线程池中各个第一线程的数据采集工作互不干扰,如:在某一第一线程未完成当前数据采集任务时,其他第一线程可以继续执行相应的数据处理任务,无需等待该第一线程完成数据采集工作后再执行。另一方面,异步也可以是指计算机设备在执行将数据转换后的源数据存储为目标格式的数据文件这一步骤时,计算机设备可以采用第一线程池从已生成的数据文件中采集业务数据,且这两个步骤之间互不影响。在此情况下,不难理解,本申请实施例中源数据的存储过程和业务数据的采集过程是没有耦合在一起的,并且计算机设备在进行业务数据采集时可以是采用多个第一线程并行执行的,因此,采用本申请实施例对区块链网络相关的数据进行数据处理时,具有较高的稳定性以及数据处理效率。
在本申请实施例中,计算机设备可以将从区块链网络中获取的源数据存储至缓存池,并在其后将源数据转换为了目标格式下的一个或多个数据文件,使得目标业务在需要执行时,可以通过目标业务设备从数据文件中采集相关业务数据,避免了目标业务设备从缓存池中进行数据采集,从而避免了业务数据的采集对源数据的同步造成影响。其中,由于计算机设备从目标数据格式的数据文件中采集业务数据的速率,通常不低于计算机设备从缓存池中采集业务数据的速率,那么,也就使得计算机设备在基于获取到的源数据进行业务数据采集时的速率得到了提升。此外,本申请实施例中将源数据同步过程和业务数据采集过程解耦开来,使得两者互不影响,这可以保证计算机设备对区块链网络的相关数据进行采集时的性能稳定性,进一步也就可以提升本申请实施例中计算机设备基于区块链网络中的相关数据采集业务数据的整体效率。
基于上述数据处理方案以及图2所示的数据处理方法的相关描述,本申请实施例还提供了一种数据处理方法,该数据处理方法的相关流程可以参见图4。如图4所示,该数据处理方法可以包括步骤S401-S404:
S401,获取多个源数据中的每个源数据的数据类型,以及每个源数据对应区块的区块号。
基于前述可知,在本申请实施例中,区块、外部交易数据、内部交易数据以及交易收据可以看作四种不同数据类型的源数据。那么,可以理解,为了便于后续对源数据的进一步处理,本申请实施例中,计算机设备在存储源数据时,可以按照数据类型进行存储。那么,计算机设备在获取源数据时,还可以获取该源数据的数据类型,以使得计算机设备可以根据数据类型对相应的源数据进行存储。另外,为了提升对获取到的源数据的完整性进行验证的便捷性(如:提升相关工作人员或工作设备在验证计算机设备是否已获取到区块链中每个区块对应的源数据的便捷性),计算机设备在获取源数据时,可以采用该源数据对应的区块号对相关源数据进行标记,以使得后续对数据完整性进行验证时,可以通过验证区块链中各区块的区块号是否都存在来进行判断。其中,源数据对应的区块号具体指的是:用于获取该源数据对应区块的区块号。举例来说,假设现有区块号为1的区块,计算机设备基于该区块获取到了外部交易数据A,那么,外部交易数据A对应的区块号即为区块号1。同理地,若计算机设备进一步基于外部交易数据A获取到的内部交易数据B和交易收据C,则内部交易数据B和交易收据C所对应的区块号也应该为区块号1。
S402,针对任一数据类型,将任一数据类型下的源数据按照任一数据类型下的源数据所对应的区块号的取值的排列顺序,存储为任一数据类型对应的数据队列。
在具体实施例中,计算机设备可以将一个数据类型的源数据存储至一个或多个数据队列中,每个数据队列用于存储一个数据类型的源数据。也就是说,同一数据队列只存储一个数据类型的源数据,如:用于存储区块的数据队列中只能存在区块,不可以存在除区块意外的其他数据类型的源数据(如:外部交易数据、内部交易数据、交易收据)。在具体实现中,数据队列可以是存在于缓存池中的。那么,计算机设备在存储源数据时,可以先在缓存池中构建一个或多个数据队列,并通过每个数据队列存储一个数据类型的源数据的方式,来实现计算机设备对源数据的存储。并且可选地,任一数据类型的源数据在数据队列中可以是以键值对的数据格式进行存储的,当然,计算机设备也可以按照其他数据格式将源数据存储至缓存池中,本申请实施例对此不作限制。以下以数据队列中的数据存储形式为键值对形式为例,来对本申请实施例的相关步骤进行详细说明。也就是说,在本申请实施例中,计算机设备可以将从区块链网络中获取到的区块以键值对的方式存储至一个或多个数据队列中,同理,计算机设备也可以将获取到的外部交易数据、内部交易数据和交易收据分别以键值对的方式存储到相应的一个或多个数据队列中。
其中,计算机设备将一个数据类型的源数据存储至一个或多个数据队列的具体实现方式可以如下:计算机设备先获取该数据类型下的各个源数据对应的区块号,然后,计算机设备可以按照区块号的取值(如:1,2,99等)的排列顺序,将该数据类型下的各个源数据存储至一个或多个数据队列中。也就是说,任一数据队列中的源数据的排列顺序为:该数据队列中包括的各个源数据所对应的区块号的取值的排列顺序。
S403,对源数据进行数据格式转换处理,并将格式转换后的源数据存储为目标格式的一个或多个数据文件。
为了提升计算机设备在执行目标业务时采集业务数据的效率,本申请实施例在获取到源数据后,可以采用计算机设备将源数据存储为目标格式下的一个或多个数据文件,以使得计算机设备在采集业务数据时可以基于多个数据文件并行地进行数据采集,从而达到提升数据采集的速率的目的。又基于前述可知,计算机设备从区块链网络获取的源数据的数量可以为多个,且任一源数据在缓存池中是按照相应的数据类型,以及对应区块的区块号存储到数据队列的,并且一个数据队列用于存储一个数据类型的源数据。基于此,以下结合具体示例对计算机设备对源数据进行数据格式转换处理,并将格式转换后的源数据存储为目标格式的一个或多个数据文件的具体方式进行详细说明。
本示例中,假设当前需要生成的数据文件为目标数据类型的源数据所对应的数据文件,目标数据类型为四种数据类型中的任一种(如:区块的数据类型,或外部交易数据的数据类型等)。此外,还假设存储目标数据类型的源数据的数据队列为目标数据队列。那么,在此情况下,计算机设备在生成目标数据类型的源数据所对应的数据文件时,计算机设备可以调用第二线程池异步地从目标数据队列中获取预设数量个(如:10000个)目标数据类型的源数据;进一步地,计算机设备可以将获取到的预设数量个目标数据类型的源数据进行数据格式转换处理(如:转换为JSON格式的数据),并将格式转换后的预设数量个目标数据类型的源数据存储为一个数据文件(如:JSON格式的文件,以下简称JSON文件),以此可以生成目标数据类型的源数据所对应的目标格式下的一个或多个数据文件。其中,第二线程池可以包括多个线程,且第二线程池中的一个线程(以下称:第二线程)可以具体用于按照相应区块号的取值的大小顺序,依次从目标数据队列中获取预设数量个目标数据类型的源数据。具体如:先依次获取对应区块号的取值为1-10000的源数据,再依次获取对应区块号的取值为10001-20000的源数据。
需要说明的是,计算机设备在生成数据文件时是异步进行的。举例来说,假设第二线程池中存在两个第二线程(如:线程A和线程B)。在此情况下,计算机设备可以采用线程A生成区块号1-10000的区块所对应的数据文件A,同时,计算机设备可以采用线程B生成区块号10001-20000的区块所对应的数据文件B。在此情况下,若计算机设备已经生成了数据文件B,还未生成数据文件A,则计算机设备可以在生成数据文本B后立即采用线程B生成区块号20001-30000的区块所对应的数据文件,无需等待数据文件A生成之后才采用线程B对后续区块进行处理。不难看出,本申请实施例中计算机设备在将源数据存储为数据文件时,是可以采用多个线程并发执行的,因此,本申请实施例可以充分利用计算机设备的计算资源和内存资源等,有效提升了数据处理的速度。
S404,当目标业务设备需要执行目标业务时,使目标业务设备通过第一线程池从目标格式的一个或多个数据文件中异步采集目标业务的相关数据,以基于采集到的相关数据执行目标业务。
在具体实施例中,计算机设备在采集目标业务的相关数据时,可以通过第一线程池中的第一线程读取数据文件中目标格式的数据来实现。其中,在目标业务设备(即:计算机设备)通过第一线程池读取数据文件时,可以是目标业务设备调用各个第一线程并发读取的。并发是指在一个时间段中有多个线程都处于已启动运行到运行完毕之间的状态,但在同一时刻只有一个线程正在运行。基于此,本申请实施例中,计算机设备可以通过交替调用各个第一线程来实现对数据文件的快速读取,有效提升了数据采集的效率。可选地,在目标业务设备采集到业务数据之后,目标业务设备还可以对采集到的业务数据进行优化处理,从而使得目标业务设备可以基于优化处理后的业务数据执行目标业务。举例来说,目标业务设备可以在获取到业务数据之后,继续通过第一线程对业务数据进行数据预和数据筛选等操作,从而得到适用于执行目标业务的相关数据(或相关数据集),具体如:得到适用于数据分析人员或数据分析工具理解的数据分析数据。
此外,在本申请实施例中,在计算机设备通过第一线程池从目标格式的一个或多个数据文件中异步采集目标业务的相关数据的同时,若计算机设备检测到缓存池中存在未进行数据格式转换的源数据,则计算机设备可以采用第二线程池对未进行数据格式转换的源数据进行数据格式转换处理,并进一步将格式转换后的源数据存储为目标格式的一个或多个数据文件。可以理解,第二线程池可以是计算机设备中的线程池,并且在一种可行的实施方式中,第二线程池和第一线程池可以是同一线程池,在本申请实施例中,均以第一线程池和第二线程池为不同的线程池为例进行说明。
为了便于更加清楚地了解本申请实施例的实现方式及相关执行流程,以下将结合上述图2及图4的相关描述,以图5所示的数据处理流程示意图来对本申请实施例进行详细阐述。在图5中,计算机设备和目标业务设备为不同设备,且图5中的区块、外部交易数据等数据,是从支持智能合约的区块链平台中获取的。针对支持智能合约的区块链平台,区块链链上数据主要包括前述的区块、外部交易数据、内部交易数据以及交易收据。
由图5可见,计算机设备可以先构建区块链节点,以从区块链网络中同步相关数据。这是由于区块链是若干个区块前后通过哈希值相连组成的链式结构,每个区块包含若干笔对象发起的交易;每个区块由区块链节点打包,通过某种共识算法(例如工作量证明,权益证明)保证区块内容的合法性和一致性,并需要通过全网所有区块链节点的验证。那么,区块链也就可以理解为一个分布式账本,区块链网络中的每个区块链节点都存储了该账本的一个副本。因此,为了同步区块链上的链上数据,计算机设备通常会采用对应区块链平台的客户端部署一个区块链节点,并将该区块链节点连接到区块链网络中的其他区块链节点,从而使得部署的区块链节点可以从区块链网络中的创始区块(即:第一个区块)开始同步数据。示例性地,计算机设备采用的客户端可以如:以太坊的Geth(Go-Ethereum,一种区块链客户端),EOSIO(一种引入了区块链架构的软件)的Nodeos(EOSIO中的核心组件)等。
在实际应用中,计算机设备从区块链网络中同步的源数据通常为区块和外部交易数据,仅基于这些源数据执行目标业务,通常无法得到较为准确的执行结果。因此,为了得到更加准确的执行结果,计算机设备需要基于区块链网络中的区块获取更全面的区块链链上数据,如:内部交易数据和交易收据。可选地,计算机设备可以通过重放外部交易(或:重新运行外部交易数据)的方式来获取到外部交易执行过程中所产生的的相关信息以及执行结束后的执行结果。基于此,图5中计算机设备获取源数据的方式可以如下:计算机设备先获取区块,该区块中可以包含若干个外部交易数据。那么,在计算机设备获取到区块后,计算机设备可以从区块中取出外部交易数据,并将区块和外部交易数据存储至缓存池中。进一步地,计算机设备可以将取出的外部交易数据输入至区块链虚拟机中,以使外部交易数据可以在区块链虚拟机中运行,从而使得计算机设备可以获取到外部交易数据在运行过程中产生的内部交易数据,以及外部交易收据在运行结束后产生的交易收据。其中,计算机设备将外部交易数据输入至区块链虚拟机后,计算机设备可以通过调用区块链虚拟机执行相应的插桩代码来实现外部交易数据的重新运行,从而生成相应的内部交易数据和交易收据。当计算机设备获取到内部交易数据和交易收据之后,计算机设备可以将内部交易数据和交易收据也存储到缓存池中。可以理解的是,计算机设备需要先从区块链网络中同步区块,然后计算机设备才能将区块中的外部交易数据输入至区块链虚拟机运行,以采集到内部交易数据和交易收据。
在计算机设备将获取到的各个数据类型的源数据存储至缓存池的过程中,计算机设备还可以调用第二线程池从缓存池中获取已存储的源数据,并对源数据进行数据格式转换,从而进一步生成目标格式的数据文件。其中,第二线程池中第二线程的数量可以参考计算机设备的带宽来设置,具体来说,计算机设备的带宽越大,计算机设备从区块链网络中同步区块的速度越快,那么,计算机设备则可以设置较多的第二线程来对同步到的数据进行数据格式转换,从而提升数据采集的整体速率。在图5所示的执行流程中,计算机设备在生成目标格式的数据文件时,可以先从缓存池中获取预设数量个同一数据类型的源数据,然后将获取到的源数据转换为JSON格式,然后进一步地,计算机设备可以调用第二线程池将转换为JSON格式后的源数据打包为数据文件(即:JSON文件)。可以理解的是,计算机设备可以分别获取预设数量个不同数据类型的源数据,从而计算机设备可以基于缓存池中的源数据生成目标格式下的一个或多个JSON文件(一个JSON文件值对应一个数据类型的源数据)。当计算机设备生成一个JSON文件之后,目标业务设备则可以通过第一线程池读取JSON文件。也就是说,目标业务设备可以在计算机设备生成JSON文件的过程中,读取已生成的JSON文件以采集业务数据。并且可选地,目标业务设备在采集业务数据时,可以通过第一线程池对JSON文件进行并发处理,以从JSON文件中快速采集到相关的业务数据。基于上述与图5相关的示例可见,本申请实施例中源数据同步和业务数据采集是互不影响的,因此,采用本申请实施例提供的数据处理方法来从区块链网络中进行数据采集,可以具备较高的采集速率,并且整个数据采集过程具备更高的灵活性,在一定程度上也提升了计算机设备的可扩展性。
在本申请实施例中,计算机设备先将从区块链网络中同步的源数据缓存于缓存池中,之后,计算机设备启动一个或多个第二线程异步地从缓存池中取出源数据并转化为合适的格式直接写为数据文件以备后续读取。进一步地,计算机设备在需要获取业务数据时,可以采用第一线程池异步地读取这些数据文件进行相关处理,以生成合适的数据集。可见,本申请实施例中,源数据同步过程、源数据打包为目标格式的数据文件过程,以及对数据文件进行读取从而获取业务数据的过程是互补干扰的,也就是说,本申请实施例解耦了源数据同步与业务数据采集,不仅提高了链上数据采集的速度,也提高了基于本申请实施例构建的数据采集框架的可扩展性和灵活性。
基于上述关于数据处理方法的相关描述,本申请实施例还公开了一种数据处理装置,该数据处理装置可以是运行与上述所提及的计算机设备(或目标业务设备)中的一个计算机程序(包括程序代码)。在具体实施例中,该数据处理装置可以用于执行如图2或图4所示的数据处理方法。请参见图6,该数据处理装置可以包括:获取单元601,数据格式转换单元602和业务执行单元603。
获取单元601,用于从区块链网络中获取源数据,并将获取的源数据存储到缓存池中;
数据格式转换单元602,用于对所述源数据进行数据格式转换处理,并将格式转换后的源数据存储为目标格式的一个或多个数据文件,其中,基于目标格式的数据文件进行数据采集的速率,满足执行目标业务时的速率要求;
业务执行单元603,用于当目标业务设备需执行所述目标业务时,使所述目标业务设备通过第一线程池从所述目标格式的一个或多个数据文件中异步采集所述目标业务的相关数据,以基于采集到的相关数据执行所述目标业务。
在一种实施方式中,从所述区块链网络获取的源数据的数量为多个;所述获取单元601在将获取的源数据存储到缓存池中时,具体用于执行:
获取多个源数据中的每个源数据的数据类型,以及所述每个源数据对应区块的区块号;
针对任一数据类型,将所述任一数据类型下的源数据按照所述任一数据类型下的源数据所对应的区块号的取值的排列顺序,存储为所述任一数据类型对应的数据队列。
在又一种实施方式中,从所述区块链网络获取的源数据包括一个或多个区块,一个区块存储有外部交易数据,所述获取单元601在从区块链网络中获取源数据,并将获取的源数据存储到缓存池中时,具体可以执行:
将从区块链网络中获取的区块直接存储到缓存池中;
将获取的区块中存储的外部交易数据输入区块链虚拟机中,并从所述区块链虚拟机中获取所述区块链虚拟机在运行所述外部交易数据后所产生的内部交易数据和交易收据;
将所述获取的区块中存储的外部交易数据,以及所述区块链虚拟机运行所述外部交易数据后产生的内部交易数据和交易收据存储到缓存池中。
在又一种实施方式中,所述获取单元601在执行所述将获取的区块中存储的外部交易数据输入区块链虚拟机中,并从所述区块链虚拟机中获取所述区块链虚拟机在运行所述外部交易数据后所产生的内部交易数据和交易收据时,具体可以执行:
将用于获取交易收据和内部交易数据的插桩代码部署到区块链虚拟机中;
在将获取的区块中存储的外部交易数据依次输入区块链虚拟机后,调用所述区块链虚拟机中的插桩代码以一个区块为单位,对由所述一个区块中存储的外部交易数据所产生的内部交易数据和交易收据进行记录,以从所述区块链虚拟机中获取所述外部交易数据在被所述区块链虚拟机运行后所产生的内部交易数据和交易收据。
在又一种实施方式中,从所述区块链网络获取的源数据的数量为多个,且任一源数据在所述缓存池中是按照相应的数据类型,以及对应区块的区块号存储到数据队列的,其中,一个数据队列用于存储一个数据类型的源数据;所述数据格式转换单元602在对所述源数据进行数据格式转换处理,并将格式转换后的源数据存储为目标格式的一个或多个数据文件时,具体可以执行:
针对用于存储目标数据类型的源数据的目标数据队列,调用第二线程池异步地从所述目标数据队列中获取预设数量个目标数据类型的源数据;其中,所述第二线程池中的一个线程用于按照相应区块号的取值的大小顺序,依次从所述目标数据队列中获取所述预设数量个目标数据类型的源数据;
将获取的预设数量个目标数据类型的源数据进行数据格式转换处理,并将格式转换后的预设数量个目标数据类型的源数据存储为一个数据文件。
在又一种实施方式中,所述数据转换单元602还可以用于执行:
所述目标业务设备通过第一线程池从所述目标格式的一个或多个数据文件中异步采集所述目标业务的相关数据的同时,若检测到所述缓存池中存在未进行数据格式转换的源数据,则采用第二线程池对所述未进行数据格式转换的源数据进行数据格式转换处理,并将格式转换后的源数据存储为目标格式的一个或多个数据文件。
在又一种实施方式中,所述换存储是基于可信硬件实现的,所述数据处理装置还可以包括优化单元604,所述优化单元604可以用于具体执行:
所述目标业务设备在采集到所述目标业务的相关数据后,对采集到的相关数据进行优化处理,以基于优化处理后的相关数据执行所述目标业务。
根据本申请的一个实施例,图2及图4所示的方法所涉及的各个步骤可以由图6所示的数据处理装置中的各个单元来执行。例如,图2所示的步骤S201可以由图6所示的数据处理装置中的获取单元601来执行,步骤S202可以由图6所示的数据处理装置中的数据格式转换单元602来执行,步骤S203可以由图6所示的数据处理装置中的业务执行单元603来执行。再如,图4中的步骤S401至步骤S402均可以由图6所示的数据处理装置中的获取单元601来执行,步骤S403可以由图6所示的数据处理装置中的数据格式转换单元602来执行,步骤S404可以由图6所示的数据处理装置中的业务执行单元603来执行。
根据本申请的另一个实施例,图6所示的数据处理装置中的各个单元是基于逻辑功能划分的,上述各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者,其中的某个(某些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请实施例的技术效果的实现。在本申请的其他实施例中,上述数据处理装置也可以包括其他单元,在实际应用中,这些功能也可以由其他单元协助实现,并且可以由多个单元协助实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如域名管理设备的通用计算设备上,运行能够执行如图2和图4所示的方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图6所示的数据处理装置,以及来实现本申请实施例的数据处理方法。计算机程序可以记载于例如计算机存储介质上,并通过计算机存储介质装载于上述计算设备中,并在其中运行。
在本申请实施例中,数据处理装置可以从区块链网络中获取源数据,并将获取到的源数据存储到缓存池中;然后,数据处理装置可以将缓存池中存储的源数据进一步打包为目标格式的数据文件,以使得目标业务需要执行时,数据处理装置可以从数据文件中进行相关业务数据的采集,从而避免计算机设备在采集业务数据时影响数据处理装置从区块链网络中获取源数据的效率,因此,本申请实施例可以提升数据处理装置在对与区块链网络相关的数据进行数据处理时的效率。
基于上述方法实施例以及装置实施例的相关描述,本申请实施例还提供了一种计算机设备,请参见图7。该计算机设备至少包括处理器701以及计算机存储介质702,且计算机设备的处理器701和计算机存储介质702可以通过总线或其他方式连接。其中,上述提及的计算机存储介质702是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质702既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。计算机存储介质702提供存储空间,该存储空间存储了计算机设备的操作系统。并且,在该存储空间中还存放了适于被处理器701加载并执行的一条或多条的计算机程序,这些计算机程序可以是一个或一个以上的程序代码。需要说明的是,此处的计算机存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的存储介质。处理器701(或称CPU(Central Processing Unit,中央处理器))是计算机设备的计算核心以及控制核心,其适于实现一条或多条计算机程序,具体适于加载并执行一条或多条计算机程序从而实现相应方法流程或相应功能。
在一个实施例中,可以由处理器701加载并执行计算机存储介质702中存放的一条或多条计算机程序,以实现上述有关图2以及图4所示的方法实施例中的相应方法步骤。在具体实现中,计算机存储介质702中的一条或多条计算机程序可以由处理器701加载并执行如下步骤:
从区块链网络中获取源数据,并将获取的源数据存储到缓存池中;
对所述源数据进行数据格式转换处理,并将格式转换后的源数据存储为目标格式的一个或多个数据文件,其中,基于目标格式的数据文件进行数据采集的速率,满足执行目标业务时的速率要求;
当目标业务设备需执行所述目标业务时,使所述目标业务设备通过第一线程池从所述目标格式的一个或多个数据文件中异步采集所述目标业务的相关数据,以基于采集到的相关数据执行所述目标业务。
在一种实施方式中,从所述区块链网络获取的源数据的数量为多个;所述处理器701在加载并执行将获取的源数据存储到缓存池中时,具体用于加载并执行:
获取多个源数据中的每个源数据的数据类型,以及所述每个源数据对应区块的区块号;
针对任一数据类型,将所述任一数据类型下的源数据按照所述任一数据类型下的源数据所对应的区块号的取值的排列顺序,存储为所述任一数据类型对应的数据队列。
在又一种实施方式中,从所述区块链网络获取的源数据包括一个或多个区块,一个区块存储有外部交易数据,处理器701在加载并执行从区块链网络中获取源数据,并将获取的源数据存储到缓存池中时,具体可以加载并执行:
将从区块链网络中获取的区块直接存储到缓存池中;
将获取的区块中存储的外部交易数据输入区块链虚拟机中,并从所述区块链虚拟机中获取所述区块链虚拟机在运行所述外部交易数据后所产生的内部交易数据和交易收据;
将所述获取的区块中存储的外部交易数据,以及所述区块链虚拟机运行所述外部交易数据后产生的内部交易数据和交易收据存储到缓存池中。
在又一种实施方式中,所述处理器701在加载并执行所述将获取的区块中存储的外部交易数据输入区块链虚拟机中,并从所述区块链虚拟机中获取所述区块链虚拟机在运行所述外部交易数据后所产生的内部交易数据和交易收据时,具体可以加载并执行:
将用于获取交易收据和内部交易数据的插桩代码部署到区块链虚拟机中;
在将获取的区块中存储的外部交易数据依次输入区块链虚拟机后,调用所述区块链虚拟机中的插桩代码以一个区块为单位,对由所述一个区块中存储的外部交易数据所产生的内部交易数据和交易收据进行记录,以从所述区块链虚拟机中获取所述外部交易数据在被所述区块链虚拟机运行后所产生的内部交易数据和交易收据。
在又一种实施方式中,从所述区块链网络获取的源数据的数量为多个,且任一源数据在所述缓存池中是按照相应的数据类型,以及对应区块的区块号存储到数据队列的,其中,一个数据队列用于存储一个数据类型的源数据;所述处理器701在加载并执行对所述源数据进行数据格式转换处理,并将格式转换后的源数据存储为目标格式的一个或多个数据文件时,具体可以加载并执行:
针对用于存储目标数据类型的源数据的目标数据队列,调用第二线程池异步地从所述目标数据队列中获取预设数量个目标数据类型的源数据;其中,所述第二线程池中的一个线程用于按照相应区块号的取值的大小顺序,依次从所述目标数据队列中获取所述预设数量个目标数据类型的源数据;
将获取的预设数量个目标数据类型的源数据进行数据格式转换处理,并将格式转换后的预设数量个目标数据类型的源数据存储为一个数据文件。
在又一种实施方式中,所述处理器701还可以用于加载并执行:
所述目标业务设备通过第一线程池从所述目标格式的一个或多个数据文件中异步采集所述目标业务的相关数据的同时,若检测到所述缓存池中存在未进行数据格式转换的源数据,则采用第二线程池对所述未进行数据格式转换的源数据进行数据格式转换处理,并将格式转换后的源数据存储为目标格式的一个或多个数据文件。
在又一种实施方式中,所述换存储是基于可信硬件实现的,所述处理器701还可以用于加载并执行:
所述目标业务设备在采集到所述目标业务的相关数据后,对采集到的相关数据进行优化处理,以基于优化处理后的相关数据执行所述目标业务。
在本申请实施例中,计算机设备可以从区块链网络中获取源数据,并将获取到的源数据存储到缓存池中;然后,计算机设备可以将缓存池中存储的源数据进一步打包为目标格式的数据文件,以使得目标业务需要执行时,计算机设备可以从数据文件中进行相关业务数据的采集,从而避免计算机设备在采集业务数据时影响计算机设备从区块链网络中获取源数据的效率,因此,本申请实施例可以提升计算机设备在对与区块链网络相关的数据进行数据处理时的效率。
本申请还提供了一种计算机存储介质,该计算机存储介质中存储了上述数据处理方法对应的一条或多条计算机程序,当一个或多个处理器加载并执行该一条或多条计算机程序,可以实现实施例中对数据处理方法的描述,在此不再赘述。对采用相同方法的有益效果的描述,在此不再赘述。可以理解的是,计算机程序可以被部署在一个或多个能够相互通信的设备上执行。
需要说明的是,根据本申请的一个方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品包括计算机程序,该计算机程序存储在计算机存储介质中。计算机设备中的处理器从计算机存储介质读取该计算机程序,然后执行该计算机程序,进而使得该计算机设备能够执行上述图2以及图4所示的数据处理方法实施例方面的各种可选方式中提供的方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于计算机取存储介质中,该计算机程序在执行时,可包括如上述数据处理方法的实施例的流程。其中,计算机存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccess Memory,RAM)等。
可以理解的是,以上所揭露的仅为本申请的局部实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或局部流程,并依本申请权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (11)
1.一种数据处理方法,其特征在于,包括:
从区块链网络中获取源数据,并将获取的源数据存储到缓存池中;
对所述源数据进行数据格式转换处理,并将格式转换后的源数据存储为目标格式的一个或多个数据文件,其中,基于目标格式的数据文件进行数据采集的速率,满足执行目标业务时的速率要求;
当目标业务设备需执行所述目标业务时,使所述目标业务设备通过第一线程池从所述目标格式的一个或多个数据文件中异步采集所述目标业务的相关数据,以基于采集到的相关数据执行所述目标业务。
2.根据权利要求1所述的方法,其特征在于,从所述区块链网络获取的源数据的数量为多个;所述将获取的源数据存储到缓存池中,包括:
获取多个源数据中的每个源数据的数据类型,以及所述每个源数据对应区块的区块号;
针对任一数据类型,将所述任一数据类型下的源数据按照所述任一数据类型下的源数据所对应的区块号的取值的排列顺序,存储为所述任一数据类型对应的数据队列。
3.根据权利要求1所述的方法,其特征在于,从所述区块链网络获取的源数据包括一个或多个区块,一个区块存储有外部交易数据,所述从区块链网络中获取源数据,并将获取的源数据存储到缓存池中,包括:
将从区块链网络中获取的区块直接存储到缓存池中;
将获取的区块中存储的外部交易数据输入区块链虚拟机中,并从所述区块链虚拟机中获取所述区块链虚拟机在运行所述外部交易数据后所产生的内部交易数据和交易收据;
将所述获取的区块中存储的外部交易数据,以及所述区块链虚拟机运行所述外部交易数据后产生的内部交易数据和交易收据存储到缓存池中。
4.根据权利要求3所述的方法,其特征在于,所述将获取的区块中存储的外部交易数据输入区块链虚拟机中,并从所述区块链虚拟机中获取所述区块链虚拟机在运行所述外部交易数据后所产生的内部交易数据和交易收据,包括:
将用于获取交易收据和内部交易数据的插桩代码部署到区块链虚拟机中;
在将获取的区块中存储的外部交易数据依次输入区块链虚拟机后,调用所述区块链虚拟机中的插桩代码以一个区块为单位,对由所述一个区块中存储的外部交易数据所产生的内部交易数据和交易收据进行记录,以从所述区块链虚拟机中获取所述外部交易数据在被所述区块链虚拟机运行后所产生的内部交易数据和交易收据。
5.根据权利要求1所述的方法,其特征在于,从所述区块链网络获取的源数据的数量为多个,且任一源数据在所述缓存池中是按照相应的数据类型,以及对应区块的区块号存储到数据队列的,其中,一个数据队列用于存储一个数据类型的源数据;所述对所述源数据进行数据格式转换处理,并将格式转换后的源数据存储为目标格式的一个或多个数据文件,包括:
针对用于存储目标数据类型的源数据的目标数据队列,调用第二线程池异步地从所述目标数据队列中获取预设数量个目标数据类型的源数据;其中,所述第二线程池中的一个线程用于按照相应区块号的取值的大小顺序,依次从所述目标数据队列中获取所述预设数量个目标数据类型的源数据;
将获取的预设数量个目标数据类型的源数据进行数据格式转换处理,并将格式转换后的预设数量个目标数据类型的源数据存储为一个数据文件。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述目标业务设备通过第一线程池从所述目标格式的一个或多个数据文件中异步采集所述目标业务的相关数据的同时,若检测到所述缓存池中存在未进行数据格式转换的源数据,则采用第二线程池对所述未进行数据格式转换的源数据进行数据格式转换处理,并将格式转换后的源数据存储为目标格式的一个或多个数据文件。
7.根据权利要求1所述的方法,其特征在于,所述缓存池是基于可信硬件实现的;所述方法还包括:
所述目标业务设备在采集到所述目标业务的相关数据后,对采集到的相关数据进行优化处理,以基于优化处理后的相关数据执行所述目标业务。
8.一种数据处理装置,其特征在于,包括:
获取单元,用于从区块链网络中获取源数据,并将获取的源数据存储到缓存池中;
数据格式转换单元,用于对所述源数据进行数据格式转换处理,并将格式转换后的源数据存储为目标格式的一个或多个数据文件,其中,基于目标格式的数据文件进行数据采集的速率,满足执行目标业务时的速率要求;
业务执行单元,用于当目标业务设备需执行所述目标业务时,使所述目标业务设备通过第一线程池从所述目标格式的一个或多个数据文件中异步采集所述目标业务的相关数据,以基于采集到的相关数据执行所述目标业务。
9.一种计算机设备,其特征在于,包括:
处理器,所述处理器用于实现一条或多条计算机程序;
计算机存储介质,所述计算机存储介质存储有一条或多条计算机程序,所述一条或多条计算机程序适于由所述处理器加载并执行如权利要求1-7任一项所述的数据处理方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有一条或多条计算机程序,所述一条或多条计算机程序适于由处理器加载并执行如权利要求1-7任一项所述的数据处理方法。
11.一种计算机产品,其特征在于,所述计算机产品包括计算机程序,所述计算机程序适于由处理器加载并执行如权利要求1-7任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210183887.7A CN116701452A (zh) | 2022-02-25 | 2022-02-25 | 数据处理方法、相关设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210183887.7A CN116701452A (zh) | 2022-02-25 | 2022-02-25 | 数据处理方法、相关设备、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116701452A true CN116701452A (zh) | 2023-09-05 |
Family
ID=87834428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210183887.7A Pending CN116701452A (zh) | 2022-02-25 | 2022-02-25 | 数据处理方法、相关设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116701452A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117235024A (zh) * | 2023-11-16 | 2023-12-15 | 江西国泰利民信息科技有限公司 | 基于代码分析的缓存更新方法、系统、存储介质及设备 |
-
2022
- 2022-02-25 CN CN202210183887.7A patent/CN116701452A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117235024A (zh) * | 2023-11-16 | 2023-12-15 | 江西国泰利民信息科技有限公司 | 基于代码分析的缓存更新方法、系统、存储介质及设备 |
CN117235024B (zh) * | 2023-11-16 | 2024-01-26 | 江西国泰利民信息科技有限公司 | 基于代码分析的缓存更新方法、系统、存储介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108846659B (zh) | 基于区块链的转账方法、装置及存储介质 | |
US20190034465A1 (en) | Blockchain logging of data from multiple systems | |
CN113570466B (zh) | 一种交易数据处理方法、装置以及可读存储介质 | |
US20230109969A1 (en) | Data processing method and apparatus based on node internal memory, device and medium | |
US20230074102A1 (en) | Method and apparatus for processing data based on block chain, device and readable storage medium | |
US20240106893A1 (en) | Filecoin cluster data transmission method and system based on remote direct memory access | |
WO2023045617A1 (zh) | 一种交易数据处理方法、装置、设备以及介质 | |
CN113326165B (zh) | 基于区块链的数据处理方法、设备及计算机可读存储介质 | |
CN110704438B (zh) | 一种区块链中布隆过滤器的生成方法及装置 | |
Chen et al. | A full-spectrum blockchain-as-a-service for business collaboration | |
US20230370285A1 (en) | Block-chain-based data processing method, computer device, computer-readable storage medium | |
WO2021190179A1 (zh) | 一种同步处理方法和相关装置 | |
EP4030314A1 (en) | Blockchain-based data processing method, apparatus and device, and readable storage medium | |
CN106375360A (zh) | 一种图数据更新方法、装置及系统 | |
US20240039727A1 (en) | Blockchain-based data processing method and apparatus, device, and readable storage medium | |
CN112785408A (zh) | 基于哈希的对账方法及装置 | |
JP2024515022A (ja) | ブロックチェーンに基づくデータ処理方法、装置、機器及びコンピュータプログラム | |
CN111915301A (zh) | 基于区块链的数据处理方法、装置、电子设备及可读介质 | |
CN115114370B (zh) | 主从数据库的同步方法、装置、电子设备和存储介质 | |
CN116701452A (zh) | 数据处理方法、相关设备、存储介质及程序产品 | |
CN113688418A (zh) | 基于区块链数据存储的工程订单结算方法及系统 | |
CN116977067A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN115858322A (zh) | 日志数据处理方法、装置和计算机设备 | |
CN115757642A (zh) | 一种基于归档日志文件的数据同步方法及装置 | |
CN115695587A (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 |