区块链中孤块数据的同步方法、系统及存储介质技术方案

技术编号:23983563 阅读:50 留言:0更新日期:2020-04-29 12:27
本申请涉及区块链技术领域,具体涉及一种区块链中孤块数据的同步方法、系统及存储介质,包括以下步骤:步骤1、数据同步模块根据区块高度配置信息获取区块链当前所有区块的数据;步骤2、孤块检测模块判断已经同步的区块数据中是否出现孤块并修改所述区块高度配置信息;步骤3、孤块分析模块从已经同步的区块数据中找出所有孤块的哈希值;重复执行上述步骤1至步骤3,实现孤块数据的持续同步。本申请的方法可自动检测孤块发生事件并自动修复同步,同时保留了孤块的数据不仅可以提高数据同步的效率,也可以提供主链数据和侧链数据的查询,应用更加广泛。

Synchronization method, system and storage medium of isolated block data in blockchain

【技术实现步骤摘要】
区块链中孤块数据的同步方法、系统及存储介质
本申请涉及区块链
,具体涉及一种区块链中孤块数据的同步方法、系统及存储介质。
技术介绍
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性和生成下一个区块。由于区块链去中心化的特性,其无法提供一个中心化的服务来查询每个用户的余额、历史记录或浏览链上的数据信息。在这种情况下,通常是由同步工具负责获取并分析区块链上每个区块的数据,比如区块头,交易,地址流水等信息,将其保存到关系数据库中,方便其他区块链应用从各个维度查询区块链中的数据,或批量查询区块链中的数据并进行分组统计等操作。这里的区块链应用可以是钱包类应用,也可以是区块链浏览器应用等。在区块链的区块生成过程中,不同节点有可能在短时间内同时生成下一个区块并广播到区块链上,其它节点会在最先收到的区块基础上继续工作,这样就使得区块链在同一个高度上出现了不同的下一区块,区块链发生短暂的分叉。随着后续区块的不断产生,区块链会按照最长链原则,将最长的分叉链作为主链,所有节点在此基础上继续工作,而被放弃的分叉链接都成为了侧链,侧链上的区块称为孤块。对于区块链数据同步工具而言,当其在同步区块数据的时候,并无法知道该区块后续是否会被其他的最长链所替代,可能会出现之前已经同步的区块数据变成了孤块,而主链区块数据还未同步的情况。这时就需要区块链同步工具将已经保存到数据库的侧链上的区块数据信息替换为主链上的区块数据信息。目前区块链同步工具在对区块链孤块同步的处理上主要存在以下几个问题:1.需要开发人员人工判断孤块发生事件,缺乏自动修复方法,需要停止同步程序修复孤块数据,缺乏时效性和便利性,导致服务在较长时间服务的数据不对;2.在大区块的情况下,关系数据库中的数据快速增长,删除操作会非常慢,影响后续的同步进度;3.侧链上的区块中发生的交易历史事件,无法查询做进一步分析。
技术实现思路
本专利技术的目的之一在于克服以上缺点,提供一种区块链中孤块数据的同步方法,既能实现区块链中孤块数据的自动同步获取,同时提高同步效率,应用场景更广泛。为了解决上述技术问题,本专利技术提供了一种区块链中孤块数据的同步方法,包括以下步骤:步骤1、数据同步模块根据区块高度配置信息获取区块链当前所有区块的数据;步骤2、孤块检测模块判断已经同步的区块数据中是否出现孤块并修改所述区块高度配置信息;步骤3、孤块分析模块从已经同步的区块数据中找出所有孤块的哈希值;重复执行上述步骤1至步骤3,实现孤块数据的持续同步。本申请的技术方案中,孤块检测模块判断区块链中是否出现分叉并动态更新区块高度配置信息,自动检测孤块发生事件并修复,无需人工干预;数据同步模块与孤块检测模块并行工作,根据区块高度配置信息同步区块数据信息,可实现区块链数据的主链数据和侧链孤块数据的自动全量同步。进一步地,所述的区块链中孤块数据的同步方法,还包括以下步骤:步骤4、数据浏览模块根据所述孤块的哈希值检索并展示区块链的主链数据和/或侧链数据。本申请技术方案无需删除已经同步的孤块的数据,一方面,减少了大量数据删除的时间,提高了数据同步的效率,另一方面,也为侧链上的孤块数据的展示,区块链孤链频率分析等应用提供了数据基础。进一步地,所述区块高度配置信息包括:第一配置信息和第二配置信息。进一步地,所述“数据同步模块根据区块高度配置信息获取区块链当前所有区块的数据”,包括以下步骤:步骤11、初始化所述第一配置信息和所述第二配置信息;步骤12、获取区块链的最大区块高度;步骤13、判断区块链的最大区块高度是否大于所述第二配置信息中的最大区块高度,若是,跳转至步骤15继续执行,否则执行步骤14;步骤14、等待设定的时间后,跳转至步骤12继续执行;步骤15、设置当前同步的区块高度值为所述第二配置信息中的最大区块高度加1;步骤16、将当前同步的区块高度值配置到所述第一配置信息中;步骤17、采集当前同步的区块高度值对应的区块数据;步骤18、将当前同步区块高度值配置到所述第二配置信息中,跳转至步骤13继续执行。进一步地,所述“孤块检测模块判断已经同步的区块数据中是否出现孤块并修改所述区块高度配置信息”,包括以下步骤:步骤21、判断已经同步的区块数据中指定数量个最新区块的哈希值与区块链中对应高度区块的哈希值是否完全一致,若完全一致,则跳转至步骤24继续执行,否则执行步骤22;步骤22、取哈希值不一致的最小区块高度值;步骤23、从所述第一配置信息和所述第二配置信息中分别删除大等于所述最小区块高度值的配置信息;步骤24、等待设定的时间后,跳转至步骤21继续执行。进一步地,所述“孤块分析模块从已经同步的区块数据中找出所有孤块的哈希值”,包括以下步骤:步骤31、从已经同步的区块数据中找出区块个数大等于两个的区块高度值的集合;步骤32、按照从小到大的顺序选取所述集合中的一个区块高度值,获取该区块高度值对应的所有区块;步骤33、针对该区块高度值对应的每个区块,通过递归的方式分别计算以该区块为根节点的树的深度;步骤34、将所有树中最大深度路径之外的区块标识为孤块并记录孤块的哈希值;遍历所述集合中所有的区块高度值,重复执行步骤32至步骤34,得到所有的孤块哈希值;步骤35、等待设定的时间后,跳转至步骤31继续执行。进一步地,所述步骤34还包括:将区块成熟度在设定参数值以上的孤块的哈希值保存至孤块缓冲区;所述步骤31具体为:从已经同步且不在所述孤块缓冲区的区块数据中找出区块个数大等于两个的区块高度值的集合。通过设置孤块缓冲区,在重复执行孤块分析的时候,排除已经确定且不会发生变化的孤块,只需要分析最新生成的其余区块,不用每次全量分析,进一步提高了分析效率。相应地,本申请还提供了一种区块链中孤块数据的同步系统,包括数据同步模块、孤块检测模块以及孤块分析模块,其中,数据同步模块,用于根据区块高度配置信息获取区块链当前所有区块的数据;孤块检测模块,用于判断已经同步的区块数据中是否出现孤块并修改所述区块高度配置信息;孤块分析模块,用于从已经同步的区块数据中找出所有孤块的哈希值。进一步地,所述的区块链中孤块数据的同步系统,还包括:数据浏览模块,用于根据所述孤块的哈希值检索并展示区块链的主链数据和/或侧链数据。相应地,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如权利要求1至权利要求7任一项所述的步骤。区别于现有技术,本专利技术技术方案的有益效果有:1.孤块检本文档来自技高网
...

【技术保护点】
1.一种区块链中孤块数据的同步方法,其特征在于,包括以下步骤:/n步骤1、数据同步模块根据区块高度配置信息获取区块链当前所有区块的数据;/n步骤2、孤块检测模块判断已经同步的区块数据中是否出现孤块并修改所述区块高度配置信息;/n步骤3、孤块分析模块从已经同步的区块数据中找出所有孤块的哈希值;/n重复执行上述步骤1至步骤3,实现孤块数据的持续同步。/n

【技术特征摘要】
1.一种区块链中孤块数据的同步方法,其特征在于,包括以下步骤:
步骤1、数据同步模块根据区块高度配置信息获取区块链当前所有区块的数据;
步骤2、孤块检测模块判断已经同步的区块数据中是否出现孤块并修改所述区块高度配置信息;
步骤3、孤块分析模块从已经同步的区块数据中找出所有孤块的哈希值;
重复执行上述步骤1至步骤3,实现孤块数据的持续同步。


2.如权利要求1所述的区块链中孤块数据的同步方法,其特征在于,还包括以下步骤:
步骤4、数据浏览模块根据所述孤块的哈希值检索并展示区块链的主链数据和/或侧链数据。


3.如权利要求1所述的区块链中孤块数据的同步方法,其特征在于,所述区块高度配置信息包括第一配置信息和第二配置信息第一配置信息第二配置信息。


4.如权利要求2所述的区块链中孤块数据的同步方法,其特征在于,所述“数据同步模块根据区块高度配置信息获取区块链当前所有区块的数据”,包括以下步骤:
步骤11、初始化所述第一配置信息和所述第二配置信息;
步骤12、获取区块链的最大区块高度;
步骤13、判断区块链的最大区块高度是否大于所述第二配置信息中的最大区块高度,若是,跳转至步骤15继续执行,否则执行步骤14;
步骤14、等待设定的时间后,跳转至步骤12继续执行;
步骤15、设置当前同步的区块高度值为所述第二配置信息中的最大区块高度加1;
步骤16、将当前同步的区块高度值配置到所述第一配置信息中;
步骤17、采集当前同步的区块高度值对应的区块数据;
步骤18、将当前同步区块高度值配置到所述第二配置信息中,跳转至步骤13继续执行。


5.如权利要求2所述的区块链中孤块数据的同步方法,其特征在于,所述“孤块检测模块判断已经同步的区块数据中是否出现孤块并修改所述区块高度配置信息”,包括以下步骤:
步骤21、判断已经同步的区块数据中指定数量个最新区块的哈希值与区块链中对应高度区块的哈希值是否完全一致,若完全一致,则跳转至步骤24继续执行,否则执行步骤22;
步骤...

【专利技术属性】
技术研发人员:陈浩陈建秋
申请(专利权)人:福州博泉网络科技有限公司
类型:发明
国别省市:福建;35

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

1