CN110008206A - 一种基于区块链系统的数据处理方法及装置 - Google Patents
一种基于区块链系统的数据处理方法及装置 Download PDFInfo
- Publication number
- CN110008206A CN110008206A CN201910221012.XA CN201910221012A CN110008206A CN 110008206 A CN110008206 A CN 110008206A CN 201910221012 A CN201910221012 A CN 201910221012A CN 110008206 A CN110008206 A CN 110008206A
- Authority
- CN
- China
- Prior art keywords
- block
- information
- target
- moment
- storage
- 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 13
- 238000003860 storage Methods 0.000 claims abstract description 241
- 238000000034 method Methods 0.000 claims abstract description 93
- 238000012545 processing Methods 0.000 claims description 40
- 238000001914 filtration Methods 0.000 claims description 33
- 238000004590 computer program Methods 0.000 claims description 10
- 230000008901 benefit Effects 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 claims description 2
- 230000001360 synchronised effect Effects 0.000 abstract description 65
- 230000008569 process Effects 0.000 abstract description 38
- 230000006870 function Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000001404 mediated effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012163 sequencing technique 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/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种基于区块链系统的数据处理方法及装置,其中方法包括:从区块链中获取最新区块的块高以及从存储设备中获取历史区块的最大块高,确定区块链中块高位于最新区块的块高和最大块高之间的N个目标区块;若N大于第一预设阈值,则使用至少两个线程从区块链中获取N个目标区块的第一区块信息,并存储在存储设备中,更新历史区块的最大块高。本发明实施例中,通过采用多个线程进行数据同步,可以将区块链上的目标区块的区块信息快速同步至存储设备中,从而可以提高区块链与存储设备之间数据同步的效率,使得基于区块链系统的数据同步和数据查询的过程更加灵活。
Description
技术领域
本发明涉及金融科技(Fintech)领域,尤其涉及一种基于区块链系统的数据处理方法及装置。
背景技术
区块链(Blockchain)系统是金融科技(Fintech)领域常用的一种分布式的系统架构,通过利用区块链式的数据结构、分布式的节点共识算法以及密码学的访问技术来完成多个节点之间的交易。区块链系统中可以设置有底层和应用层,底层可以用于存储区块链系统中各个节点之间的交易信息,应用层可以通过与底层通信获取底层中存储的交易信息。具体地说,底层中可以设置有由一个或多个区块构成的区块链,每个区块可以存储区块链系统中发生的一个或多个交易信息(即区块信息);相应地,应用层可以通过获取区块链上区块的区块信息来获取交易信息。然而,若网络环境较差,则应用层与底层的通信可能会存在延时,从而使得获取交易信息时等待的时间较长。
为了解决上述问题,应用层中通常可以设置存储设备,存储设备可以与底层中设置的区块链进行数据同步,从而存储区块链中的区块信息;如此,若接收到查询请求,则应用层可以通过获取存储设备中存储的区块信息,快速获取查询请求对应的交易信息。现有技术中实现存储设备与应用层的数据同步的一种方式为:若监听到有新的区块加入底层的区块链,则可以从区块链中获取新加入的区块的区块信息,并将新加入的区块的区块信息存储在存储设备中。然而,若监听到的新的区块包括多个,采用该种方式每次仅可以同步一个新的区块的区块信息,即数据同步所耗费的时间较长,从而使得数据同步的效率较低。
综上,目前亟需一种基于区块链系统的数据处理方法,用以提高区块链与存储设备之间数据同步的效率。
发明内容
本发明实施例提供一种基于区块链系统的数据处理方法及装置,用以提高区块链与存储设备之间数据同步的效率。
第一方面,本发明实施例提供的一种基于区块链系统的数据处理方法,包括:
从区块链中获取最新区块的块高以及从存储设备中获取所述存储设备已存储的历史区块的最大块高;确定所述区块链中块高位于所述最新区块的块高和所述最大块高之间的N个目标区块,所述N个目标区块中包括所述最新区块;若所述N大于第一预设阈值,则生成至少两个线程,并使用所述至少两个线程从所述区块链中获取所述N个目标区块的第一区块信息,其中,N≥2;将所述N个目标区块的第一区块信息存储在所述存储设备中,并更新所述存储设备已存储的历史区块的最大块高。
上述技术方案中,通过采用多个线程同步目标区块的区块信息,可以将区块链上的目标区块的区块信息快速同步至存储设备中,从而可以提高区块链与存储设备之间数据同步的效率;相比于现有技术每次仅同步一个区块的区块信息的方式来说,本发明实施例通过多个线程实现数据同步,可以提高区块链系统中数据处理的效率,使得基于区块链系统的数据同步和数据查询的过程更加灵活。
可选地,若所述N小于或等于所述第一预设阈值,则生成第一线程,并使用第一线程按照所述N个目标区块的预设顺序依次获取所述N个目标区块的第一区块信息;所述N个目标区块的预设顺序为根据所述N个目标区块的块高或者所述N个目标区块的优先级确定的。
上述技术方案中,对N个目标区块的区块信息进行同步的方式可以有多种,比如,可以按照N个目标区块的块高的顺序实现数据同步,或者也可以按照N个目标区块的优先级从高到低的顺序实现数据同步,其中,N个目标区块的优先级可以根据实际情况进行设置;也就是说,采用本发明实施例中的数据同步方法,数据同步的过程更加符合实际情况,且数据同步的灵活性更强。
可选地,所述从区块链中获取最新区块的块高,包括:从所述区块链中获取第一时刻对应的最新区块的块高和所述区块链中第一时刻发生的交易数量;若所述第一时刻发生的交易数量小于或等于第二预设阈值,则将所述第一时刻对应的最新区块的块高作为所述最新区块的块高;若所述交易数量大于所述第二预设阈值,则在等待预设时间段后,从所述区块链中获取第二时刻对应的最新区块的块高和所述区块链中第二时刻发生的交易数量,若所述第二时刻发生的交易数量小于或等于所述第二预设阈值,则将所述第二时刻对应的最新区块的块高作为所述最新区块的块高;其中,所述预设时间段是根据所述区块链中所述第一时刻之前发生的历史交易的共识时间确定的。
上述技术方案中,若确定区块链中当前的交易任务存在堆积情况,则可以等待区块链中的交易任务执行完毕后,再进行数据同步。因此,采用本发明实施例中的数据同步方法,可以避免对区块链系统中底层的各个节点的正常共识过程造成干扰,从而可以保证区块链中交易任务的正常执行,实现区块链系统中底层的正常交易和正常出块。
可选地,所述确定所述区块链中块高位于所述最新区块的块高和所述最大块高之间的N个目标区块之后,使用所述至少两个线程从所述区块链中获取所述N个目标区块的第一区块信息之前,还包括:接收第一查询请求,所述第一查询请求包括第一区块的块高;若所述第一查询信息的优先级高于所述N个目标区块的优先级,则生成第二线程,并使用第二线程从所述区块链中获取所述第一区块的第一区块信息,将所述第一区块的第一区块信息存储在所述存储设备中。
上述技术方案中,若接收到优先级较高的区块的查询请求,则可以暂停当前的数据同步过程,等待优先级较高的区块的数据同步过程与数据查询过程执行完毕后,继续执行数据同步。由此可知,本发明实施例中的方法支持在数据同步的过程中执行数据查询任务,并可以合理安排数据查询与数据同步的执行过程,从而可以使得数据同步和数据查询的过程更加灵活。
可选地,所述将所述N个目标区块的第一区块信息存储在所述存储设备中,包括:对所述N个目标区块的第一区块信息进行压缩得到目标信息,将所述目标信息传输给所述存储设备中;若确定所述存储设备接收到所述目标信息,则对所述目标信息进行解析,得到所述N个目标区块的第一区块信息,并将所述N个目标区块的第一区块信息存储在所述存储设备中。
上述技术方案中,通过对从区块链中获取到的N个目标区块的区块信息进行压缩,可以将压缩后的数据传输给存储设备;压缩后的数据占用更小的空间,数据传输的速度更快,因此,本发明实施例中的方案可以降低网络压力,提高数据同步的速度和数据同步的效率。
可选地,所述得到所述N个目标区块的第一区块信息之后,将所述N个目标区块的第一区块信息存储在所述存储设备之前,还包括:按照预设过滤规则对所述N个目标区块的第一区块信息进行过滤,得到所述N个目标区块的第二区块信息;所述预设过滤规则包括以下任意一项或任意多项:过滤全部日志、过滤冗余日志、过滤日志中的预设字段;将所述N个目标区块的第二区块信息存储在所述存储设备中。
上述技术方案中,一方面,将N个目标区块的区块信息保存在存储设备之前,通过预先对N个目标区块的区块信息进行过滤,可以过滤无用数据,提高存储设备所存储的数据的质量,降低N个目标区块的区块信息所占用的空间;另一方面,通过采用日志过滤的方式,可以从N个目标区块的配置信息中进行过滤,从而可以提高过滤的准确性。
可选地,所述从区块链中获取最新区块的块高以及从存储设备中获取所述存储设备已存储的历史区块的最大块高之前,还包括:接收第二查询请求,所述第二查询请求中包括第二区块的块高;所述更新所述存储设备已存储的历史区块的最大块高之后,还包括:从所述存储设备中获取所述第二区块的第一区块信息。
上述技术方案中,若接收到数据查询请求,则可以在获取待查询的数据之前,执行存储设备与区块链的数据同步过程,从而可以使得实现数据同步后的存储设备上存储有待查询的数据,通过存储设备即可获取待查询的数据。
可选地,所述方法还包括:获取第三查询请求,所述第三查询请求中包括第三区块的块高;若所述历史区块的最大块高小于所述第三区块的块高,则从所述区块链中获取所述第三区块的第一区块信息,并将所述第三区块的第一区块信息存储在所述存储设备中,更新所述存储设备已存储的历史区块的最大块高;若所述历史区块的最大块高大于或等于所述第三区块的块高,则从所述存储设备中获取所述第三区块的第一区块信息。
上述技术方案中,通过将待查询的区块的块高与存储设备中存储的历史区块的最大块高进行对比,可以确定存储设备中是否存储有待查询的区块;若确定存储设备上未存储有待查询的数据,则可以从区块链中获取待查询的数据,并将待查询的数据存储在存储设备中。采用上述技术方案,可以实现查询数据的准确性和灵活性。
可选地,所述方法还包括:获取第四查询请求,所述第四查询请求中包括第三时刻;从所述存储设备中获取所述最大历史区块对应的生成时刻;若所述最大历史区块对应的生成时刻早于所述第三时刻,则从所述区块链中获取生成时刻与所述第三时刻相匹配的第四区块的第一区块信息,并将第四区块的第一区块信息存储在所述存储设备中,更新所述存储设备已存储的历史区块的最大块高;若所述最大历史区块对应的生成时刻等于或晚于所述第三时刻,则从所述存储设备中获取所述第四区块的第一区块信息。
上述技术方案中,通过将待查询的区块的生成时刻与存储设备中存储的历史区块的最大块高的生成时刻进行对比,可以确定存储设备中是否存储有待查询的区块;生成时刻可以用于标识一个区块,因此,采用上述技术方案,可以实现查询数据的准确性和灵活性。
第二方面,本发明实施例提供的一种基于区块链系统的数据处理装置,所述装置包括:
获取模块,用于从区块链中获取最新区块的块高以及从存储设备中获取所述存储设备已存储的历史区块的最大块高;
处理模块,用于确定所述区块链中块高位于所述最新区块的块高和所述最大块高之间的N个目标区块,所述N个目标区块中包括所述最新区块;若所述N大于第一预设阈值,则生成至少两个线程,并使用所述至少两个线程从所述区块链中获取所述N个目标区块的第一区块信息;其中,N≥2;
同步模块,用于将所述N个目标区块的第一区块信息存储在所述存储设备中,并更新所述存储设备已存储的历史区块的最大块高。
可选地,所述处理模块还用于:若所述N小于或等于所述第一预设阈值,则生成第一线程,并使用第一线程按照所述N个目标区块的预设顺序依次获取所述N个目标区块的第一区块信息;所述N个目标区块的预设顺序为根据所述N个目标区块的块高或者所述N个目标区块的优先级确定的。
可选地,所述获取模块用于:从所述区块链中获取第一时刻对应的最新区块的块高和所述区块链中第一时刻发生的交易数量;若所述第一时刻发生的交易数量小于或等于第二预设阈值,则将所述第一时刻对应的最新区块的块高作为所述最新区块的块高;若所述交易数量大于所述第二预设阈值,则在等待预设时间段后,从所述区块链中获取第二时刻对应的最新区块的块高和所述区块链中第二时刻发生的交易数量,若所述第二时刻发生的交易数量小于或等于所述第二预设阈值,则将所述第二时刻对应的最新区块的块高作为所述最新区块的块高;其中,所述预设时间段是根据所述区块链中所述第一时刻之前发生的历史交易的共识时间确定的。
可选地,所述处理模块还用于:接收第一查询请求,所述第一查询请求包括第一区块的块高;若所述第一查询信息的优先级高于所述N个目标区块的优先级,则生成第二线程,并使用第二线程从所述区块链中获取所述第一区块的第一区块信息,将所述第一区块的第一区块信息存储在所述存储设备中。
可选地,所述同步模块用于:对所述N个目标区块的第一区块信息进行压缩得到目标信息,将所述目标信息传输给所述存储设备中;若确定所述存储设备接收到所述目标信息,则对所述目标信息进行解析,得到所述N个目标区块的第一区块信息,并将所述N个目标区块的第一区块信息存储在所述存储设备中。
可选地,所述同步模块用于:按照预设过滤规则对所述N个目标区块的第一区块信息进行过滤,得到所述N个目标区块的第二区块信息;所述预设过滤规则包括以下任意一项或任意多项:过滤全部日志、过滤冗余日志、过滤日志中的预设字段;将所述N个目标区块的第二区块信息存储在所述存储设备中。
可选地,所述获取模块还用于:从区块链中获取最新区块的块高以及从存储设备中获取所述存储设备已存储的历史区块的最大块高之前,接收第二查询请求;所述第二查询请求中包括第二区块的块高;以及,更新所述存储设备已存储的历史区块的最大块高之后,从所述存储设备中获取所述第二区块的第一区块信息。
可选地,所述获取模块还用于:获取第三查询请求,所述第三查询请求中包括第三区块的块高;若所述历史区块的最大块高小于所述第三区块的块高,则从所述区块链中获取所述第三区块的第一区块信息,并将所述第三区块的第一区块信息存储在所述存储设备中,更新所述存储设备已存储的历史区块的最大块高;若所述历史区块的最大块高大于或等于所述第三区块的块高,则从所述存储设备中获取所述第三区块的第一区块信息。
可选地,所述获取模块还用于:获取第四查询请求,所述第四查询请求中包括第三时刻;从所述存储设备中获取所述最大历史区块对应的生成时刻;若所述最大历史区块对应的生成时刻早于所述第三时刻,则从所述区块链中获取生成时刻与所述第三时刻相匹配的第四区块的第一区块信息,并将第四区块的第一区块信息存储在所述存储设备中,更新所述存储设备已存储的历史区块的最大块高;若所述最大历史区块对应的生成时刻等于或晚于所述第三时刻,则从所述存储设备中获取生成时刻与所述第三时刻相匹配的所述第四区块的第一区块信息。
第三方面,本发明实施例提供的一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如第一方面或第一方面任意所述的方法。
第四方面,本发明实施例提供的一种计算机程序产品,当其在计算机上运行时,使得计算机执行如第一方面或第一方面任意所述的方法。
本发明的这些方面(即第一方面~第四方面)或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种区块链系统的系统架构示意图;
图2为本发明实施例提供的一种基于区块链系统的数据处理方法对应的流程示意图;
图3为本发明实施例中提供的又一种基于区块链系统的数据处理方法对应的流程示意图;
图4为本发明实施例中提供的一种基于区块链系统的数据查询方法对应的流程示意图;
图5为本发明实施例提供的另一种基于区块链系统的数据处理装置对应的流程示意图;
图6为本发明实施例中提供的另一种终端设备的结构示意图;
图7为本发明实施例中提供的另一种后端设备的结构示意图。
具体实施方式
为了使本发明的目标、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种区块链系统的系统架构示意图,如图1所示,区块链系统中可以包括底层110和应用层120。其中,应用层120可以与底层110进行通信,比如可以通过有线方式实现通信,或者也可以通过无线方式实现通信,具体不作限定。
本发明实施例中,区块链系统中可以设置有多个节点,多个节点之间进行交易所生成的交易信息可以保存在底层110的区块链(如图1所示意出的区块链100)上。其中,区块链100可以由一个或多个区块(如图1所示意出的区块101~区块108)构成,每个区块上可以存储有一个或多个交易信息。相应地,应用层120中可以设置有存储设备130,应用层120可以通过与底层110的通信实现存储设备130与区块链100的数据同步。举例说明,如图1所示,区块链100上包括区块101~区块108,存储设备130中存储有区块101和区块102,可以确定待同步的区块为区块103~区块108;此时,应用层120可以通过与底层110的通信获取区块103~区块108,并将区块103~区块108存储在存储设备130中,如此,即实现存储设备130中存储的区块与区块链100中存储的区块的一致性。
基于图1所示意的系统架构,图2为本发明实施例提供的一种基于区块链系统的数据处理方法对应的流程示意图,该方法包括:
步骤201,从区块链中获取最新区块的块高以及从存储设备中获取存储设备已存储的历史区块的最大块高。
在一种可能的实现方式中,应用层中可以设置有处理装置,处理装置可以读取存储设备中已存储的历史区块的最大块高,并可以通过与底层的通信获取区块链中最新区块的块高。其中,区块的块高可以用于标识区块在区块链中的位置,在一个示例中,区块的块高可以为区块链接在主链的个数,即区块连接在区块链上的块数。比如区块链上存在5个区块,则初始区块的块高可以为1,与初始区块链接的第二个区块的块高可以为2,与第二个区块链接的第三个区块的块高可以为3,与第三个区块链接的第四个区块的块高可以为4,与第四个区块链接的第五个区块的块高可以为5。
举例说明,如图1所示,存储设备130中已存储的历史区块包括区块102和区块102,区块101的块高为1,区块102的块高为2,因此,存储设备130中已存储的历史区块的最大块高可以为2。区块链中包括区块101~区块108,区块101的块高为1,区块102的块高为2,区块103的块高为3,区块104的块高为4,区块105的块高为5,区块106的块高为6,区块107的块高为7,区块108的块高为8,因此,区块链中最新区块的块高可以为8。因此,获取到的历史区块的最大块高可以为2,最新区块的块高可以为8。
步骤202,从区块链中获取N个目标区块的第一区块信息。
具体实施中,根据历史区块的最大块高2和最新区块的块高8,可以将块高位于块高2和块高8之间的区块作为目标区块,其中,目标区块可以包括最新区块;也就是说,目标区块可以包括块高为3的区块(即区块103)、块高为4的区块(即区块104)、块高为5的区块(即区块105)、块高为6的区块(即区块106)、块高为7的区块(即区块107)和块高为8的区块(即区块108),目标区块的数量可以为6。
进一步地,可以将目标区块的数量(即6)与第一预设阈值进行对比,第一预设阈值可以由本领域技术人员根据经验进行设置,或者也可以根据实验确定,具体不作限定。若目标区块的数量大于第一预设阈值(比如第一预设阈值为5),说明区块链上待同步的区块的数量较多,区块链的下载完成率较低,可能需要较长的时间方可完成下载;此时,可以采用并行同步方式对6个目标区块进行同步,即可以生成至少两个线程,并可以使用至少两个线程从区块链中获取6个目标区块的第一区块信息。相应地,若目标区块的数量小于或等于第一预设阈值(比如第一预设阈值为8),说明区块链上待同步的区块的数量较少,区块链的下载完成率较高,可能在较短的时间内即可完成下载;此时,可以采用串行同步方式对6个目标区块进行同步,即可以生成第一线程,并可以使用第一线程按照6个目标区块的预设顺序依次获取6个目标区块的第一区块信息。下面介绍并行同步方式和串行同步方式的具体实施过程。
并行同步方式
在并行同步方式中,线程数量的确定方式可以有多种,在一种可能的实现方式中,线程数量可以为固定的。具体地说,线程数量可以由本领域技术人员根据经验进行设置,或者也可以根据目标区块的数量确定,比如目标区块的数量为6,则线程数量可以为6,本发明实施例对此不作限定。在另一种可能的实现方式中,线程数量可以为动态变化的。具体地说,可以将获取6个目标区块的第一区块信息的过程划分为多个阶段,并可以设置每个阶段所能获取的目标区块,根据每个阶段所能获取的目标区块的数量动态调整每个阶段中的线程数量。在一个示例中,每个阶段所能获取的目标区块的数量可以满足如下条件:
L=t*v/size
其中,L为每个阶段所能获取的目标区块的数量;t可以为参考共识周期,参考共识周期可以为根据区块链系统中前60次历史交易的共识周期得到的,比如可以为前60次历史交易的平均共识周期;v可以为参考同步速度,参考同步速度可以为根据区块链系统中最近10分钟获取的所有区块的大小得到的,比如可以为平均每秒获取的区块的大小;size可以为同步区块的参考数据量,同步区块的参考数据量可以为根据最近60次同步的历史区块的数据量得到的,比如可以为最近60次同步的历史区块的平均数据量。
进一步地,可以预先设置初始阶段的线程数量,其中,初始阶段的线程数量可以由本领域技术人员根据实际情况进行设置,具体不作限定。在一个示例中,可以将初始阶段的线程数量设置为2n-4,且初始阶段的线程数量可以为大于2的整数;因此,若CPU的数量为16,则初始阶段的线程数量可以为28;若CPU的数量为2,则初始阶段的线程数量可以为2。
除初始阶段以外的阶段的线程数量可以满足如下条件:
P=(r/s+1)*n
其中,P为每个阶段的线程数量,r可以为上一阶段的线程的等待时间,s可以为上一阶段的线程的中央处理装置(Central Processing Unit,CPU)时间,n可以为CPU的数量。
以初始阶段的线程数量为P0、初始阶段所能获取的目标区块的数量为50为例,可以使用P0个线程获取50个目标区块的第一区块信息,根据P0个线程的等待时间、线程的CPU时间和CPU的数量,确定第二阶段的线程数量。例如,初始阶段的线程等待时间为0.2秒,线程的CPU时间为1秒,CPU的数量为16,则第一阶段的线程数量可以为19;若第二阶段所能获取的目标区块的数量为500,则可以使用19个线程获取500个目标区块的第一区块信息。本发明实施例中,数据同步的过程可以属于IO密集型任务,通过设置如上所述的并行同步方式,可以使得每个阶段的执行周期与区块的参考生成时间匹配,从而使得数据同步的过程更为合理。
在一种可能的实现方式中,还可以预先设置目标区块的优先级,从而可以根据目标区块的优先级确定每个阶段所能获取的目标区块;目标区块的优先级可以为本领域技术人员根据实际情况进行设置,或者也可以根据用户的要求进行设置,具体不作限定。举例说明,若初始阶段待同步的目标区块包括1000个,初始阶段所能获取的目标区块的数量为50,则可以对1000个目标区块按照优先级从大到小的顺序进行排序,从而获取前50个目标区块作为初始阶段所能获取的目标区块;进一步地,在初始阶段执行完毕后,第一阶段待同步的目标区块可以包括950个,若第一阶段所能获取的目标区块的数量为500,则可以对950个目标区块按照优先级从大到小的顺序进行排序,从而获取前500个目标区块作为第一阶段所能获取的目标区块;相应地,确定后续多个阶段所能获取的目标区块的过程可以参照上述过程进行实现,此处不再赘述。
需要说明的是,在每个阶段执行完毕后,可以检测同步过程是否正常,并可以核验该阶段所获取的目标区块的第一信息是否完整,若确定同步过程正常且该阶段所获取的目标区块的第一信息完整,则可以开始执行下一个阶段的任务。
本发明实施例中,通过采用多个线程同步目标区块的区块信息,可以将区块链上的目标区块的区块信息快速同步至存储设备中,从而可以提高区块链与存储设备之间数据同步的效率;相比于现有技术每次仅同步一个区块的区块信息的方式来说,本发明实施例通过多个线程实现数据同步,可以提高区块链系统中数据处理的效率,使得基于区块链系统的数据同步和数据查询的过程更加灵活。
串行同步方式
在串行同步方式中,6个目标区块的预设顺序可以为根据6个目标区块的块高或者6个目标区块的优先级确定的。在一个示例中,若6个目标区块的预设顺序为根据6个目标区块的块高得到的,则可以按照6个目标区块的块高的顺序依次同步6个目标区块,即同步的顺序可以为:块高为3的区块103、块高为4的区块104、块高为5的区块105、块高为6的区块106、块高为7的区块107、块高为8的区块108。在另一个示例中,若6个目标区块的预设顺序为根据6个目标区块的优先级确定的,则可以按照6个目标区块的优先级的顺序依次同步6个目标区块,其中,6个目标区块的优先级的顺序可以由本领域技术人员根据实际情况进行设置,具体不作限定。表1为预设的6个目标区块的优先级的一种示意表。
表1:预设目标区块的优先级的一种示意
目标区块 | 块高 | 优先级 |
区块103 | 3 | 5 |
区块104 | 4 | 3 |
区块105 | 5 | 6 |
区块106 | 6 | 2 |
区块107 | 7 | 4 |
区块108 | 8 | 1 |
如表1所示,6个目标区块的优先级从高到低依次为区块105>区块103>区块107>区块104>区块106>区块108,因此,可以按照依次获取区块105、区块103、区块107、区块104、区块106、区块108的第一区块信息。
在一个示例中,可以预先设置三个功能线程,第一功能线程可以用于确定目标区块,即查询区块链与存储设备确定待获取的目标区块;第二功能线程可以用于将目标区块的标识信息(比如区块的块高、区块的生成时刻等)存储在线程池中,以及在确定目标区块下载完成后,执行核验和校准;第三功能线程可以用于从线程池中获取待下载的目标区块,并从区块链中获取目标区块的第一区块信息。以区块105为例,在执行的过程中,第三功能线程获取到区块105的第一区块信息后,第二功能线程可以对区块105的第一区块信息进行核验,若确定区块105的第一区块信息完整且状态正常,则第二功能线程可以将区块106的标识信息存储在线程池中,以使第三功能线程获取区块106的第一区块信息。
本发明实施例中,通过采用串行同步方式同步目标区块,可以按照N个目标区块的块高的顺序实现数据同步,或者也可以按照N个目标区块的优先级从高到低的顺序实现数据同步,其中,N个目标区块的优先级可以根据实际情况进行设置;也就是说,采用本发明实施例中的数据同步方法,数据同步的过程更加符合实际情况,且数据同步的灵活性更强。
步骤203,将N个目标区块的第一区块信息存储在存储设备中,并更新存储设备已存储的历史区块的最大块高。
在一种可能的实现方式中,在获取到6个目标区块的第一区块信息后,可以根据预设规则确定是否对6个目标区块的第一区块信息进行压缩;比如,若接收到用户的压缩指令,则可以对6个目标区块的第一区块信息进行压缩,或者若确定6个目标区块的第一区块信息对应的数据量大于或等于第二预设阈值,则可以对6个目标区块的第一区块信息进行压缩。其中,第二预设阈值可以由本领域技术人员根据实际情况进行设置,具体不作限定。得到目标信息,并将目标信息传输给存储设备。
若确定6个目标区块的第一区块信息进行压缩,则执行压缩处理后可以得到目标信息,目标信息的数据量小于6个目标区块的第一区块信息,此时,可以将目标信息传输给存储设备。本发明实施例中,压缩后的数据占用更小的空间,数据传输的速度更快,因此,本发明实施例中的方案可以降低网络压力,提高数据同步的速度和数据同步的效率。
进一步地,若确定存储设备接收到目标信息,则可以对目标信息进行解压缩,得到N个目标区块的第一区块信息,其中,第一区块信息中可以包括交易日志信息,交易日志信息可以为区块在区块链中创建时通过调用智能合约数据生成的,即交易日志信息可以为智能合约中的日志信息。在一个示例中,可以按照预设过滤规则对N个目标区块的第一区块信息进行过滤,得到N个目标区块的第二区块信息,并将N个目标区块的第二区块信息存储在存储设备中。其中,预设过滤规则可以包括以下任意一项或任意多项:过滤全部日志、过滤冗余日志、过滤日志中的预设字段。
具体实施中,可以预先对二进制的第一区块信息(机器可以识别的第一区块信息)进行解析,得到结构化语言(比如交易信息),进而通过对结构化语言中的日志信息进行过滤得到第二区块信息。其中,预设过滤规则可以为采用Java语言(比如properties、xml、yaml等格式化标记语言等)编写的预设过滤程序,预设过滤程序可以为如下所示的程序:
Contract_name1.*=false;
Contract_name2.event_name1=false;
Contract_name3.event_name2.field1=false;
global.field2=false;
其中,Contract_name1、Contract_name2和Contract_name3可以为智能合约的名称,智能合约名称的后缀(比如*、event_name1、event_name2.field1等)可以为智能合约中的日志标识。具体地说,第一行程序可以用于对智能合约Contract_name1的全部日志信息进行过滤,第二行程序可以用于对智能合约Contract_name2的特定日志信息event_name1进行过滤,第三行程序可以用于对智能合约Contract_name3的特定日志信息event_name2中的特定字段field1进行过滤,第四行程序可以用于对全部日志信息中的特定字段field2进行过滤。
本发明实施例中,将N个目标区块的区块信息保存在存储设备之前,通过预先对N个目标区块的区块信息进行过滤,可以过滤无用数据,提高存储设备所存储的数据的质量,降低N个目标区块的区块信息所占用的空间;且,通过采用日志过滤的方式,可以从N个目标区块的配置信息中进行过滤,从而可以提高过滤的准确性。
进一步地,对6个目标区块的第二区块信息过滤得到6个目标区块(区块103~区块106)的第二区块信息后,可以将6个目标区块的第二区块信息存储在存储设备中,此时,存储设备中可以存储有区块101~区块106,因此,可以将存储设备已存储的历史区块的最大块高更新为6(即区块106的块高)。如此,区块链与存储设备的数据同步过程即已执行完毕。
下面从另一个角度对本发明实施例的基于区块链系统的数据处理方法进行详细说明。
图3为本发明实施例提供的一种基于区块链系统的数据处理方法的应用流程示意图,如图3所示,该方法包括:
步骤301,从区块链中获取当前时刻对应的最新区块的块高。
在一种可能的实现方式中,第一功能线程(也可以称为轮询线程)可以按照预设周期或者实时从区块链中获取当前时刻对应的最新区块的块高,轮询线程的优先级可以高于第二功能线程和第三功能线程。以预设周期为3s为例,具体实施中,轮询线程可以每3s向底层的RPC接口发送一次服务请求,该服务请求可以用于获取区块链的基本状态和信息;相应地,底层的RPC接口在接收到轮询线程发送的服务请求后,可以获取区块链的相关信息,并可以将获取到的区块链的相关信息发送给轮询线程。其中,区块链的相关信息可以包括当前区块链中最新区块的块高、预设数量的最新区块的散列值(比如HASH值)、预设数量的最新区块的生成时刻、区块链中多个节点的共识时间、共识周期、区块链中第一任务队列和第二任务队列中交易的数量等。
本发明实施例中,应用层中可以设置有用于存储区块链的相关信息的预设数据库,轮询线程在接收到区块链的相关信息后,可以检查区块链中当前时刻是否有增加的块高,即区块链中当前时刻的最新区块的块高是否大于上一次数据同步过程中区块链中的最新区块的块高。若确定区块链中当前时刻有新增加的区块高度,则可以根据区块链的相关信息更新应用层的预设数据库中存储的区块链的基本信息。其中,预设数据库可以设置在应用层的内部存储器中,比如硬盘中,或者也可以设置在存储设备中,具体不作限定。
在一个示例中,轮询线程对应的预设周期可以根据区块链中最近600次节点的历史共识周期来确定,比如可以为最近600次节点的历史共识周期的平均值。举例来说,在联盟链系统中,若节点的历史共识时间的平均值为1s,则最近600次节点的共识周期所占用的总时间可以为10分钟。本发明实施例中,区块链中节点的共识时间之间具有相关性,因此,可以使用区块链中节点的历史共识时间来预测当前节点的共识时间(即新区块的生成时间),通过使用节点的历史共识周期确定轮询线程对应的预设周期,一方面,可以减轻对区块链中交易执行过程的压力,减少等待的时间;另一方面,可以减少轮询线程与区块链的查询频率,从而在保证效率的同时保证时效。
需要说明的是,上述仅是一种示例性的简单说明,其所列举的轮询线程对应的预设周期仅是为了便于说明方案,并不构成对方案的限定,在具体实施中,轮询线程对应的预设周期可以由本领域技术人员根据实际情况或场景进行设置,具体不作限定。
步骤302,判断区块链中的交易任务是否拥堵,若确定区块链中的交易任务拥堵,则执行步骤303a,若确定区块链中的交易任务未拥堵,则执行步骤303b。
以当前时刻为第一时刻为例,本发明实施例中,从区块链中获取第一时刻对应的最新区块的块高时,还可以获取区块链中第一时刻发生的交易数量。具体地说,应用层在与底层通信时,可以通过底层中的远程过程调用(Remote Procedure Call,RPC)接口获取区块链的信息以及区块链中包括的区块的区块信息;其中,区块链的信息可以包括区块链当前的节点数量、区块链中当前发生的交易数量等,区块的区块信息可以包括区块的块高、区块的Hash值、区块中保存的交易的Hash值、用户的签名数据、用户的公钥、区块的数据量等。
上述技术方案中,若确定区块链中当前的交易任务存在堆积情况,则可以等待区块链中的交易任务执行完毕后,再进行数据同步。因此,采用本发明实施例中的数据同步方法,可以避免对区块链系统中底层的各个节点的正常共识过程造成干扰,从而可以保证区块链中交易任务的正常执行,实现区块链系统中底层的正常交易和正常出块。
进一步地,若确定第一时刻发生的交易数量小于或等于第三预设阈值,则可以说明区块链中在第一时刻发生的交易数量较少,区块链中的交易任务未发生拥堵,此时可以执行步骤303a。相应地,若确定第一时刻发生的交易数量大于第三预设阈值,则可以说明区块链中在第一时刻发生的交易数量较多,区块链中的交易任务发生拥堵,此时可以执行步骤303b。其中,第三预设阈值可以由本领域技术人员根据经验进行设置,具体不作限定。
在一种可能的实现方式中,区块链中可以设置有第一任务队列和第二任务队列,第一任务队列和第二任务队列中均可以用于存储第一时刻发生的交易,第二任务队列为第一任务队列的备用队列,若第一任务队列中存储的交易数量大于第一队列的容量,则第一时刻发生的交易除第一任务队列中存储交易以外的交易可以存储在第二任务队列中。具体实施中,可以获取第二交易队列在第一时刻时存储的交易,若确定第二交易队列在第一时刻时存储有交易,则可以确定区块链中的交易任务发生拥堵,若确定第二交易队列在第一时刻时未存储有交易,则可以确定区块链中的交易任务未发生拥堵。举例来说,若第一任务队列的容量为50,区块链在第一时刻时发生的交易数量为55,则区块链底层中的第一任务队列无法容纳55个交易,因此55个交易中的5个交易可以被存储在第二任务队列中,如此,可以确定区块链中的交易任务发生拥堵。
步骤303a,等待预设时间段后,执行步骤301。
本发明实施例中,若确定区块链中的交易任务发生拥堵,则可以暂停执行数据同步的任务,并可以等待第一预设时间段,以使区块链存储在第一时刻发生的交易。其中,第一预设时间段可以根据区块链中第一时刻之前发生的历史交易的共识时间确定。在一个示例中,第一预设时间段可以为最近历史区块的生成时刻与600个历史区块的平均共识时间的和。
需要说明的是,上述仅是一种示例性的简单说明,其所列举的历史区块的数量仅是为了便于说明方案,并不构成对方案的限定,在具体实施中,历史区块的数量可以由本领域技术人员根据经验进行设置,比如可以为300个或700个,具体不作限定。
进一步地,若区块链在第一预设时间段后处于第二时刻,则可以从区块链中获取第二时刻对应的最新区块的块高(即重新执行步骤301)和区块链中第二时刻发生的交易数量,若第二时刻发生的交易数量大于第二预设阈值,则可以等待第二预设时间段并重新执行步骤301。其中,第二预设时间段可以根据区块链中第二时刻之前发生的历史交易的共识时间确定。
步骤303b,从存储设备中获取历史区块的最大块高,并确定目标区块。
以第一时刻为例,若区块链中的交易任务未发生拥堵,则可以将步骤301中获取到的第一时刻对应的最新区块的块高作为最新区块的块高,并可以从存储设备中获取存储设备已存储的最新区块的块高。
进一步地,可以将区块链中块高位于最新区块的块高与最新区块的块高之间的区块作为目标区块,其中,目标区块中可以包括最新区块。
步骤304,判断是否有高优先级的查询任务插入,若确定有高优先级的查询任务插入,则执行步骤305a,若确定未有高优先级的查询任务插入,则执行步骤305b。
在一种可能的实现方式中,在确定目标区块后,生成至少两个线程之前,可以接收第一查询请求,第一查询请求中可以包括第一区块的块高。若确定第一区块的优先级高于目标区块的优先级,则可以确定有高优先级的查询任务插入,此时可以执行步骤305a;若确定第一区块的优先级低于目标区块的优先级,则可以确定未有高优先级的查询任务插入,此时可以执行步骤305b。
步骤305a,执行高优先级区块的数据同步及查询过程。
此处,若确定第一区块的优先级高于目标区块的优先级,则可以生成第二线程,并可以使用第二线程从区块链中获取第一区块的第一区块信息,将第一区块的第一区块信息存储在存储设备中。
具体实施中,若接收到高优先级的查询任务,则第二功能线程可以暂停数据同步的任务进度,优先处理所接收到的高优先级的查询任务。具体地说,应用层中可以预先设置有优先任务队列,若第二功能线程确定第一区块的优先级高于目标区块的优先级,则可以将第一区块的块高存储至优先任务队列中;相应地,第三功能线程在优先任务队列中获取到第一区块的块高后,可以执行第一区块的数据同步过程。进一步地,第二功能线程可以按照预设周期或者实时查第一区块的数据同步情况(即第三功能线程执行优先任务的情况),若确定第三功能线程对优先任务执行完成,则可以检查第一区块的数据同步的状态,并可以核验存储设备中存储的数据的完整性。若第二功能线程确定第一区块的数据同步正常,且存储设备中存储的数据完整,则可以返回查询响应消息,查询响应消息中可以包括第一区块的区块信息,并可以更新优先任务队列中存储的任务,比如可以将第一区块的块高从优先任务队列中删除,或者可以将优先任务队列中存储的第一区块标识为已同步。
本发明实施例中,若接收到优先级较高的区块的查询请求,则可以暂停当前的数据同步过程,等待优先级较高的区块查询完毕后,继续执行数据同步。由此可知,本发明实施例中的方法支持在数据同步的过程中执行数据查询任务,并可以合理安排数据查询与数据同步的执行过程,从而可以使得数据同步和数据查询的过程更加灵活。
步骤305b,判断目标区块的数量是否大于第一预设阈值,若确定目标区块的数量大于第一预设阈值,则执行步骤306a,若确定目标区块的数量小于或等于第一预设阈值,则执行步骤306b。
本发明实施例中,若确定未有高优先级的查询任务插入,则可以继续执行数据同步的过程。具体地说,可以将目标区块的数量与第一预设阈值进行对比,若确定目标区块的数量大于第一预设阈值,则说明区块链当前进行交易的数量较多,此时可以执行步骤306a;若确定目标区块的数量小于或等于第一预设阈值,则说明区块链当前进行交易的数量较少,区块链有足够的时间同步数据,此时可以执行步骤306b。
步骤306a,采用并行同步方式对目标区块进行同步。
步骤306b,采用串行同步方式对目标区块进行同步。
步骤307,检查区块同步的状态及存储设备中存储的区块的完整性。
本发明实施例中,步骤306a和步骤306b可以参照图2所示的步骤202中的过程进行实现,此处不再赘述。
针对图2和图3所示意的方法流程,本发明实施例还提供一种基于区块链系统的数据查询方法,该方法可以在图2或图3所示意的任一步骤中执行。
图4为本发明实施例提供的一种基于区块链系统的数据查询方法,如图4所示,该方法包括:
步骤401,接收第二查询请求。
此处,第二查询请求中可以包括待查询的区块的标识信息,比如待查询的区块的块高、待查询的区块的生成时刻等。
步骤402,按照预设规则获取待查询的区块的第一区块信息。
在一种可能的实现方式中,应用层中设置的预设数据库中可以存储有存储设备中已存储的区块的标识信息,还可以存储有区块链上包括的当期区块的标识信息。表2a和表2b分别为本发明实施例中提供的两种预设数据库的示意表。
表2a:预设数据库的一种示意
表2b:预设数据库的另一种示意
如表2a所示,预设数据库中存储的区块的标识信息可以为区块的块高,如表2b所示,预设数据库中存储的区块的标识信息可以为区块的生成时刻。表2a和表2b中均可以存储有存储设备已存储的区块的标识信息和区块链上当前包括的区块的标识信息,其中,存储设备已存储的区块可以为区块103和区块104,区块链上当前包括的区块可以为区块103、区块104、区块105、区块106、区块107和区块108。
本发明实施例中,预设规则可以包括多种,选取哪种预设规则执行查询操作可以由本领域技术人员根据经验确定,或者也可以由用户确定,具体不做限定。
下面分别通过四个示例具体描述本发明实施例中提供的基于区块链系统的四种数据查询方法,示例一~示例四分别使用第一预设规则~第四预设规则。
示例一
第一预设规则为直接从存储设备中获取待查询的区块的第一区块信息。具体地说,以区块的标识信息为块高为例,接收到查询系统发送的第三查询请求后,可以解析第三查询请求,获取第三查询请求中包括的第三区块的块高。若第三区块的块高为3,则根据表2a所示意的预设数据库中存储的区块的信息,可以确定存储设备中已存储有区块103的第一区块信息,因此,可以从存储设备中获取区块103的第一区块信息,发送给查询系统。相应地,若第三区块的块高为4。则根据预设数据库中存储的区块的信息,可以确定存储设备中未存储有区块104的第一区块信息,因此,可以向查询系统发送查询失败的消息。
示例二
第二预设规则为预先将区块链中的数据同步至存储设备,进而从存储设备中获取待查询的区块的第一区块信息。具体地说,以区块的标识信息为块高为例,接收到查询系统发送的第四查询请求后,可以执行步骤201~步骤203中的数据同步过程,如此,可以实现存储设备中已存储的区块与区块链上当前包括的区块相同。此时,应用层设置的预设数据库中所包括的区块的信息可以如表3所示。
表3:更新后的预设数据库的一种示意
进一步地,可以解析第四查询请求,获取第四查询请求中包括的第四区块的块高。若第四区块的块高为4,则根据预设数据库中存储的区块的信息,可以确定存储设备中已存储有区块103的第一区块信息,因此,可以从存储设备中获取区块104的第一区块信息,发送给查询系统。相应地,若第四区块的块高为9,则根据预设数据库中存储的区块的信息,可以确定存储设备中未存储有块高为9的区块的第一区块信息,即可以确定区块链中未存储有块高为9的区块的第一区块信息,因此,可以向查询系统发送查询失败的消息。
本发明实施中,若接收到数据查询请求,则可以在获取待查询的数据之前,执行存储设备与区块链的数据同步过程,从而可以使得实现数据同步后的存储设备上存储有待查询的数据,通过存储设备即可获取待查询的数据。
示例三
示例三中区块的标识信息可以为区块的块高,第三预设规则为根据待查询的区块的块高,预先确定存储设备中是否存储有待查询的区块,若确定存储设备中否存储有待查询的区块,则可以从存储设备中获取待查询的区块的第一区块信息;若确定存储设备中未存储有待查询的区块,则可以从区块链中获取待查询的区块的第一区块信息。
具体地说,接收到查询系统发送的第五查询请求后,可以解析第五查询请求,获取第五查询请求中包括的第五区块的块高。若第五区块的块高为5,则根据表2a所示意的预设数据库中存储的区块的信息,可以确定存储设备中未存储有区块102的第一区块信息,因此,可以从区块链中获取区块102的第一区块信息,将区块102的第一区块信息发送给查询系统;还可以将区块102的第一区块信息存储在存储设备中,并更新存储设备已存储的历史区块的最大块高(即预设数据库更新为表3)。相应地,若第五区块的块高为2,则根据表2a所示意的预设数据库中存储的区块的信息,可以确定存储设备中存储有区块102的第一区块信息,因此,可以从存储设备中获取区块102的第一区块信息,并可以将区块102的第一区块信息发送给查询系统。若第五区块的块高为9,则根据表2a所示意的预设数据库中存储的区块的信息,可以确定存储设备和区块链中均未存储有块高为9的区块的第一区块信息,因此,可以向查询系统发送查询失败的消息。
本发明实施例中,通过将待查询的区块的块高与存储设备中存储的历史区块的最大块高进行对比,可以确定存储设备中是否存储有待查询的区块;若确定存储设备上未存储有待查询的数据,则可以从区块链中获取待查询的数据,并将待查询的数据存储在存储设备中。采用本发明实施例中的方案,可以实现查询数据的准确性和灵活性。
示例四
示例四中区块的标识信息可以为区块的生成时刻,第四预设规则为根据待查询的区块的生成时刻,预先确定存储设备中是否存储有待查询的区块,若确定存储设备中否存储有待查询的区块,则可以从存储设备中获取待查询的区块的第一区块信息;若确定存储设备中未存储有待查询的区块,则可以从区块链中获取待查询的区块的第一区块信息。具体地说,若最大历史区块对应的生成时刻早于待查询的区块的生成时刻,则可以从区块链中获取生成时刻与待查询的区块的生成时刻相匹配的区块的第一区块信息,并将该区块的第一区块信息存储在存储设备中,更新存储设备已存储的历史区块的最大块高;若最大历史区块对应的生成时刻等于或晚于待查询的区块的生成时刻,则可以从存储设备中获取待查询区块的第一区块信息。
举例说明,接收到查询系统发送的第六查询请求后,可以解析第六查询请求,获取第六查询请求中包括的第三时刻。若第三时刻为2018.12.12.06.50.49,则根据表2a所示意的预设数据库中存储的区块的信息,可以确定存储设备中未存储有生成时刻为2018.12.12.06.50.49的区块的第一区块信息,因此,可以从区块链中获取生成时刻为2018.12.12.06.50.49的区块(即区块105)的第一区块信息,并可以将区块105的第一区块信息发送给查询系统;还可以将区块105的第一区块信息存储在存储设备中,并更新存储设备已存储的历史区块的最大块高。表4为更新后的一种预设数据库的示意表。
表4:更新后的预设数据库的一种示意
相应地,若第三时刻为2018.12.12.06.50.30,则根据表2a所示意的预设数据库中存储的区块的信息,可以确定存储设备中存储有生成时刻为2018.12.12.06.50.30的区块的第一区块信息,因此,可以从存储设备中获取生成时刻为2018.12.12.06.50.30的区块(即区块103)的第一区块信息,并可以将区块103的第一区块信息发送给查询系统。若第三时刻为2018.12.12.06.52.30,则根据表2a所示意的预设数据库中存储的区块的信息,可以确定存储设备和区块链中均未存储有生成时刻为2018.12.12.06.52.30的区块的第一区块信息,因此,可以向查询系统发送查询失败的消息。
本发明实施例中,通过将待查询的区块的生成时刻与存储设备中存储的历史区块的最大块高的生成时刻进行对比,可以确定存储设备中是否存储有待查询的区块;生成时刻可以用于标识一个区块,因此,采用本发明实施例中的技术方案,可以实现查询数据的准确性和灵活性。
需要说明的是,图2、图3和图4所示意的步骤编号仅为执行流程的一种示例,并不构成对各个步骤的执行先后顺序的限定。
针对上述方法流程,本发明实施例还提供一种基于区块链系统的数据处理装置,该装置的具体内容可以参照上述方法实施。
图5为本发明实施例提供的一种基于区块链系统的数据处理装置的结构示意图,包括:
获取模块501,用于从区块链中获取最新区块的块高以及从存储设备中获取所述存储设备已存储的历史区块的最大块高;
处理模块502,用于确定所述区块链中块高位于所述最新区块的块高和所述最大块高之间的N个目标区块,所述N个目标区块中包括所述最新区块;若所述N大于第一预设阈值,则生成至少两个线程,并使用所述至少两个线程从所述区块链中获取所述N个目标区块的第一区块信息;其中,N≥2;
同步模块503,用于将所述N个目标区块的第一区块信息存储在所述存储设备中,并更新所述存储设备已存储的历史区块的最大块高。
可选地,所述处理模块502还用于:
若所述N小于或等于所述第一预设阈值,则生成第一线程,并使用第一线程按照所述N个目标区块的预设顺序依次获取所述N个目标区块的第一区块信息;所述N个目标区块的预设顺序为根据所述N个目标区块的块高或者所述N个目标区块的优先级确定的。
可选地,所述获取模块501用于:
从所述区块链中获取第一时刻对应的最新区块的块高和所述区块链中第一时刻发生的交易数量;
若所述第一时刻发生的交易数量小于或等于第二预设阈值,则将所述第一时刻对应的最新区块的块高作为所述最新区块的块高;若所述交易数量大于所述第二预设阈值,则在等待预设时间段后,从所述区块链中获取第二时刻对应的最新区块的块高和所述区块链中第二时刻发生的交易数量,若所述第二时刻发生的交易数量小于或等于所述第二预设阈值,则将所述第二时刻对应的最新区块的块高作为所述最新区块的块高;
其中,所述预设时间段是根据所述区块链中所述第一时刻之前发生的历史交易的共识时间确定的。
可选地,所述处理模块502还用于:
接收第一查询请求,所述第一查询请求包括第一区块的块高;
若所述第一查询信息的优先级高于所述N个目标区块的优先级,则生成第二线程,并使用第二线程从所述区块链中获取所述第一区块的第一区块信息,将所述第一区块的第一区块信息存储在所述存储设备中。
可选地,所述同步模块503用于:
对所述N个目标区块的第一区块信息进行压缩得到目标信息,将所述目标信息传输给所述存储设备中;
若确定所述存储设备接收到所述目标信息,则对所述目标信息进行解析,得到所述N个目标区块的第一区块信息,并将所述N个目标区块的第一区块信息存储在所述存储设备中。
可选地,所述同步模块503用于:
按照预设过滤规则对所述N个目标区块的第一区块信息进行过滤,得到所述N个目标区块的第二区块信息;所述预设过滤规则包括以下任意一项或任意多项:过滤全部日志、过滤冗余日志、过滤日志中的预设字段;
将所述N个目标区块的第二区块信息存储在所述存储设备中。
可选地,所述获取模块501还用于:
从区块链中获取最新区块的块高以及从存储设备中获取所述存储设备已存储的历史区块的最大块高之前,接收第二查询请求;所述第二查询请求中包括第二区块的块高;以及,
更新所述存储设备已存储的历史区块的最大块高之后,从所述存储设备中获取所述第二区块的第一区块信息。
可选地,所述获取模块501还用于:
获取第三查询请求,所述第三查询请求中包括第三区块的块高;
若所述历史区块的最大块高小于所述第三区块的块高,则从所述区块链中获取所述第三区块的第一区块信息,并将所述第三区块的第一区块信息存储在所述存储设备中,更新所述存储设备已存储的历史区块的最大块高;若所述历史区块的最大块高大于或等于所述第三区块的块高,则从所述存储设备中获取所述第三区块的第一区块信息。
可选地,所述获取模块501还用于:
获取第四查询请求,所述第四查询请求中包括第三时刻;
从所述存储设备中获取所述最大历史区块对应的生成时刻;
若所述最大历史区块对应的生成时刻早于所述第三时刻,则从所述区块链中获取生成时刻与所述第三时刻相匹配的第四区块的第一区块信息,并将第四区块的第一区块信息存储在所述存储设备中,更新所述存储设备已存储的历史区块的最大块高;若所述最大历史区块对应的生成时刻等于或晚于所述第三时刻,则从所述存储设备中获取生成时刻与所述第三时刻相匹配的所述第四区块的第一区块信息。
从上述内容可以看出:本发明的上述实施例中,从区块链中获取最新区块的块高以及从存储设备中获取存储设备已存储的历史区块的最大块高,并确定区块链中块高位于最新区块的块高和最大块高之间的N个目标区块,若N大于第一预设阈值,则生成至少两个线程,并使用至少两个线程从区块链中获取N个目标区块的第一区块信息,进而将N个目标区块的第一区块信息存储在存储设备中,并更新存储设备已存储的历史区块的最大块高。本发明实施例通过采用多个线程实现数据同步,可以将区块链上的目标区块的区块信息快速同步至存储设备中,从而减少数据同步所耗费的时间,相比于现有技术每次仅同步一个区块的区块信息的方式来说,可以提高区块链与存储设备之间数据同步的效率。
基于同一发明构思,本发明实施例提供的一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如上述图2所述的数据处理方法。
基于同一发明构思,本发明实施例提供的一种计算机程序产品,当其在计算机上运行时,使得计算机执行如上述图2所述的方法。
基于相同的技术构思,本发明实施例提供了一种终端设备,如图6所示,包括至少一个处理器1101,以及与至少一个处理器连接的存储器1102,本发明实施例中不限定处理器1101与存储器1102之间的具体连接介质,图6中处理器1101和存储器1102之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本发明实施例中,存储器1102存储有可被至少一个处理器1101执行的指令,至少一个处理器1101通过执行存储器1102存储的指令,可以执行前述的交互式运维的方法中所包括的步骤。
其中,处理器1101是终端设备的控制中心,可以利用各种接口和线路连接终端设备的各个部分,通过运行或执行存储在存储器1102内的指令以及调用存储在存储器1102内的数据,从而实现数据处理。可选的,处理器1101可包括一个或多个处理单元,处理器1101可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理运维人员下发的指令。可以理解的是,上述调制解调处理器也可以不集成到处理器1101中。在一些实施例中,处理器1101和存储器1102可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器1101可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合交互式运维的实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器1102作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器1102可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器1102是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器1102还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于相同的技术构思,本发明实施例提供了一种后端设备,如图7所示,包括至少一个处理器1201,以及与至少一个处理器连接的存储器1202,本发明实施例中不限定处理器1201与存储器1202之间的具体连接介质,图7中处理器1201和存储器1202之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本发明实施例中,存储器1202存储有可被至少一个处理器1201执行的指令,至少一个处理器1201通过执行存储器1202存储的指令,可以执行前述的交互式运维的方法中所包括的步骤。
其中,处理器1201是终端设备的控制中心,可以利用各种接口和线路连接后端设备的各个部分,通过运行或执行存储在存储器1202内的指令以及调用存储在存储器1202内的数据,从而实现数据处理。可选的,处理器1201可包括一个或多个处理单元,处理器1201可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、应用程序等,调制解调处理器主要对接收到的指令进行解析以及对接收到的结果进行解析。可以理解的是,上述调制解调处理器也可以不集成到处理器1201中。在一些实施例中,处理器1201和存储器1202可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器1201可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合交互式运维的实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器1202作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器1202可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器1202是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器1202还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (20)
1.一种基于区块链系统的数据处理方法,其特征在于,所述方法包括:
从区块链中获取最新区块的块高以及从存储设备中获取所述存储设备已存储的历史区块的最大块高;
确定所述区块链中块高位于所述最新区块的块高和所述最大块高之间的N个目标区块,所述N个目标区块中包括所述最新区块;若所述N大于第一预设阈值,则生成至少两个线程,并使用所述至少两个线程从所述区块链中获取所述N个目标区块的第一区块信息;其中,N≥2;
将所述N个目标区块的第一区块信息存储在所述存储设备中,并更新所述存储设备已存储的历史区块的最大块高。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述N小于或等于所述第一预设阈值,则生成第一线程,并使用第一线程按照所述N个目标区块的预设顺序依次获取所述N个目标区块的第一区块信息;所述N个目标区块的预设顺序为根据所述N个目标区块的块高或者所述N个目标区块的优先级确定的。
3.根据权利要求1所述的方法,其特征在于,所述从区块链中获取最新区块的块高,包括:
从所述区块链中获取第一时刻对应的最新区块的块高和所述区块链中第一时刻发生的交易数量;
若所述第一时刻发生的交易数量小于或等于第二预设阈值,则将所述第一时刻对应的最新区块的块高作为所述最新区块的块高;若所述交易数量大于所述第二预设阈值,则在等待预设时间段后,从所述区块链中获取第二时刻对应的最新区块的块高和所述区块链中第二时刻发生的交易数量,若所述第二时刻发生的交易数量小于或等于所述第二预设阈值,则将所述第二时刻对应的最新区块的块高作为所述最新区块的块高;
其中,所述预设时间段是根据所述区块链中所述第一时刻之前发生的历史交易的共识时间确定的。
4.根据权利要求3所述的方法,其特征在于,所述确定所述区块链中块高位于所述最新区块的块高和所述最大块高之间的N个目标区块之后,使用所述至少两个线程从所述区块链中获取所述N个目标区块的第一区块信息之前,还包括:
接收第一查询请求,所述第一查询请求包括第一区块的块高;
若所述第一查询信息的优先级高于所述N个目标区块的优先级,则生成第二线程,并使用第二线程从所述区块链中获取所述第一区块的第一区块信息,将所述第一区块的第一区块信息存储在所述存储设备中。
5.根据权利要求1所述的方法,其特征在于,所述将所述N个目标区块的第一区块信息存储在所述存储设备中,包括:
对所述N个目标区块的第一区块信息进行压缩得到目标信息,将所述目标信息传输给所述存储设备中;
若确定所述存储设备接收到所述目标信息,则对所述目标信息进行解析,得到所述N个目标区块的第一区块信息,并将所述N个目标区块的第一区块信息存储在所述存储设备中。
6.根据权利要求5所述的方法,其特征在于,所述得到所述N个目标区块的第一区块信息之后,将所述N个目标区块的第一区块信息存储在所述存储设备之前,还包括:
按照预设过滤规则对所述N个目标区块的第一区块信息进行过滤,得到所述N个目标区块的第二区块信息;所述预设过滤规则包括以下任意一项或任意多项:过滤全部日志、过滤冗余日志、过滤日志中的预设字段;
将所述N个目标区块的第二区块信息存储在所述存储设备中。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述从区块链中获取最新区块的块高以及从存储设备中获取所述存储设备已存储的历史区块的最大块高之前,还包括:
接收第二查询请求,所述第二查询请求中包括第二区块的块高;
所述更新所述存储设备已存储的历史区块的最大块高之后,还包括:
从所述存储设备中获取所述第二区块的第一区块信息。
8.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
获取第三查询请求,所述第三查询请求中包括第三区块的块高;
若所述历史区块的最大块高小于所述第三区块的块高,则从所述区块链中获取所述第三区块的第一区块信息,并将所述第三区块的第一区块信息存储在所述存储设备中,更新所述存储设备已存储的历史区块的最大块高;若所述历史区块的最大块高大于或等于所述第三区块的块高,则从所述存储设备中获取所述第三区块的第一区块信息。
9.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
获取第四查询请求,所述第四查询请求中包括第三时刻;
从所述存储设备中获取所述最大历史区块对应的生成时刻;
若所述最大历史区块对应的生成时刻早于所述第三时刻,则从所述区块链中获取生成时刻与所述第三时刻相匹配的第四区块的第一区块信息,并将第四区块的第一区块信息存储在所述存储设备中,更新所述存储设备已存储的历史区块的最大块高;若所述最大历史区块对应的生成时刻等于或晚于所述第三时刻,则从所述存储设备中获取所述第四区块的第一区块信息。
10.一种基于区块链系统的数据处理装置,其特征在于,所述装置包括:
获取模块,用于从区块链中获取最新区块的块高以及从存储设备中获取所述存储设备已存储的历史区块的最大块高;
处理模块,用于确定所述区块链中块高位于所述最新区块的块高和所述最大块高之间的N个目标区块,所述N个目标区块中包括所述最新区块;若所述N大于第一预设阈值,则生成至少两个线程,并使用所述至少两个线程从所述区块链中获取所述N个目标区块的第一区块信息;其中,N≥2;
同步模块,用于将所述N个目标区块的第一区块信息存储在所述存储设备中,并更新所述存储设备已存储的历史区块的最大块高。
11.根据权利要求10所述的装置,其特征在于,所述处理模块还用于:
若所述N小于或等于所述第一预设阈值,则生成第一线程,并使用第一线程按照所述N个目标区块的预设顺序依次获取所述N个目标区块的第一区块信息;所述N个目标区块的预设顺序为根据所述N个目标区块的块高或者所述N个目标区块的优先级确定的。
12.根据权利要求10所述的装置,其特征在于,所述获取模块用于:
从所述区块链中获取第一时刻对应的最新区块的块高和所述区块链中第一时刻发生的交易数量;
若所述第一时刻发生的交易数量小于或等于第二预设阈值,则将所述第一时刻对应的最新区块的块高作为所述最新区块的块高;若所述交易数量大于所述第二预设阈值,则在等待预设时间段后,从所述区块链中获取第二时刻对应的最新区块的块高和所述区块链中第二时刻发生的交易数量,若所述第二时刻发生的交易数量小于或等于所述第二预设阈值,则将所述第二时刻对应的最新区块的块高作为所述最新区块的块高;
其中,所述预设时间段是根据所述区块链中所述第一时刻之前发生的历史交易的共识时间确定的。
13.根据权利要求12所述的装置,其特征在于,所述处理模块还用于:
接收第一查询请求,所述第一查询请求包括第一区块的块高;
若所述第一查询信息的优先级高于所述N个目标区块的优先级,则生成第二线程,并使用第二线程从所述区块链中获取所述第一区块的第一区块信息,将所述第一区块的第一区块信息存储在所述存储设备中。
14.根据权利要求10所述的装置,其特征在于,所述同步模块用于:
对所述N个目标区块的第一区块信息进行压缩得到目标信息,将所述目标信息传输给所述存储设备中;
若确定所述存储设备接收到所述目标信息,则对所述目标信息进行解析,得到所述N个目标区块的第一区块信息,并将所述N个目标区块的第一区块信息存储在所述存储设备中。
15.根据权利要求14所述的装置,其特征在于,所述同步模块用于:
按照预设过滤规则对所述N个目标区块的第一区块信息进行过滤,得到所述N个目标区块的第二区块信息;所述预设过滤规则包括以下任意一项或任意多项:过滤全部日志、过滤冗余日志、过滤日志中的预设字段;
将所述N个目标区块的第二区块信息存储在所述存储设备中。
16.根据权利要求10至15中任一项所述的装置,其特征在于,所述获取模块还用于:
从区块链中获取最新区块的块高以及从存储设备中获取所述存储设备已存储的历史区块的最大块高之前,接收第二查询请求;所述第二查询请求中包括第二区块的块高;以及,更新所述存储设备已存储的历史区块的最大块高之后,从所述存储设备中获取所述第二区块的第一区块信息。
17.根据权利要求10至15中任一项所述的装置,其特征在于,所述获取模块还用于:
获取第三查询请求,所述第三查询请求中包括第三区块的块高;
若所述历史区块的最大块高小于所述第三区块的块高,则从所述区块链中获取所述第三区块的第一区块信息,并将所述第三区块的第一区块信息存储在所述存储设备中,更新所述存储设备已存储的历史区块的最大块高;若所述历史区块的最大块高大于或等于所述第三区块的块高,则从所述存储设备中获取所述第三区块的第一区块信息。
18.根据权利要求10至15中任一项所述的装置,其特征在于,所述获取模块还用于:
获取第四查询请求,所述第四查询请求中包括第三时刻;
从所述存储设备中获取所述最大历史区块对应的生成时刻;
若所述最大历史区块对应的生成时刻早于所述第三时刻,则从所述区块链中获取生成时刻与所述第三时刻相匹配的第四区块的第一区块信息,并将第四区块的第一区块信息存储在所述存储设备中,更新所述存储设备已存储的历史区块的最大块高;若所述最大历史区块对应的生成时刻等于或晚于所述第三时刻,则从所述存储设备中获取生成时刻与所述第三时刻相匹配的所述第四区块的第一区块信息。
19.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至9任一项所述的方法。
20.一种计算机程序产品,其特征在于,当其在计算机上运行时,使得计算机执行如权利要求1至9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910221012.XA CN110008206A (zh) | 2019-03-22 | 2019-03-22 | 一种基于区块链系统的数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910221012.XA CN110008206A (zh) | 2019-03-22 | 2019-03-22 | 一种基于区块链系统的数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110008206A true CN110008206A (zh) | 2019-07-12 |
Family
ID=67167751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910221012.XA Pending CN110008206A (zh) | 2019-03-22 | 2019-03-22 | 一种基于区块链系统的数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110008206A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110599321A (zh) * | 2019-09-20 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 税务数据处理方法、装置、服务器及存储介质 |
CN110609872A (zh) * | 2019-09-20 | 2019-12-24 | 北京海益同展信息科技有限公司 | 用于同步节点数据的方法和装置 |
CN111475575A (zh) * | 2020-04-09 | 2020-07-31 | 腾讯科技(深圳)有限公司 | 基于区块链的数据同步方法、装置及计算机可读存储介质 |
CN111787059A (zh) * | 2020-05-28 | 2020-10-16 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 追块同步方法、装置、电子设备及计算机存储介质 |
CN112765137A (zh) * | 2021-04-07 | 2021-05-07 | 暗链科技(深圳)有限公司 | 基于区块分布式区块链的区块同步方法及电子设备 |
WO2022095346A1 (zh) * | 2020-11-06 | 2022-05-12 | 苏州浪潮智能科技有限公司 | 一种区块链数据存储方法、系统、设备及可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170132621A1 (en) * | 2015-11-06 | 2017-05-11 | SWFL, Inc., d/b/a "Filament" | Systems and methods for autonomous device transacting |
CN108600353A (zh) * | 2018-04-12 | 2018-09-28 | 北京天德科技有限公司 | 一种区块链节点的并行块同步方法 |
US20180285412A1 (en) * | 2017-03-29 | 2018-10-04 | Alibaba Group Holding Limited | Method, apparatus, and system for blockchain consensus |
CN108876331A (zh) * | 2018-05-25 | 2018-11-23 | 全链通有限公司 | 区块链交易对账代理节点及其信息同步方法 |
CN108960794A (zh) * | 2018-07-14 | 2018-12-07 | 上海分布信息科技有限公司 | 一种区块生成方法及区块生成系统 |
CN108985757A (zh) * | 2017-11-27 | 2018-12-11 | 北京京东金融科技控股有限公司 | 信息处理方法、装置及系统、存储介质、电子设备 |
CN109086325A (zh) * | 2018-06-29 | 2018-12-25 | 阿里巴巴集团控股有限公司 | 基于区块链的数据处理方法和装置 |
CN109165229A (zh) * | 2018-08-23 | 2019-01-08 | 北京京东金融科技控股有限公司 | 本地区块同步的检验方法、装置、设备及存储介质 |
-
2019
- 2019-03-22 CN CN201910221012.XA patent/CN110008206A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170132621A1 (en) * | 2015-11-06 | 2017-05-11 | SWFL, Inc., d/b/a "Filament" | Systems and methods for autonomous device transacting |
US20180285412A1 (en) * | 2017-03-29 | 2018-10-04 | Alibaba Group Holding Limited | Method, apparatus, and system for blockchain consensus |
CN108985757A (zh) * | 2017-11-27 | 2018-12-11 | 北京京东金融科技控股有限公司 | 信息处理方法、装置及系统、存储介质、电子设备 |
CN108600353A (zh) * | 2018-04-12 | 2018-09-28 | 北京天德科技有限公司 | 一种区块链节点的并行块同步方法 |
CN108876331A (zh) * | 2018-05-25 | 2018-11-23 | 全链通有限公司 | 区块链交易对账代理节点及其信息同步方法 |
CN109086325A (zh) * | 2018-06-29 | 2018-12-25 | 阿里巴巴集团控股有限公司 | 基于区块链的数据处理方法和装置 |
CN108960794A (zh) * | 2018-07-14 | 2018-12-07 | 上海分布信息科技有限公司 | 一种区块生成方法及区块生成系统 |
CN109165229A (zh) * | 2018-08-23 | 2019-01-08 | 北京京东金融科技控股有限公司 | 本地区块同步的检验方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
DANZI PIETRO;KALOR ANDERSELLERSGAARD;STEFANOVIC CEDOMIR ET AL.: "Analysis of the Communication Traffic for Blockchain Synchronization of IoT Devices", 2018 IEEE INTERNATIONAL CONFERENCE ON COMMUNICATIONS (ICC), 5 February 2019 (2019-02-05), pages 1 - 7 * |
郝琨;信俊昌;黄达;王国仁;: "去中心化的分布式存储模型", 计算机工程与应用, no. 24, 15 December 2017 (2017-12-15), pages 1 - 7 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110599321A (zh) * | 2019-09-20 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 税务数据处理方法、装置、服务器及存储介质 |
CN110609872A (zh) * | 2019-09-20 | 2019-12-24 | 北京海益同展信息科技有限公司 | 用于同步节点数据的方法和装置 |
CN110609872B (zh) * | 2019-09-20 | 2021-03-05 | 北京海益同展信息科技有限公司 | 用于同步节点数据的方法和装置 |
CN110599321B (zh) * | 2019-09-20 | 2023-09-29 | 腾讯科技(深圳)有限公司 | 税务数据处理方法、装置、服务器及存储介质 |
CN111475575A (zh) * | 2020-04-09 | 2020-07-31 | 腾讯科技(深圳)有限公司 | 基于区块链的数据同步方法、装置及计算机可读存储介质 |
CN111475575B (zh) * | 2020-04-09 | 2021-08-10 | 腾讯科技(深圳)有限公司 | 基于区块链的数据同步方法、装置及计算机可读存储介质 |
CN111787059A (zh) * | 2020-05-28 | 2020-10-16 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 追块同步方法、装置、电子设备及计算机存储介质 |
CN111787059B (zh) * | 2020-05-28 | 2023-03-03 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 追块同步方法、装置、电子设备及计算机存储介质 |
WO2022095346A1 (zh) * | 2020-11-06 | 2022-05-12 | 苏州浪潮智能科技有限公司 | 一种区块链数据存储方法、系统、设备及可读存储介质 |
CN112765137A (zh) * | 2021-04-07 | 2021-05-07 | 暗链科技(深圳)有限公司 | 基于区块分布式区块链的区块同步方法及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110008206A (zh) | 一种基于区块链系统的数据处理方法及装置 | |
US20230109969A1 (en) | Data processing method and apparatus based on node internal memory, device and medium | |
CN110737664A (zh) | 一种区块链节点同步的方法及装置 | |
CN110708196B (zh) | 数据处理方法及装置 | |
CN111026767B (zh) | 区块链的数据存储方法、装置及硬件设备 | |
JP7438603B2 (ja) | トランザクション処理方法、装置、コンピュータデバイス及びコンピュータプログラム | |
CN109815344B (zh) | 基于参数共享的网络模型训练系统、方法、装置和介质 | |
CN112559637B (zh) | 基于分布式存储的数据处理方法、装置、设备以及介质 | |
CN111163148B (zh) | 一种区块链系统的共识状态的同步方法及相关设备 | |
CN110704438B (zh) | 一种区块链中布隆过滤器的生成方法及装置 | |
CN105119997A (zh) | 云计算系统的数据处理方法 | |
CN110784498B (zh) | 一种个性化数据容灾方法及装置 | |
CN110930152B (zh) | 一种基于区块链的数据处理方法及相关设备 | |
CN114422331B (zh) | 容灾切换方法、装置及系统 | |
CN110019231A (zh) | 一种并行数据库动态关联的方法及节点 | |
CN113064764A (zh) | 在区块链系统中执行区块的方法及装置 | |
CN103905512B (zh) | 一种数据处理方法和设备 | |
CN111400399B (zh) | 区块链系统的账本同步方法、装置及硬件设备 | |
WO2024113956A1 (zh) | 节点选取方法、装置、第一节点、存储介质及程序产品 | |
CN113157450A (zh) | 在区块链系统中执行区块的方法及装置 | |
CN111651522A (zh) | 一种数据同步方法及装置 | |
CN110879900A (zh) | 一种基于区块链系统的数据处理方法及装置 | |
CN111339089B (zh) | 一种应用于区块链的数据存储与获取方法及装置 | |
CN109376141A (zh) | 一种数据迁移方法和装置 | |
CN114679406B (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 |