CN108776897B - 数据处理方法、装置、服务器及计算机可读存储介质 - Google Patents
数据处理方法、装置、服务器及计算机可读存储介质 Download PDFInfo
- Publication number
- CN108776897B CN108776897B CN201810569317.5A CN201810569317A CN108776897B CN 108776897 B CN108776897 B CN 108776897B CN 201810569317 A CN201810569317 A CN 201810569317A CN 108776897 B CN108776897 B CN 108776897B
- Authority
- CN
- China
- Prior art keywords
- transaction data
- block
- transaction
- cache pool
- data
- 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.)
- Active
Links
Images
Classifications
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据处理方法、装置、服务器及计算机可读存储介质,属于数据处理领域。方法包括:在接收交易数据的过程中,将接收到的不同批交易数据存储至不同区块的区块主体中,得到包含交易数据的多个区块;根据区块高度,每次从多个区块中选择待将交易数据加入交易缓存池中的一个区块;对于每次选择的区块,当区块中的交易数据满足预设条件时,将区块中的交易数据加入交易缓存池中;将区块中的交易数据与交易缓存池中的其他交易数据并行处理。本发明在对一个区块中的交易数据进行处理的同时,可以对其他区块中的交易数据进行并行处理,大大提升了区块链系统处理区块中交易数据的速度,使得整体的数据处理效率高。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种数据处理方法、装置、服务器及计算机可读存储介质。
背景技术
区块链技术是一种去中心化的分布式记账技术,区块链是一种按照时间顺序将区块有序链接起来的数据结构。区块链节点(服务器)可以接收终端发送的待处理的交易数据,并对接收到的交易数据进行处理。
目前,区块链节点可以基于接收到的交易数据,生成多个初始区块,在该初始区块的区块主体中存储交易数据。进而,区块链节点可以按照顺序,逐个处理该多个初始区块中的交易数据,包括对当前区块(当前处理的初始区块)的交易数据进行验证处理,验证通过后,获取上一区块的区块哈希值和当前区块的区块哈希值,将得到的上述两个哈希值存入当前区块的区块头,从而生成完整区块。然后,区块链节点可以将该完整区块广播给其他区块链节点,以对该完整区块进行共识,共识通过后,区块链节点可以将完整区块添加至区块链中。完成对当前区块的处理后,区块链节点可以对下一个区块执行与当前区块相同的处理过程,以此类推,完成后续区块中交易数据的处理。
在实现本发明的过程中,发明人发现相关技术至少存在以下问题:
区块链节点对区块中交易数据的处理过程是串行执行的,区块链节点每次只能对一个区块中的业务处理进行处理,只有在完成一个区块中交易数据的处理后,才会对下一个区块中的交易数据进行处理,整体的数据处理效率低。
发明内容
本发明实施例提供了一种数据处理方法、装置、服务器及计算机可读存储介质,可以解决相关技术数据处理效率低的问题。所述技术方案如下:
一方面,提供了一种数据处理方法,所述方法包括:
在接收交易数据的过程中,将接收到的不同批交易数据存储至不同区块的区块主体中,得到包含交易数据的多个区块;
根据区块高度,每次从所述多个区块中选择待将交易数据加入交易缓存池中的一个区块,所述交易缓存池用于缓存并行处理中的交易数据;
对于每次选择的区块,当所述区块中的交易数据满足预设条件时,将所述区块中的交易数据加入所述交易缓存池中;
将所述区块中的交易数据与所述交易缓存池中的其他交易数据并行处理。
一方面,提供了一种数据处理装置,所述装置包括:
获取模块,用于在接收交易数据的过程中,将接收到的不同批交易数据存储至不同区块的区块主体中,得到包含交易数据的多个区块;
选择模块,用于根据区块高度,每次从所述多个区块中选择待将交易数据加入交易缓存池中的一个区块,所述交易缓存池用于缓存并行处理中的交易数据;
添加模块,用于对于每次选择的区块,当所述区块中的交易数据满足预设条件时,将所述区块中的交易数据加入所述交易缓存池中;
处理模块,用于将所述区块中的交易数据与所述交易缓存池中的其他交易数据并行处理。
一方面,提供了一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由所述处理器加载并执行以实现上述数据处理方法所执行的操作。
一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如上述数据处理方法所执行的操作。
本发明实施例提供的技术方案带来的有益效果至少包括:
通过从包含交易数据的多个区块中,每次选择一个待将交易数据加入交易缓存池中的区块,且当该区块中的交易数据与交易缓存池中的交易数据不冲突时,将当前选择的区块中的交易数据加入交易缓存池中,与处理中的交易数据并行处理。上述方案在对一个区块中的交易数据进行处理的同时,可以对其他区块中的交易数据进行并行处理,大大提升了区块链系统处理区块中交易数据的速度,使得整体的数据处理效率高。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据处理方法的实施环境示意图;
图2是本发明实施例提供的一种数据处理方法的流程图;
图3是本发明实施例提供的一种数据处理装置的结构示意图;
图4是本发明实施例提供的一种服务器400的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种数据处理方法的实施环境示意图,参见图1,该实施环境中可以包括终端101和多个服务器102。
其中,终端101是指发起交易的用户设备,如手机、平板电脑、PC(PersonalComputer,个人计算机)等。
多个服务器102为区块链系统中的多个节点,区块链系统中的每个节点可以配置有一条相同的区块链。该区块链中包括多个区块,每个区块的区块主体中存储有交易数据。任一节点可以将交易数据验证通过的区块广播给其他节点,其他节点在接收到该区块后,可以对该区块中包含的交易数据进行共识。通过共识的区块可以被添加至区块链中。
终端101和多个服务器102之间可以通过网络进行通信,从而实现数据交互。
图2是本发明实施例提供的一种数据处理方法的流程图。该方法由服务器执行,该服务器可以是多个服务器102中的任一服务器。参见图2,该方法包括:
201、在接收交易数据的过程中,将接收到的不同批交易数据存储至不同区块的区块主体中,得到包含交易数据的多个区块。
其中,该交易数据可以是用户通过终端通过网络发送的交易数据,也可以是从区块链系统中其他服务器广播的区块中获取的交易数据。
本发明实施例中,服务器在接收交易数据的过程中,可以根据预设数量和预设时长两个条件中至少一个条件,将接收到的交易数据分批,每接收到一批交易数据,则将该批交易数据存储至一个区块的区块主体中。
服务器获取该不同批交易数据中任一批交易数据的方式可以包括以下四种可能实现方式:
第一种方式、当等待时长等于预设时长时,将在该等待时长内接收到的交易数据作为一批交易数据,存储至一个区块的区块主体中,该等待时长是指当前时刻与上一时刻之间的时长,该上一时刻是指将上一批交易数据存储至上一个区块的区块主体中的时刻。
该方式是每等待预设时长,则将在该预设等待时长内接收到的交易数据作为一批交易数据。例如,服务器在接收到第一个交易数据时,可以先不对该第一个交易数据进行处理,而等待接收后续的交易数据,在这个过程中,一旦等待时长到达预设时长时,服务器可以将当前接收到的所有交易数据作为一批交易数据。
该方式下,每批交易数据的接收时间跨度相同,但不同批交易数据的数量可能相同,也可能不同。其中,每批交易数据的接收时间跨度是指接收到该批交易数据中的第一个交易数据的时间与最后一个交易数据的时间之间的时间差。
第二种方式、当接收到预设数量的交易数据时,将该预设数量的交易数据作为一批交易数据,存储至一个区块的区块主体中。
该方式是每接收到预设数量的交易数据时,则将该预设数量的交易数据作为一批交易数据。例如,服务器在接收到第一个交易数据时,可以先不对该第一个交易数据进行处理,而等待接收后续的交易数据,在这个过程中,一旦接收到的交易数据的数量达到预设数量时,服务器可以将当前接收到的所有交易数据作为一批交易数据。
该方式下,每批交易数据的数量相同,但不同批交易数据的接收时间跨度可能相同,也可能不同,例如,第一批交易数据的接收时间跨度大于第二批交易数据的接收时间跨度,第二批交易数据的接收时间跨度等于第三批交易数据的接收时间跨度。
第三种方式、当该等待时长小于该预设时长,且在该等待时长内接收到的交易数据的数量等于该预设数量时,将在该等待时长内接收到的交易数据作为一批交易数据,存储至一个区块的区块主体中,该上一时刻是指将上一批交易数据存储至上一个区块的区块主体中的时刻。
该方式是在等待时长到达预设时长之前,一旦接收到的交易数据达到预设数量时,则将该预设数量的交易数据作为一批交易数据。该方式下,不同批交易数据的数量相同,但不同批交易数据的接收时间跨度可能相同,也可能不同,但每批交易数据的接收时间跨度对应的时长均不超过预设时长。
当接收到的交易数据的数量小于该预设数量,且该等待时长等于该预设时长时,将在该等待时长内接收到的交易数据作为一批交易数据,存储至一个区块的区块主体中。
该方式是在接收到预设数量的交易数据之前,一旦等待时长达到预设时长时,则将该预设时长内接收到的交易数据作为一批交易数据。该方式下,不同批交易数据的接收时间跨度相同,但不同批交易数据的数量可能相同,也可能不同,但均不超过预设数量。
服务器可以通过上述任一种方式,在接收交易数据的过程中获取到不同批交易数据,从而得到包含交易数据的多个区块。其中,根据预设时长来控制交易数据的接收,可以避免等待时长过长,导致生成区块的速度过慢的问题;根据预设数量来控制交易数据的接收,可以避免一个区块中的数据量太大,影响处理效率的问题。
202、根据区块高度,每次从该多个区块中选择待将交易数据加入交易缓存池中的一个区块,该交易缓存池用于缓存并行处理中的交易数据。
其中,区块高度用于描述该区块在区块链中的位置,区块高度越小的区块是越早加入区块链中的区块,在区块链中的位置越靠前;区块高度越大的区块是越晚加入区块链中的区块,在区块链中的位置越靠后。区块链中最后一个区块的区块高度最大。
本发明实施例中,服务器可以将能并行处理的区块中的交易数据加入交易缓存池中,每将一个区块中的交易数据加入该交易缓存池,则启动线程对该区块中的交易数据进行处理。在选择能并行处理的区块的过程中,服务器可以根据各个区块的区块高度来选择区块,每选择一个区块,则对当前选择的该区块执行后续步骤203至步骤205。
在一种可能实现方式中,服务器可以按照区块高度从小到大的顺序来选择区块,也即是,服务器先选择区块高度小的区块,再选择区块高度大的区块。区块高度越小的区块中的交易数据一般是先接收到的一批交易数据,区块高度越大的区块中的交易数据一般是后接收到的一批交易数据。因此,该方式实际上是按照接收交易数据的时间先后顺序选择区块,先选择时间顺序靠前的一批交易数据所在区块,再选择时间顺序靠后的一批交易数据所在区块。
对于每次选择的区块,服务器需要判断该区块中的交易数据是否与交易缓存池中正在处理的交易数据冲突,如果不冲突,则执行后续步骤203至步骤204;如果冲突,则执行后续步骤205。其中,冲突是指该区块中的交易数据不满足预设条件,例如,该预设条件可以为该区块中的交易数据与交易缓存池中的交易数据包含同一UTXO(Unspent TransactionOutputs,未花费的交易输出),该区块中的交易数据不能与交易缓存池中的交易数据并行处理。例如,一个交易是A向B转10块钱,另一个交易是B把这10块钱转给C,则这个10块钱就是同一UTXO,则这两个交易就冲突了,不能并行处理。同理,不冲突是指该区块中的交易数据满足预设条件,例如,该区块中的交易数据与交易缓存池中的交易数据不包含同一UTXO,该区块中的交易数据能与交易缓存池中的交易数据并行处理。
203、对于每次选择的区块,当该区块中的交易数据满足预设条件时,将该区块中的交易数据加入该交易缓存池中。
本发明实施例中,如果服务器当前选择的区块中的交易数据满足预设条件,例如,当前选择的区块中的交易数据与该交易缓存池中的交易数据不包含同一UTXO时,表明当前选择的区块中的交易数据可以与交易缓存池中的交易数据并行处理,则服务器可以将当前选择的区块中的交易数据加入交易缓存池,从而通过后续步骤204实现不同区块中交易数据的并行处理。通过步骤202和步骤203的区块选择和交易数据加入过程,交易缓存池中缓存了一批能并行处理的区块中的交易数据。
204、将该区块中的交易数据与该交易缓存池中的其他交易数据并行处理,结束。
本发明实施例中,服务器每次向交易缓存池中加入一个区块中包含的交易数据,则可以启动一个线程对该区块中包含的交易数据进行处理,当然,服务器也可以启动多个线程对该区块中包含的交易数据进行处理,从而提高每个区块中交易数据的处理效率,本发明实施例对此不做限定。
在一种可能实现方式中,服务器将该区块中的交易数据与该交易缓存池中的其他交易数据并行处理包括:在通过至少一个第一线程对该其他交易数据进行验证处理的同时,通过第二线程对该区块中的交易数据进行验证处理。通过采用不同的线程对不同区块中的交易数据进行处理,可以提高交易数据的整体处理效率。
例如,如果在将当前选择的区块(如区块2)中的交易数据加入交易缓存池之前,交易缓存池中仅有一个区块(如区块1)中的交易数据,则服务器可以通过一个第一线程对该区块1中的交易数据进行验证处理,并在将该区块2中的交易数据加入该交易缓存池时,启动一个第二线程对该区块2中的交易数据进行验证处理。当然,如果在将区块2中的交易数据加入交易缓存池之前,交易缓存池中已有两个区块中的交易数据,则服务器可以通过两个第一线程对该两个区块中的交易数据进行验证处理。
服务器对交易缓存池中任一区块中的交易数据的处理过程包括:该服务器先对该区块中的交易数据进行验证处理,该区块中的交易数据验证通过后,从区块链中获取上一区块的区块头、交易数据以及其他必要数据,基于这些信息生成上一区块的特征值,将该上一区块的特征值存储至该区块的区块头中,并基于该区块的区块头、交易数据以及其他必要数据,生成该区块的特征值,将该区块的特征值也存储至该区块的区块头中,从而生成完整区块。其中,特征值一般是指哈希值,经过哈希运算生成。区块头一般包括版本号、难度值和时间戳、交易的默克尔树等。然后,该服务器可以将该完整区块广播给区块链系统中的其他服务器,以对该完整区块进行共识,共识通过后,该服务器可以将该完整区块添加至该服务器配置的区块链中。当前,其他服务器也可以将该完整区块添加至各自配置的区块链中,其中,该服务器配置的区块链和其他服务器配置的区块链是相同的区块链。
需要说明的是,上述共识过程仅是区块共识的一种示例,该示例中发起共识的服务器是在生成完整区块后,再将该完整区块广播给区块链系统中的其他服务器进行共识。在另一种示例中,该服务器还可以在生成完整区块之前,直接将初始区块(步骤201中生成的区块)广播给区块链系统中的其他服务器进行共识,各个服务器自己执行并行验证的流程,随后,该服务器生成完整区块后,通过广播该完整区块的区块高度以及特征值,来判断各个服务器是否达成共识。本发明实施例对区块的共识过程不作限定。
上述步骤203至步骤204是当前选择的区块中的交易数据与该交易缓存池中的交易数据不冲突的情况,针对当前选择的区块中的交易数据与该交易缓存池中的交易数据冲突的情况,服务器可以执行步骤205。
205、对于每次选择的区块,当该区块中的交易数据不满足预设条件时,停止选择后续区块。
本发明实施例中,如果服务器当前选择的区块中的交易数据不满足预设条件,例如,当前选择的区块中的交易数据与该交易缓存池中的交易数据包含同一UTXO时,表明当前选择的区块中的交易数据不能与交易缓存池中的交易数据并行处理,则服务器可以等待交易缓存池中的交易数据全部处理完并阻塞后续区块,也即是,停止选择后续区块。
需要说明的是,该步骤205为可选步骤,通过在当前选择的区块中的交易数据与正在处理中的交易数据冲突时,等待并阻塞后续区块,可以避免并行处理冲突的交易数据导致处理失败的问题。
206、直至该交易缓存池中的交易数据全部处理完成后,继续执行步骤202至步骤204或步骤202和步骤205。
本发明实施例中,在阻塞后续区块的过程中,一旦交易缓存池中的交易数据全部处理完时,则服务器可以解除等待,继续执行上述步骤202至步骤204(交易不冲突的情况)或步骤202和步骤205(交易冲突的情况)。
在一种可能实现方式中,服务器在对交易缓存池中各个区块中的交易数据进行处理的过程中,当该交易缓存池中任一区块中的交易数据处理完成后,服务器可以从该交易缓存池中删除处理完成的区块中的交易数据。相应地,当该交易缓存池为空,也即是,该交易缓存池中不存在交易数据时,服务器继续执行上述步骤202至步骤204或步骤202和步骤205。
需要说明的是,该步骤206为可选步骤,提供了一种在适当时机解除等待,继续选择可以并行处理的区块的方式。
需要说明的是,上述步骤205和步骤206是针对冲突的情况,阻塞后续全部区块为例进行说明。当然,服务器也可以只阻塞冲突的区块,具体地,如果当前选择的区块中的交易数据不满足预设条件时,则服务器可以从该多个区块中选择其他区块,例如,按照区块高度选择下一个区块;当该其他区块中的交易数据满足预设条件时,执行加入交易缓存池以及并行处理的步骤,也即是,将该其他区块中的交易数据加入交易缓存池,将该其他区块中的交易数据与该交易缓存池中的其他交易数据并行处理。
本发明实施例提供的方法,通过从包含交易数据的多个区块中,每次选择一个待将交易数据加入交易缓存池中的区块,且当该区块中的交易数据与交易缓存池中的交易数据不冲突时,将当前选择的区块中的交易数据加入交易缓存池中,与处理中的交易数据并行处理。上述方案在对一个区块中的交易数据进行处理的同时,可以对其他区块中的交易数据进行并行处理,大大提升了区块链系统处理区块中交易数据的速度,使得整体的数据处理效率高。
图3是本发明实施例提供的一种数据处理装置的结构示意图。参照图3,该装置包括:
获取模块301,用于在接收交易数据的过程中,将接收到的不同批交易数据存储至不同区块的区块主体中,得到包含交易数据的多个区块;
选择模块302,用于根据区块高度,每次从该多个区块中选择待将交易数据加入交易缓存池中的一个区块,该交易缓存池用于缓存并行处理中的交易数据;
添加模块303,用于对于每次选择的区块,当该区块中的交易数据满足预设条件时,将该区块中的交易数据加入该交易缓存池中;
处理模块304,用于将该区块中的交易数据与该交易缓存池中的其他交易数据并行处理。
在一种可能实现方式中,该获取模块301用于当等待时长等于预设时长时,将在该等待时长内接收到的交易数据作为一批交易数据,存储至一个区块的区块主体中,该等待时长是指当前时刻与上一时刻之间的时长,该上一时刻是指将上一批交易数据存储至上一个区块的区块主体中的时刻;或,
该获取模块301用于当接收到预设数量的交易数据时,将该预设数量的交易数据作为一批交易数据,存储至一个区块的区块主体中;或,
该获取模块301用于当该等待时长小于该预设时长,且在该等待时长内接收到的交易数据的数量等于该预设数量时,将在该等待时长内接收到的交易数据作为一批交易数据,存储至一个区块的区块主体中,该上一时刻是指将上一批交易数据存储至上一个区块的区块主体中的时刻;或,
该获取模块301用于当接收到的交易数据的数量小于该预设数量,且该等待时长等于该预设时长时,将在该等待时长内接收到的交易数据作为一批交易数据,存储至一个区块的区块主体中。
在一种可能实现方式中,该处理模块304用于在通过至少一个第一线程对该其他交易数据进行验证处理的同时,通过第二线程对该区块中的交易数据进行验证处理。
在一种可能实现方式中,该处理模块304还用于对于每次选择的区块,当该区块中的交易数据不满足预设条件时,停止选择后续区块,直至该交易缓存池中的交易数据全部处理完成后,继续执行选择区块、加入该交易缓存池以及并行处理的步骤。
在一种可能实现方式中,该处理模块304还用于当该交易缓存池中任一区块中的交易数据处理完成后,从该交易缓存池中删除处理完成的区块中的交易数据;当该交易缓存池中不存在交易数据时,继续执行选择区块、加入该交易缓存池以及并行处理的步骤。
在一种可能实现方式中,该选择模块302还用于当该区块中的交易数据不满足预设条件时,从该多个区块中选择其他区块;
该处理模块304还用于当该其他区块中的交易数据满足预设条件时,执行加入该交易缓存池以及并行处理的步骤。
在一种可能实现方式中,该预设条件为该区块中的交易数据与该交易缓存池中的交易数据不包含同一UTXO。
本发明实施例提供的装置,通过从包含交易数据的多个区块中,每次选择一个待将交易数据加入交易缓存池中的区块,且当该区块中的交易数据与交易缓存池中的交易数据不冲突时,将当前选择的区块中的交易数据加入交易缓存池中,与处理中的交易数据并行处理。上述方案在对一个区块中的交易数据进行处理的同时,可以对其他区块中的交易数据进行并行处理,大大提升了区块链系统处理区块中交易数据的速度,使得整体的数据处理效率高。
需要说明的是:上述实施例提供的数据处理装置在数据处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据处理装置与数据处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图4是本发明实施例提供的一种服务器400的结构示意图,该服务器400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central ProcessingUnits,CPU)401和一个或一个以上的存储器402,其中,该存储器402中存储有至少一条指令,该至少一条指令由该处理器401加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括至少一条指令、至少一段程序、代码集或指令集的存储器,上述至少一条指令、至少一段程序、代码集或指令集可由处理器加载并执行以完成上述实施例中的数据处理方法。例如,计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random-AccessMemory,RAM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种数据处理方法,其特征在于,所述方法包括:
在接收交易数据的过程中,将接收到的不同批交易数据存储至不同区块的区块主体中,得到包含交易数据的多个区块;
根据区块高度,每次从所述多个区块中选择待将交易数据加入交易缓存池中的一个区块,所述交易缓存池用于缓存并行处理中的交易数据;
对于每次选择的区块,当所述区块中的交易数据满足预设条件时,将所述区块中的交易数据加入所述交易缓存池中,将所述区块中的交易数据与所述交易缓存池中的其他交易数据并行处理,所述预设条件为所述区块中的交易数据与所述交易缓存池中的交易数据不包含同一未花费的交易输出UTXO;
对于每次选择的区块,当所述区块中的交易数据不满足所述预设条件时,停止选择后续区块,直至所述交易缓存池中的交易数据全部处理完成后,继续执行选择区块的步骤,当选择的区块中的交易数据满足预设条件时,将选择的区块中的交易数据加入所述交易缓存池中,将选择的区块中的交易数据与所述交易缓存池中的其他交易数据并行处理。
2.根据权利要求1所述的方法,其特征在于,所述不同批交易数据中任一批交易数据的获取过程包括:
当等待时长等于预设时长时,将在所述等待时长内接收到的交易数据作为一批交易数据,存储至一个区块的区块主体中,所述等待时长是指当前时刻与上一时刻之间的时长,所述上一时刻是指将上一批交易数据存储至上一个区块的区块主体中的时刻;或,
当接收到预设数量的交易数据时,将所述预设数量的交易数据作为一批交易数据,存储至一个区块的区块主体中;或,
当所述等待时长小于所述预设时长,且在所述等待时长内接收到的交易数据的数量等于所述预设数量时,将在所述等待时长内接收到的交易数据作为一批交易数据,存储至一个区块的区块主体中,所述上一时刻是指将上一批交易数据存储至上一个区块的区块主体中的时刻;或,
当接收到的交易数据的数量小于所述预设数量,且所述等待时长等于所述预设时长时,将在所述等待时长内接收到的交易数据作为一批交易数据,存储至一个区块的区块主体中。
3.根据权利要求1所述的方法,其特征在于,所述将所述区块中的交易数据与所述交易缓存池中的其他交易数据并行处理,包括:
在通过至少一个第一线程对所述其他交易数据进行验证处理的同时,通过第二线程对所述区块中的交易数据进行验证处理。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述交易缓存池中任一区块中的交易数据处理完成后,从所述交易缓存池中删除处理完成的区块中的交易数据;
相应地,所述停止选择后续区块之后,所述方法还包括:
当所述交易缓存池中不存在交易数据时,继续执行选择区块、加入所述交易缓存池以及并行处理的步骤。
5.根据权利要求1所述的方法,其特征在于,所述从所述多个区块中,选择待将交易数据加入交易缓存池中的区块之后,所述方法还包括:
当所述区块中的交易数据不满足所述预设条件时,从所述多个区块中选择其他区块;
当所述其他区块中的交易数据满足所述预设条件时,执行加入所述交易缓存池以及并行处理的步骤。
6.一种数据处理装置,其特征在于,所述装置包括:
获取模块,用于在接收交易数据的过程中,将接收到的不同批交易数据存储至不同区块的区块主体中,得到包含交易数据的多个区块;
选择模块,用于根据区块高度,每次从所述多个区块中选择待将交易数据加入交易缓存池中的一个区块,所述交易缓存池用于缓存并行处理中的交易数据;
添加模块,用于对于每次选择的区块,当所述区块中的交易数据满足预设条件时,将所述区块中的交易数据加入所述交易缓存池中,所述预设条件为所述区块中的交易数据与所述交易缓存池中的交易数据不包含同一未花费的交易输出UTXO;
处理模块,用于将所述区块中的交易数据与所述交易缓存池中的其他交易数据并行处理;
所述处理模块还用于对于每次选择的区块,当所述区块中的交易数据不满足所述预设条件时,停止选择后续区块,直至所述交易缓存池中的交易数据全部处理完成后,继续执行选择区块的步骤,当选择的区块中的交易数据满足预设条件时,将选择的区块中的交易数据加入所述交易缓存池中,将选择的区块中的交易数据与所述交易缓存池中的其他交易数据并行处理。
7.根据权利要求6所述的装置,其特征在于,
所述获取模块用于当等待时长等于预设时长时,将在所述等待时长内接收到的交易数据作为一批交易数据,存储至一个区块的区块主体中,所述等待时长是指当前时刻与上一时刻之间的时长,所述上一时刻是指将上一批交易数据存储至上一个区块的区块主体中的时刻;或,
所述获取模块用于当接收到预设数量的交易数据时,将所述预设数量的交易数据作为一批交易数据,存储至一个区块的区块主体中;或,
所述获取模块用于当所述等待时长小于所述预设时长,且在所述等待时长内接收到的交易数据的数量等于所述预设数量时,将在所述等待时长内接收到的交易数据作为一批交易数据,存储至一个区块的区块主体中,所述上一时刻是指将上一批交易数据存储至上一个区块的区块主体中的时刻;或,
所述获取模块用于当接收到的交易数据的数量小于所述预设数量,且所述等待时长等于所述预设时长时,将在所述等待时长内接收到的交易数据作为一批交易数据,存储至一个区块的区块主体中。
8.根据权利要求6所述的装置,其特征在于,所述处理模块还用于当所述交易缓存池中任一区块中的交易数据处理完成后,从所述交易缓存池中删除处理完成的区块中的交易数据;当所述交易缓存池中不存在交易数据时,继续执行选择区块、加入所述交易缓存池以及并行处理的步骤。
9.根据权利要求6所述的装置,其特征在于,
所述选择模块还用于当所述区块中的交易数据不满足所述预设条件时,从所述多个区块中选择其他区块;
所述处理模块还用于当所述其他区块中的交易数据与所述交易缓存池中的交易数据满足所述预设条件时,执行加入所述交易缓存池以及并行处理的步骤。
10.一种服务器,其特征在于,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由所述处理器加载并执行以实现如权利要求1至5任一项所述的数据处理方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如权利要求1至5任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810569317.5A CN108776897B (zh) | 2018-06-05 | 2018-06-05 | 数据处理方法、装置、服务器及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810569317.5A CN108776897B (zh) | 2018-06-05 | 2018-06-05 | 数据处理方法、装置、服务器及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108776897A CN108776897A (zh) | 2018-11-09 |
CN108776897B true CN108776897B (zh) | 2020-04-21 |
Family
ID=64024511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810569317.5A Active CN108776897B (zh) | 2018-06-05 | 2018-06-05 | 数据处理方法、装置、服务器及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108776897B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109508337A (zh) * | 2018-11-12 | 2019-03-22 | 杭州秘猿科技有限公司 | 一种交易并行执行方法、装置、电子设备及系统 |
CN109658216A (zh) * | 2018-12-14 | 2019-04-19 | 深圳美图创新科技有限公司 | 区块链货币交易方法及装置 |
CN110009316A (zh) * | 2018-12-14 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 基于区块链的事件处理方法及装置、电子设备 |
CN109784930B (zh) * | 2019-02-18 | 2023-07-18 | 深圳市迅雷网络技术有限公司 | 一种区块链交易数据的处理方法、装置、电子设备及介质 |
CN110910249B (zh) * | 2019-11-22 | 2021-08-24 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、节点设备及存储介质 |
CN111241061B (zh) * | 2020-01-09 | 2023-04-07 | 平安科技(深圳)有限公司 | 状态数据库的写入方法、数据处理装置及存储介质 |
CN112883107B (zh) * | 2020-12-31 | 2022-05-17 | 杭州趣链科技有限公司 | 区块链中交易异步执行方法、系统及相关设备 |
CN112395300B (zh) * | 2021-01-20 | 2021-05-25 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
CN115037813A (zh) * | 2022-06-08 | 2022-09-09 | 北京知帆科技有限公司 | 一种区块链数据解析方法、装置及电子设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180158034A1 (en) * | 2016-12-07 | 2018-06-07 | International Business Machines Corporation | Dynamic reordering of blockchain transactions to optimize performance and scalability |
CN107402824B (zh) * | 2017-05-31 | 2020-06-02 | 创新先进技术有限公司 | 一种数据处理的方法及装置 |
CN107274159B (zh) * | 2017-06-09 | 2024-07-12 | 北京泛融科技有限公司 | 一种基于区块并发执行算法的记账系统及方法 |
CN107704269A (zh) * | 2017-10-16 | 2018-02-16 | 中国银行股份有限公司 | 一种基于区块链生成区块的方法以及系统 |
CN107992356B (zh) * | 2017-12-13 | 2021-09-14 | 深圳壹账通智能科技有限公司 | 区块链事务区块处理方法、电子装置及可读存储介质 |
CN108053211B (zh) * | 2017-12-27 | 2021-04-06 | 北京欧链科技有限公司 | 基于区块链的交易处理方法及装置 |
-
2018
- 2018-06-05 CN CN201810569317.5A patent/CN108776897B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108776897A (zh) | 2018-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108776897B (zh) | 数据处理方法、装置、服务器及计算机可读存储介质 | |
KR101255382B1 (ko) | 운영체제에 친숙한 부트로더 | |
CN109032796B (zh) | 一种数据处理方法和装置 | |
CN106712981B (zh) | 一种节点变更通知方法及装置 | |
US20210058382A1 (en) | Block sequencing method and system based on tree-graph structure, and data processing terminal | |
CN103997544A (zh) | 一种资源下载的方法和设备 | |
CN108319499B (zh) | 任务调度方法及装置 | |
CN110427386B (zh) | 数据处理方法、装置及计算机存储介质 | |
CN111143331B (zh) | 数据迁移方法、装置及计算机存储介质 | |
CN109101662B (zh) | 区块生成方法、装置、设备及存储介质 | |
CN113204530B (zh) | 分布式文件系统的数据写入方法、装置、设备以及介质 | |
CN111258726A (zh) | 任务调度方法和装置 | |
CN107689984B (zh) | 消息推送方法、装置、计算机设备和存储介质 | |
CN111143053A (zh) | 一种定时任务的调度方法、服务器以及存储装置 | |
CN115409507A (zh) | 区块处理方法、区块处理装置、计算机设备及存储介质 | |
CN110955461B (zh) | 计算任务的处理方法、装置、系统、服务器和存储介质 | |
CN112506632A (zh) | 分布式系统中批任务的调度方法和系统 | |
CN109032779B (zh) | 任务处理方法、装置、计算机设备及可读存储介质 | |
CN112764897B (zh) | 任务请求的处理方法、装置、系统及计算机可读存储介质 | |
CN108733361B (zh) | 一种实现并发容器的方法和装置 | |
CN110354504B (zh) | 获取匹配组的方法、装置、服务器和存储介质 | |
US9509780B2 (en) | Information processing system and control method of information processing system | |
CN112541041A (zh) | 一种数据处理方法、装置、服务器及存储介质 | |
CN104348906A (zh) | 一种分布式系统中数据协商方法及装置 | |
CN110213314B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |