一种基于区块链系统的数据处理方法及装置制造方法及图纸

技术编号:21605391 阅读:28 留言:0更新日期:2019-07-13 18:10
本发明专利技术实施例公开了一种基于区块链系统的数据处理方法及装置,其中方法包括:从区块链中获取最新区块的块高以及从存储设备中获取历史区块的最大块高,确定区块链中块高位于最新区块的块高和最大块高之间的N个目标区块;若N大于第一预设阈值,则使用至少两个线程从区块链中获取N个目标区块的第一区块信息,并存储在存储设备中,更新历史区块的最大块高。本发明专利技术实施例中,通过采用多个线程进行数据同步,可以将区块链上的目标区块的区块信息快速同步至存储设备中,从而可以提高区块链与存储设备之间数据同步的效率,使得基于区块链系统的数据同步和数据查询的过程更加灵活。

A Data Processing Method and Device Based on Block Chain System

【技术实现步骤摘要】
一种基于区块链系统的数据处理方法及装置
本专利技术涉及金融科技(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个目标区块的配置信息中进行过滤,从而可以提高过滤的准确性。可选地,所述从区块链中获取最新区块的块高以及从存储设备中获取所述存储设备已存储的历史区块的最大块高之前,还包括:接收第二查询请求,所述第二查询请求中包括第二区块的块高;所述更新所述存储设备已存储的历史区块的最大块高之后,还包括:从所述存储设备中获取所述第二区块的第一区块本文档来自技高网
...

【技术保护点】
1.一种基于区块链系统的数据处理方法,其特征在于,所述方法包括:从区块链中获取最新区块的块高以及从存储设备中获取所述存储设备已存储的历史区块的最大块高;确定所述区块链中块高位于所述最新区块的块高和所述最大块高之间的N个目标区块,所述N个目标区块中包括所述最新区块;若所述N大于第一预设阈值,则生成至少两个线程,并使用所述至少两个线程从所述区块链中获取所述N个目标区块的第一区块信息;其中,N≥2;将所述N个目标区块的第一区块信息存储在所述存储设备中,并更新所述存储设备已存储的历史区块的最大块高。

【技术特征摘要】
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.一种基于区块链系统的...

【专利技术属性】
技术研发人员:毛嘉宇范瑞彬张开翔张龙
申请(专利权)人:深圳前海微众银行股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1