一种区块链数据同步的方法和装置与流程

文档序号:11410987阅读:383来源:国知局
一种区块链数据同步的方法和装置与流程

本发明涉及数据处理技术领域,具体而言,本发明涉及一种区块链数据同步的方法和装置。



背景技术:

区块链是比特币的一个重要概念,区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性和生成下一个区块。

随着数据处理技术的发展,用户对区块链数据同步速度的需求越来越高。当区块链数据中的部分数据过大时,或者是,单次区块链数据添加量过大时,全网同步区块链数据将变得非常缓慢。若全网同步区块链数据缓慢时,需要消耗大量的时间,降低了数据同步的效率。同时,在区块链数据同步的过程发生了延时现象,由于延长了数据同步过程中用户等待的时间,从而降低了用户体验度。



技术实现要素:

本发明实施例在于提供一种区块链数据同步的方法和装置,通过在进行数据同步的过程中,先同步区块链数据对应的哈希校验结果,优选完成业务交互,使得在数据量较大时,能够提高同步效率。

第一方面,本发明实施例提供了一种区块链数据同步的方法,所述方法包括:

根据获取的区块链数据确定相应的新增数据的大小;

判断所述新增数据的大小是否达到进行数据同步的预设值;

如果所述新增数据的大小达到进行数据同步的预设值,随机选取哈希算法对所述区块链数据进行运算,获得所述区块链数据的哈希校验结果;

将所述区块链数据的哈希校验结果发送至区块链网络内的其余终端,使得所述其余终端基于所述区块链数据的哈希校验结果进行数据同步。

优选的,所述区块链数据的哈希校验结果包括以下一项或多项:

所述区块链数据对应的全量数据的哈希校验结果、所述区块链数据对应的新增数据的哈希校验结果以及所述区块链数据对应的单一哈希校验结果。

优选的,所述方法还包括:对随机选取的所述哈希算法进行标记,以及将标记的所述哈希算法发送至区块链网络内的其余终端,使得所述其余终端基于标记的所述哈希算法进行数据同步。

优选的,所述方法还包括:将所述新增数据发送至区块链网络内的其余终端,使得所述其余终端基于所述新增数据进行数据同步以获得同步的新增数据。

优选的,所述方法还包括:选取标记的所述哈希算法对所述同步的新增数据进行运算,获得所述同步的新增数据的哈希校验结果。

优选的,所述方法还包括:将所述同步的新增数据的哈希校验结果与任一所述区块链数据的哈希校验结果进行比较,若所述同步的新增数据的哈希校验结果与任一所述区块链数据的哈希校验结果一致,则验证所述同步的新增数据正确。

第二方面,本发明实施例提供了一种区块链数据同步的装置,所述装置包括:

确定模块,根据获取的区块链数据确定相应的新增数据的大小;

判断模块,判断所述新增数据的大小是否达到进行数据同步的预设值;

运算模块,如果所述新增数据的大小达到进行数据同步的预设值,随机选取哈希算法对所述区块链数据进行运算,获得所述区块链数据的哈希校验结果;

发送模块,将所述区块链数据的哈希校验结果发送至区块链网络内的其余终端,使得所述其余终端基于所述区块链数据的哈希校验结果进行数据同步。

优选的,所述运算模块运算获得的所述区块链数据的哈希校验结果包括以下一项或多项:

所述区块链数据对应的全量数据的哈希校验结果、所述区块链数据对应的新增数据的哈希校验结果以及所述区块链数据对应的单一哈希校验结果。

优选的,所述装置还包括:标记模块,对随机选取的所述哈希算法进行标记,以及将所述标记模块标记的所述哈希算法通过所述发送模块发送至区块链网络内的其余终端,使得所述其余终端基于所述标记模块标记的所述哈希算法进行数据同步。

优选的,所述发送模块进一步用于:将所述新增数据发送至区块链网络内的其余终端,使得所述其余终端基于所述新增数据进行数据同步以获得同步的新增数据。

本发明通过在进行数据同步的过程中,先同步区块链数据对应的哈希校验结果,优选完成业务交互,在完成交易后,网络空闲时,再同步大量新增数据,使得在数据量较大时,能够提高同步效率,同时,由于缩短了数据同步过程中用户等待的时间,从而提高了用户体验度。

附图说明

图1是本发明实施例提供的一种区块链数据同步的方法的流程图;

图2是本发明实施例提供的一种区块链数据同步的装置的结构框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明。

发明人发现,在进行数据同步的过程中,可能会产生因新增数据过大而造成同步新增数据需要耗费大量时间的情况。因此,可以先同步区块链数据对应的哈希校验结果,优选完成业务交互,在完成交易后,网络空闲时,再同步大量新增数据,使得在数据量较大时,能够提高同步效率。

下面结合附图详细说明本发明的技术方案。

图1是本发明实施例提供的一种区块链数据同步的方法的流程图,如图1所示,一种区块链数据同步的方法包括如下步骤:

s101:根据获取的区块链数据确定相应的新增数据的大小。在实际应用中,新增数据往往为几十m的高清图像或者是视频对应的数据。

s102:判断新增数据的大小是否达到进行数据同步的预设值。

在实际应用中,为了提高数据同步的效率,往往需要判断新增数据的大小是否达到进行数据同步的预设值,如果新增数据的大小很小,只有几十字节,可以在区块链网络的终端直接进行同步,同步所需的时间为秒级。只有在新增数据的大小大于或者等于进行数据同步的预设值时,才采用本发明实施例提供的方法进行数据同步。

s103:如果新增数据的大小达到进行数据同步的预设值,随机选取哈希算法对区块链数据进行运算,获得区块链数据的哈希校验结果。

其中,区块链数据的哈希校验结果可以为区块链数据对应的全量数据的哈希校验结果,也可以为区块链数据对应的新增数据的哈希校验结果,或者是区块链数据对应的单一哈希校验结果。

s104:将区块链数据的哈希校验结果发送至区块链网络内的其余终端,使得其余终端基于区块链数据的哈希校验结果进行数据同步以获得同步的新增数据。

相对于现有技术,在区块链网络内的终端之间同步大量的新增数据往往需要分钟级以上的时间。在实际应用中,区块链数据对应的哈希校验结果往往仅仅只有几十个字节,在区块链网络内的终端之间同步区块链数据的哈希校验结果仅仅需要几秒。通过在进行数据同步的过程中,先同步区块链数据对应的哈希校验结果,优选完成业务交互,使得在数据量较大时,能够提高同步效率。

此外,为了验证同步数据的准确性,对随机选取的哈希算法进行标记,以及将标记的哈希算法发送至区块链网络内的其余终端,使得其余终端基于标记的哈希算法进行数据同步。

在本发明实施例所提供的技术方案中,通过对随机选取的哈希算法进行标记,避免了由于选取的哈希算法不同,可能造成相应的哈希校验结果也不同情况的发生。如果该哈希校验结果不是唯一的数值,也就无法根据该哈希校验结果判断同步的新增数据的准确性。

哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。典型的哈希算法包括md2、md4、md5和sha-1,具体的哈希算法为常规算法,在此不再赘述。

在实际应用中,在完成交易后,网络空闲时,再同步大量新增数据。具体而言,在将区块链数据的哈希校验结果发送至区块链网络内的其余终端,使得其余终端基于区块链数据的哈希校验结果进行数据同步之后,将新增数据发送至区块链网络内的其余终端,使得其余终端基于新增数据进行数据同步以获得同步的新增数据。

此外,在区块链网络内的终端获取到同步的新增数据之后,为了验证同步的新增数据的准确性,选取之前标记的哈希算法对同步的新增数据进行运算,获得同步的新增数据的哈希校验结果。

进一步地,将同步的新增数据的哈希校验结果与任一区块链数据的哈希校验结果进行比较,若同步的新增数据的哈希校验结果与任一区块链数据的哈希校验结果一致,则验证同步的新增数据正确。

第一种验证同步的新增数据正确的方法为,将同步的新增数据的哈希校验结果与区块链数据对应的全量数据的哈希校验结果进行比较,若同步的新增数据的哈希校验结果与区块链数据对应的全量数据的哈希校验结果一致,则验证同步的新增数据正确。

第二种验证同步的新增数据正确的方法为,将同步的新增数据的哈希校验结果与区块链数据对应的新增数据的哈希校验结果进行比较,若同步的新增数据的哈希校验结果与区块链数据对应的新增数据的哈希校验结果一致,则验证同步的新增数据正确。

第三种验证同步的新增数据正确的方法为,将同步的新增数据的哈希校验结果与区块链数据对应的单一哈希校验结果进行比较,若同步的新增数据的哈希校验结果与区块链数据对应的单一哈希校验结果一致,则验证同步的新增数据正确。

除了上述验证同步的新增数据正确的方法之外,也可以将同步的新增数据的哈希校验结果与区块链数据对应的全量数据的哈希校验结果、区块链数据对应的新增数据的哈希校验结果进行组合对比,在此不再赘述,请参见前述。

反之,在将同步的新增数据的哈希校验结果与任一区块链数据的哈希校验结果进行比较之后,若同步的新增数据的哈希校验结果与任一区块链数据的哈希校验结果均不一致,则验证同步的新增数据不正确。

在验证同步的新增数据不正确之后,重新对区块链数据对应的新增数据进行数据同步过程,至到验证出得到的同步的新增数据为正确数据时为止。

在区块链网络内同步的新增数据为合同扫描件对应的图片文件的数据的一个具体应用场景中,把合同扫描件对应的图片文件上传到一个终端节点。该合同扫描件对应的图片文件的数据的大小为30m。

发明人发现,如果采用现有的区块链技术全网同步该新增数据至区块链网络内的其余终端节点,上述同步数据的过程往往需要很久。反之,由于新增数据对应的哈希校验结果仅仅只有十几个字节,或者是几十个字节,如果本地终端运算该新增数据的哈希校验结果只需要毫秒级就可以完成整个运算过程。然后,由于新增数据的哈希校验结果仅仅只有几十个字节,因此,将得到的新增数据的哈希校验结果同步至区块链网络内的其余终端也就只需要几秒钟的时间,从而,提高了数据同步的效率。

因此,发明人考虑,在进行数据同步的过程中,优先同步哈希校验结果以快速完成业务响应。

在区块链网络内同步的新增数据为合同扫描件图片文件的数据的一个具体应用场景中,区块链数据同步的步骤具体如下所述:

首先,在该应用场景下,新增数据为:合同扫描件图片文件对应的数据。确定该新增数据的大小,该新增数据的大小为30m。

进一步地,由于在该具体应用场景下,预先设置了进行数据同步的预设值为20m。由于新增数据的大小为30m,因此,新增数据的大小大于预先设置的进行数据同步的预设值20m。因此,判断出新增数据的大小达到了进行数据同步的预设值。

进一步地,在判断出新增数据的大小达到了进行数据同步的预设值之后,开始启动在区块链网络内的终端之间对该新增数据进行数据同步的过程。随机选取哈希算法对区块链数据进行运算,获得相应的哈希校验结果。

需要说明的是,区块链数据具体为区块链数据对应的全量数据以及区块链数据对应的新增数据。

在确定出随机选取的哈希算法为md2之后,采用哈希算法md2对区块链数据进行哈希运算,得到相应的哈希校验结果。

具体地,区块链数据对应的哈希校验结果可以为:区块链数据对应的全量数据的哈希校验结果,也可以为:区块链数据对应的新增数据的哈希校验结果,或者为:区块链数据对应的单一哈希校验结果。

进一步地,将包含区块链数据对应的全量数据的哈希校验结果、区块链数据对应的新增数据的哈希校验结果、区块链数据对应的单一哈希校验结果发送至区块链网络内的其余终端,使得其余终端基于上述哈希校验结果进行数据同步。

在该应用场景下,数据同步的过程中,先同步校验结果以快速完成业务响应。由于新增数据对应的哈希结果仅仅只有十几个到几十个字节,因此,本地终端运算该新增数据的哈希结果只需要毫秒级就可以完成,从而,使得在数据量较大时,能够提高同步效率。

在该应用场景下,在完成交易后,网络空闲时,再同步大量新增数据。获取到同步的新增数据,以及依据之前标记的哈希算法md2对该新增数据进行运算,获得该新增数据的哈希校验结果。

依据区块链数据对应的单一哈希校验结果来判断同步的新增数据的正确性。或者是,依据区块链数据对应的新增数据的哈希校验结果和全量数据的哈希校验结果共同来判断同步的新增数据的正确性。

具体地,若区块链数据对应的单一哈希校验结果与同步的新增数据的哈希校验结果一致,则验证出:同步的新增数据正确。

若区块链数据对应的新增数据的哈希校验结果与同步的新增数据的哈希校验结果一致,则验证出:同步的新增数据正确。

若区块链数据对应的全量数据的哈希校验结果与同步的新增数据的哈希校验结果一致,则验证出:同步的新增数据正确。

若区块链数据对应的新增数据的哈希校验结果,以及区块链数据对应的全量数据的哈希校验结果,与同步的新增数据的哈希校验结果均一致,则验证出:同步的新增数据正确。

反之,若区块链数据对应的单一哈希校验结果,区块链数据对应的新增数据的哈希校验结果,以及区块链数据对应的全量数据的哈希校验结果,与同步的新增数据的哈希校验结果均不一致,则验证出:同步的新增数据不正确。

在验证出同步的新增数据不正确之后,采用标记的算法重新对新增数据进行同步,至到得到正确的同步新增数据为止。

综上所述,本发明实施例提供的一种区块链数据同步的方法,根据获取的区块链数据确定相应的新增数据的大小;判断新增数据的大小是否达到进行数据同步的预设值;如果新增数据的大小达到进行数据同步的预设值,随机选取哈希算法对区块链数据进行运算,获得相应的哈希校验结果;将该哈希校验结果发送至区块链网络内的其余终端,使得其余终端基于该哈希校验结果进行数据同步。本发明实施例中的数据同步过程,是优先同步区块链数据对应的哈希校验结果。因此,本发明所提供的技术方案在数据量较大时,能够提高同步效率,同时,由于缩短了数据同步过程中用户等待的时间,从而提高了用户体验度。

如图2所示,本发明实施例所提供的一种区块链数据同步的装置,包括:确定模块201、判断模块202、运算模块203和发送模块204。

具体而言,确定模块,根据获取的区块链数据确定相应的新增数据的大小;

判断模块,判断新增数据的大小是否达到进行数据同步的预设值;

运算模块,如果新增数据的大小达到进行数据同步的预设值,随机选取哈希算法对区块链数据进行运算,获得区块链数据的哈希校验结果;

发送模块,将区块链数据的哈希校验结果发送至区块链网络内的其余终端,使得其余终端基于区块链数据的哈希校验结果进行数据同步。

进一步地,运算模块运算获得的区块链数据的哈希校验结果包括以下一项或多项:区块链数据对应的全量数据的哈希校验结果、区块链数据对应的新增数据的哈希校验结果以及区块链数据对应的单一哈希校验结果。

进一步地,为了提高对同步的新增数据校验的准确性,准确确定出与新增数据匹配的哈希算法,本发明实施例所提供的一种区块链数据同步的装置还包括标记模块(在图2中未标出)。

标记模块,对随机选取的哈希算法进行标记,以及将标记模块标记的哈希算法通过发送模块发送至区块链网络内的其余终端,使得其余终端基于标记模块标记的哈希算法进行数据同步。

进一步地,为了提高同步效率,同时避免对存储空间的浪费,仅同步新增数据。发送模块还用于:将新增数据发送至区块链网络内的其余终端,使得其余终端基于新增数据进行数据同步以获得同步的新增数据。

进一步地,在准确确定出与新增数据匹配的哈希算法之后,运算模块还用于:选取标记的哈希算法对同步的新增数据进行运算,获得同步的新增数据的哈希校验结果。

进一步地,为了验证同步的新增数据是否准确,本发明实施例所提供的一种区块链数据同步的装置还包括验证模块(在图2中未标出)。

验证模块,将同步的新增数据的哈希校验结果与任一区块链数据的哈希校验结果进行比较,若同步的新增数据的哈希校验结果与任一区块链数据的哈希校验结果一致,则验证同步的新增数据正确。

本发明的技术方案中,根据获取的区块链数据确定相应的新增数据的大小;判断新增数据的大小是否达到进行数据同步的预设值;如果新增数据的大小达到进行数据同步的预设值,随机选取哈希算法对区块链数据进行运算,获得相应的哈希校验结果;将该哈希校验结果发送至区块链网络内的其余终端,使得其余终端基于该哈希校验结果进行数据同步。本发明实施例中的数据同步过程,是优先同步区块链数据对应的哈希校验结果。因此,本发明所提供的技术方案在数据量较大时,能够提高同步效率,同时,由于缩短了数据同步过程中用户等待的时间,从而提高了用户体验度。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1