区块链交易池信息的同步方法、装置、设备及介质与流程

文档序号:21362738发布日期:2020-07-04 04:36阅读:357来源:国知局
区块链交易池信息的同步方法、装置、设备及介质与流程

本发明涉及区块链技术领域,尤其涉及一种区块链交易池信息的同步方法、装置、设备及介质。



背景技术:

区块链是基于一笔笔交易打包进入区块,并广播到全网所有节点达成共识的过程,其中,以太坊是区块链技术的项目之一,基于以太坊现有规则,区块链节点记录着区块链发生的交易信息,其中,每个运行的区块链节点都会在节点本地维护一个存有pendingtxs(未被打包进入区块链区块的交易数据)的交易池,由于每个区块链节点运行的以太坊环境和设置的交易池大小等的不同,致使不同区块链节点之间需要进行信息的同步,现有两个区块链节点建立连接时彼此交换交易信息,其中一个区块链节点有交易更新的同时也会彼此通知交换,有交易更新的同时即进行信息交换,就会出现数轮冗余的信息交换,造成资源的浪费的技术问题。



技术实现要素:

本发明的主要目的在于提供一种区块链交易池信息的同步方法、装置、设备及介质,旨在解决现有区块链节点之间进行交易信息同步时,造成资源的浪费的技术问题。

为实现上述目的,本发明实施例提供一种区块链交易池信息的同步方法,所述区块链交易池信息的同步方法应用于第一区块链节点,所述区块链交易池信息的同步方法包括:

当检测到与其他第二区块链节点连接时,获取所述第一区块链节点对应第一交易池的第一信息,与其他第二区块链节点对应第二交易池的第二信息之间信息同步的第一同步窗口时间长度;

在距离当前时间所述第一同步窗口时间长度后,确定所述第一信息与所述第二信息之间是否存在差异;

若所述第一信息与所述第二信息之间存在差异,则确定根据第一预设同步策略进行所述第一交易池与所述第二交易池之间信息的第一同步;

若所述第一信息与所述第二信息之间未存在差异,则确定根据第二预设同步策略进行所述第一交易池与所述第二交易池之间信息的第二同步,其中,所述第一同步与所述第二同步对应的同步窗口时间长度不同。

可选地,所述若所述第一信息与所述第二信息之间未存在差异,则确定根据第二预设同步策略进行所述第一交易池与所述第二交易池之间信息的第二同步的步骤包括:

若所述第一信息与所述第二信息之间未存在差异,则确定当前所述第一交易池与所述第二交易池之间信息的连续同步次数;

根据所述连续同步次数与所述第一同步窗口时间长度确定第二同步窗口时间长度,并根据所述第二同步窗口时间长度进行所述第二同步。

可选地,所述若所述第一信息与所述第二信息之间存在差异,则确定根据第一预设同步策略进行所述第一交易池与所述第二交易池之间信息的第一同步步骤包括:

若所述第一信息与所述第二信息之间存在差异,则获取所述第一信息与所述第二信息之间的差异信息;

基于所述第一同步窗口时间长度与所述第一调整信息,完成所述第一交易池与所述第二交易池之间信息的所述第一同步。

可选地,所述在距离当前时间所述第一同步窗口时间长度后,确定所述第一信息与所述第二信息之间是否存在差异的步骤包括:

在距离当前时间所述第一同步窗口时间长度后,获取所述第一信息转发至预设布隆过滤器之后得到的第一显示数据位信息,其中,第一信息中的每个交易数据单元通过预设映射方式映射到所述布隆过滤器中对应个数的显示数据位的显示数值;

获取所述其他第二区块链节点基于所述第一显示数据位信息与所述第二信息对应第二显示数据位信息比对后得到的不存在信息;

若所述不存在信息不为空,确定所述第一信息与所述第二信息之间存在差异。

可选地,所述若所述不存在信息不为空,确定所述第一信息与所述第二信息之间存在差异步骤之后包括:

将所述第一信息转发至预设可逆布隆查找表中,基于所述可逆布隆查找表中的预设算法对所述第一信息进行处理,生成第一查找数据位;

将所述不存在信息对应不确定信息转发至预设可逆布隆查找表中,基于所述预设算法对所述不确定信息进行处理,生成第二查找数据位;

比对所述第一查找数据位与所述第二查找数据位,确定误判信息,以根据所述误判信息进行信息同步。

可选地,所述预设算法包括预设算法参数;

所述将所述第一信息转发至预设可逆布隆查找表中步骤之前还包括:

获取交易数据单元的第一预设数量,根据所述第一预设数量以及所述交易数据单元在所述第一预设数量对应每个预设费用分区的各个第一预设占比,确定所述预设可逆布隆查找表中对应交易数据单元的第一关联数量;

根据所述第一关联数量以及预设比例因子,确定所述算法参数的大小。

可选地,所述在距离当前时间所述第一同步窗口时间长度后,获取所述第一信息转发至预设布隆过滤器之后得到的第一显示数据位信息步骤之前包括:

获取交易数据单元的第二预设数量,根据所述第二预设数量以及以及所述交易数据单元在所述第二预设数量对应每个预设费用分区的各个第二预设占比,确定通过所述预设布隆过滤器的交易数据单元的第二关联数量;

根据所述第二关联数量,预设误差率以及所述预设映射方式,确定将所述第一信息转发至预设布隆过滤器的信息转发速率。

本发明还提供一种区块链交易池信息的同步装置,所述区块链交易池信息的同步装置应用于第一区块链节点,所述区块链交易池信息的同步装置包括:

第一获取模块,用于当检测到与其他第二区块链节点连接时,获取所述第一区块链节点对应第一交易池的第一信息,与其他第二区块链节点对应第二交易池的第二信息之间信息同步的第一同步窗口时间长度;

第一确定模块,用于在距离当前时间所述第一同步窗口时间长度后,确定所述第一信息与所述第二信息之间是否存在差异;

第二确定模块,用于若所述第一信息与所述第二信息之间存在差异,则确定根据第一预设同步策略进行所述第一交易池与所述第二交易池之间信息的第一同步;

第三确定模块,用于若所述第一信息与所述第二信息之间未存在差异,则确定根据第二预设同步策略进行所述第一交易池与所述第二交易池之间信息的第二同步,其中,所述第一同步与所述第二同步对应的同步窗口时间长度不同。

可选地,所述第三确定模块包括:

第一确定单元,用于若所述第一信息与所述第二信息之间未存在差异,则确定当前所述第一交易池与所述第二交易池之间信息的连续同步次数;

第二确定单元,用于根据所述连续同步次数与所述第一同步窗口时间长度确定第二同步窗口时间长度,并根据所述第二同步窗口时间长度进行所述第二同步。

可选地,所述第二确定模块包括:

第一获取单元,用于若所述第一信息与所述第二信息之间存在差异,则获取所述第一信息与所述第二信息之间的差异信息;

第一同步单元,用于基于所述第一同步窗口时间长度与所述第一调整信息,完成所述第一交易池与所述第二交易池之间信息的所述第一同步。

可选地,所述第一确定模块包括:

第二获取单元,用于在距离当前时间所述第一同步窗口时间长度后,获取所述第一信息转发至预设布隆过滤器之后得到的第一显示数据位信息,其中,第一信息中的每个交易数据单元通过预设映射方式映射到所述布隆过滤器中对应个数的显示数据位的显示数值;

第三获取单元,用于获取所述其他第二区块链节点基于所述第一显示数据位信息与所述第二信息对应第二显示数据位信息比对后得到的不存在信息;

第三确定单元,用于若所述不存在信息不为空,确定所述第一信息与所述第二信息之间存在差异。

可选地,所述第一确定模块包括:

第一处理单元,用于将所述第一信息转发至预设可逆布隆查找表中,基于所述可逆布隆查找表中的预设算法对所述第一信息进行处理,生成第一查找数据位;

第二处理单元,用于将所述不存在信息对应不确定信息转发至预设可逆布隆查找表中,基于所述预设算法对所述不确定信息进行处理,生成第二查找数据位;

比对单元,用于比对所述第一查找数据位与所述第二查找数据位,确定误判信息,以根据所述误判信息进行信息同步。

可选地,所述预设算法包括预设算法参数;

所述区块链交易池信息的同步装置包括:

第二获取模块,用于获取交易数据单元的第一预设数量,根据所述第一预设数量以及所述交易数据单元在所述第一预设数量对应每个预设费用分区的各个第一预设占比,确定所述预设可逆布隆查找表中对应交易数据单元的第一关联数量;

第四确定模块,用于根据所述第一关联数量以及预设比例因子,确定所述算法参数的大小。

可选地,所述区块链交易池信息的同步装置包括:

第三获取模块,用于获取交易数据单元的第二预设数量,根据所述第二预设数量以及以及所述交易数据单元在所述第二预设数量对应每个预设费用分区的各个第二预设占比,确定通过所述预设布隆过滤器的交易数据单元的第二关联数量;

第五确定模块,用于根据所述第二关联数量,预设误差率以及所述预设映射方式,确定将所述第一信息转发至预设布隆过滤器的信息转发速率。

本发明还提供一种介质,所述介质上存储有区块链交易池信息的同步程序,所述区块链交易池信息的同步程序被处理器执行时实现如上述的区块链交易池信息的同步方法的步骤。

本发明通过当检测到与其他第二区块链节点连接时,获取所述第一区块链节点对应第一交易池的第一信息,与其他第二区块链节点对应第二交易池的第二信息之间信息同步的第一同步窗口时间长度;在距离当前时间所述第一同步窗口时间长度后,确定所述第一信息与所述第二信息之间是否存在差异;若所述第一信息与所述第二信息之间存在差异,则确定根据第一预设同步策略进行所述第一交易池与所述第二交易池之间信息的第一同步;若所述第一信息与所述第二信息之间未存在差异,则确定根据第二预设同步策略进行所述第一交易池与所述第二交易池之间信息的第二同步,其中,所述第一同步与所述第二同步对应的同步窗口时间长度不同。在本申请中,在第一区块链节点与其他第二区块链节点连接时,首先确定第一同步窗口时间长度,并基于第一同步窗口时间长度进行确定所述第一区块链节点对应第一交易池的第一信息,与其他第二区块链节点对应第二交易池的第二信息之间的信息的同步,并确定所述第一信息与所述第二信息之间是否存在差异,根据所述第一信息与所述第二信息之间是否存在差异,进行后续的不同策略的同步,而由于不同策略同步的同步窗口时间长度不同,因而,避免有交易更新的同时即进行信息交换(易出现数轮冗余的信息交换),而是可以调整交换信息的时间或者时长,以避免资源的浪费,也即解决了现有区块链节点之间只是通过固定时间交换信息,造成资源的浪费的技术问题。

附图说明

图1为本发明区块链交易池信息的同步方法第一实施例的流程示意图;

图2为本发明区块链交易池信息的同步方法第二实施例中若所述第一信息与所述第二信息之间存在差异,则确定根据第一预设同步策略进行所述第一交易池与所述第二交易池之间信息的第一同步的步骤的细化流程示意图;

图3是本发明实施例方法涉及的硬件运行环境的设备结构示意图;

图4为本发明区块链交易池信息的同步方法的第一场景示意图。

图5为本发明区块链交易池信息的同步方法的第二场景示意图;

图6为本发明区块链交易池信息的同步方法的第三场景示意图;

图7为本发明区块链交易池信息的同步方法的第四场景示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种区块链交易池信息的同步方法,在区块链交易池信息的同步方法一实施例中,参照图1,所述区块链交易池信息的同步方法应用于第一区块链节点,所述区块链交易池信息的同步方法包括:

步骤s10,当检测到与其他第二区块链节点连接时,获取所述第一区块链节点对应第一交易池的第一信息,与其他第二区块链节点对应第二交易池的第二信息之间信息同步的第一同步窗口时间长度;

步骤s20,在距离当前时间所述第一同步窗口时间长度后,确定所述第一信息与所述第二信息之间是否存在差异;

步骤s30,若所述第一信息与所述第二信息之间存在差异,则确定根据第一预设同步策略进行所述第一交易池与所述第二交易池之间信息的第一同步;

步骤s40,若所述第一信息与所述第二信息之间未存在差异,则确定根据第二预设同步策略进行所述第一交易池与所述第二交易池之间信息的第二同步,其中,所述第一同步与所述第二同步对应的同步窗口时间长度不同。

具体步骤如下:

步骤s10,当检测到与其他第二区块链节点连接时,获取所述第一区块链节点对应第一交易池的第一信息,与其他第二区块链节点对应第二交易池的第二信息之间信息同步的第一同步窗口时间长度;

需要说明的是,在本实施例中,区块链交易池信息的同步方法应用于第一区块链节点,该第一区块链节点属于区块链交易池信息的同步系统,为该区块链交易池信息的同步系统中的一个节点(对应一个或者多个区块链用户),该区块链交易池信息的同步系统中除了该第一区块链节点外,还包括多个其他第二区块链节点,需要说明的是,该第一区块链节点与多个其他第二区块链节点之间进行通信连接,该通信连接包括直接通信连接以及间接通信连接,以进行区块链交易池信息的同步,在本实施例中,以第一区块链节点与多个其他第二区块链节点之间进行直接通信连接时,进行区块链交易池信息的同步为例进行具体说明,也即,在本实施例中,第一区块链节点与直接通信连接的第二区块链节点进行交易池的信息的交换(以避免信息的冗余交换或者同步)。

具体地,第一区块链节点在检测到其他第二区块链节点的连接请求时,即当检测到与其他第二区块链节点进行初始连接时,获取所述第一区块链节点本地对应第一交易池的第一信息(具体为pending(待定)txs,即未被打包进入区块链区块的交易数据)),与其他第二区块链节点对应第二交易池的第二信息之间信息同步的第一同步窗口时间长度,需要说明的是,该第一同步窗口时间长度可以是第一区块链节点与其他第二区块链节点进行交易池信息交换的最小时间长度,即该第一同步窗口时间长度可以为单位时间长度t,第一同步窗口时间长度为t即经过t后触发第一交易池与第二交易池的信息交换。

步骤s20,在距离当前时间所述第一同步窗口时间长度后,确定所述第一信息与所述第二信息之间是否存在差异;

在本实施例中,在距离当前时间所述第一同步窗口时间长度后,确定所述第一信息与所述第二信息之间是否存在差异,具体地,若第一交易池中的第一信息为tx1、tx2、tx3(tx代表交易),第二信息也是tx1、tx2、tx3,则第一信息与第二信息并无差异,若第二信息为tx1、tx2、tx4,则第一信息与第二信息之间存在差异。

具体地,所述在距离当前时间所述第一同步窗口时间长度后,确定所述第一信息与所述第二信息之间是否存在差异的步骤包括:

步骤s21,在距离当前时间所述第一同步窗口时间长度后,获取所述第一信息转发至预设布隆过滤器之后得到的第一显示数据位信息,其中,第一信息中的每个交易数据单元通过预设映射方式映射到所述布隆过滤器中对应个数的显示数据位的显示数值;

在本实施例中,在距离当前时间所述第一同步窗口时间长度后,进行第一次信息的同步,具体地,将第一信息转发至预设布隆过滤器,基于预设布隆过滤器对第一信息进行处理,得到第一显示数据位信息,即基于预设布隆过滤器对第一信息中的每个交易数据单元进行基于预设映射方式的映射处理,得到对应个数的显示数据位的显示数值,具体地,如图4所示,布隆过滤器可看成一个长度为l的二进制向量(包括多个数据位),数据位的初始值全为零,将每个交易数据单元通过预设映射方式如某一散列函数映射到向量的其中多位(3位)数据位的显示数值为1(将该数据位置1),如图1所示,tx代表交易,第一信息中包括tx1、tx2、tx3三个交易数据单元,该三个交易数据单元分别通过三个预设hash函数进行计算(tx1通过三个预设hash函数进行计算,tx2通过三个预设hash函数进行计算,tx3通过三个预设hash函数进行计算),每个交易数据单元可以分别得出三个hash值,将这三个hash值对应的布隆过滤器的数据位的显示数值由0置1,即具体地,tx1映射在布隆过滤器数据位的2,5,7位置,tx2映射在布隆过滤器数据位的5,8,10位,tx3映射在布隆过滤器数据位的7,8,11位,其中,上述映射的2,5,7位置,5,8,10位置,7,8,11位置对应的显示数值构成第一显示数据位信息。

当第一信息中的每个交易数据单元tx置于布隆过滤器中后,在检测到查询指令时,重新将需要查询的tx经过之前的三个预设hash函数计算,观察对应的三个数据位是否为1,若都为1,判断存在,否则该布隆过滤器不存在这笔tx。

步骤s22,获取所述其他第二区块链节点基于所述第一显示数据位信息与所述第二信息对应第二显示数据位信息比对后得到的不存在信息;

获取第二信息发送至布隆过滤器后,得到的对应第二显示数据位信息,其中,将第二信息发送至布隆过滤器后得到第二显示数据位信息的过程与将第一信息发送至布隆过滤器后得到第一显示数据位信息的过程是相同的,在此不再赘述,在得到第一显示数据位信息与第二显示数据位信息后,其他第二区块链节点将所述第一显示数据位信息与第二显示数据位信息(或者也可以直接与第二信息)进行一一比对,得到不存在信息,其中,不存在信息是第二显示数据位信息与第一显示数据位信息完全不同的交易数据单元,不存在信息对应不确定信息,其中,不确定信息为第二显示数据位信息与第一显示数据位信息可能不同或者可能相同的交易数据单元。具体地,例如,a区块链节点(第一区块链节点)、b区块链节点(第二区块链节点)的交易池(txpool)分别为txpool1{tx1,tx2,tx4}、txpool2{tx1,tx3,tx5},a将交易池txpool1所有交易数据单元利用布隆过滤器生成bloom1(第一显示数据位信息),并将bloom1发送给b,b收到bloom1,取txpool2中所有交易数据单元对应生成的bloom2(第二显示数据位信息)与bloom1进行对比,得出tx1,tx3可能存在txpool1中,tx5确定不存在,其中,tx5确定为不存在信息,tx1,tx3为不存在信息对应的不确定信息。

步骤s23,若所述不存在信息不为空,确定所述第一信息与所述第二信息之间存在差异。

若所述不存在信息不为空如存在不存在信息tx5,确定所述第一信息与所述第二信息之间存在差异。

需要说明的是,若存在差异,需要获取对应的差异信息,其中,该差异信息包括不存在信息。

步骤s30,若所述第一信息与所述第二信息之间存在差异,则确定根据第一预设同步策略进行所述第一交易池与所述第二交易池之间信息的第一同步;

若所述第一信息与所述第二信息之间存在差异,则确定根据第一预设同步策略进行所述第一交易池与所述第二交易池之间信息的第一同步,具体地,第一预设同步策略中,不同次同步的同步时间间隔是不变化的或者是相同的都为第一同步窗口时间长度,具体地,例如,若所述第一信息与所述第二信息之间存在差异后,再经过第一同步窗口时间长度进行下一次的同步,若下一次同步过程中,第一交易池与第二交易池之间的的信息还是存在差异,则继续经过第一同步窗口时间长度进行该下一次同步之后的下下次同步,直至第一交易池与第二交易池之间的信息未存在差异,然后基于其他的同步窗口时间长度进行第一交易池与第二交易池之间的信息的交换,其中,其他的同步窗口时间长度大于第一的同步窗口时间长度。

步骤s40,若所述第一信息与所述第二信息之间未存在差异,则确定根据第二预设同步策略进行所述第一交易池与所述第二交易池之间信息的第二同步,其中,所述第一同步与所述第二同步对应的同步窗口时间长度不同。

若所述第一信息与所述第二信息之间未存在差异,则确定根据第二预设同步策略进行所述第一交易池与所述第二交易池之间信息的第二同步,其中,所述第一同步与所述第二同步对应的同步窗口时间长度不同,且第一同步的同步窗口时间长度大于第一同步的同步窗口时间长度。

所述若所述第一信息与所述第二信息之间未存在差异,则确定根据第二预设同步策略进行所述第一交易池与所述第二交易池之间信息的第二同步的步骤包括:

步骤s41,若所述第一信息与所述第二信息之间未存在差异,则确定当前所述第一交易池与所述第二交易池之间信息的连续同步次数;

若所述第一信息与所述第二信息之间未存在差异,则确定当前所述第一交易池与所述第二交易池之间信息的连续同步次数,即是确定所述第一交易池与所述第二交易池之间信息连续相同的次数。

步骤s42,根据所述连续同步次数与所述第一同步窗口时间长度确定第二同步窗口时间长度,并根据所述第二同步窗口时间长度进行所述第二同步。

根据所述连续同步次数与所述第一同步窗口时间长度确定第二同步窗口时间长度,其中,第二同步窗口时间长度为连续同步次数与第一同步窗口时间长度相乘得到。

具体地,例如,如图5所示,第一步,当第一区块链节点与其他第二区块链节点互相连接后,第一同步窗口时间长度为t,即经过t后触发第一信息与第二信息的同步,第二步,若第一信息与第二信息之间,或者第一交易池的信息与第二交易池的信息存在差异,对应调节窗口长度为第一同步窗口时间长度,交换信息后重新计时,再经过t后触发第二次同步,第三步,此时第二次交换信息若发现两者间(第一交易池与第二交易池之间的信息)不存在差异,则调节窗口长度变为2t,重新计时经过2t后触发第三次同步。第四步,如果第三次交换信息还是不存在差异,则将调节窗口长度设为4t,依次类推。

第五步,如果在第三、四步中任意一次发现差异,则将调节窗口长度重新设为t,重新开始计时。

具体地,若当前产生区块链区块的平均时间为15秒,每秒钟平均能处理15笔交易,若每秒处理交易的性能和每秒产生新交易的数目为15到20笔,即交易池每秒都有15笔到20笔的变化,则设调节窗口长度为t=1秒。

本发明通过当检测到与其他第二区块链节点连接时,获取所述第一区块链节点对应第一交易池的第一信息,与其他第二区块链节点对应第二交易池的第二信息之间信息同步的第一同步窗口时间长度;在距离当前时间所述第一同步窗口时间长度后,确定所述第一信息与所述第二信息之间是否存在差异;若所述第一信息与所述第二信息之间存在差异,则确定根据第一预设同步策略进行所述第一交易池与所述第二交易池之间信息的第一同步;若所述第一信息与所述第二信息之间未存在差异,则确定根据第二预设同步策略进行所述第一交易池与所述第二交易池之间信息的第二同步,其中,所述第一同步与所述第二同步对应的同步窗口时间长度不同。在本申请中,在第一区块链节点与其他第二区块链节点连接时,首先确定第一同步窗口时间长度,并基于第一同步窗口时间长度进行确定所述第一区块链节点对应第一交易池的第一信息,与其他第二区块链节点对应第二交易池的第二信息之间的信息的同步,并确定所述第一信息与所述第二信息之间是否存在差异,根据所述第一信息与所述第二信息之间是否存在差异,进行后续的不同策略的同步,而由于不同策略同步的同步窗口时间长度不同,因而,避免有交易更新的同时即进行信息交换(易出现数轮冗余的信息交换),而是可以调整交换信息的时间或者时长,以避免资源的浪费,也即解决了现有区块链节点之间只是通过固定时间交换信息,造成资源的浪费的技术问题。

进一步地,基于上述实施例,本发明提供区块链交易池信息的同步方法另一实施例,参照图2,在该实施例中,所述若所述第一信息与所述第二信息之间存在差异,则确定根据第一预设同步策略进行所述第一交易池与所述第二交易池之间信息的第一同步步骤包括:

步骤s31,若所述第一信息与所述第二信息之间存在差异,则获取所述第一信息与所述第二信息之间的差异信息;

若所述第一信息与所述第二信息之间存在差异,则获取所述第一信息与所述第二信息之间的差异信息(即存在于第二信息中但是未存在于第一信息中的信息),在本实施例中,差异信息包括不存在信息以及不确定信息中的不同子信息,例如,a区块链节点(第一区块链节点)、b区块链节点(第二区块链节点)的交易池(txpool)分别为txpool1{tx1,tx2,tx4}、txpool2{tx1,tx3,tx5},a将交易池txpool1所有交易数据单元利用布隆过滤器生成bloom1(第一显示数据位信息),并将bloom1发送给b,b收到bloom1,取txpool2中所有交易数据单元对应生成的bloom2(第二显示数据位信息)与bloom1进行对比,得出tx1,tx3可能存在txpool1中,tx5确定不存在,其中,tx5确定为不存在信息,tx1,tx3为不存在信息对应的不确定信息,其中,tx3为不确定信息中的不同子信息,在得到不同子信息后,根据该不同子信息以及不存在信息,得到差异信息。

步骤s32,基于所述第一同步窗口时间长度与所述差异信息,完成所述第一交易池与所述第二交易池之间信息的所述第一同步。

据所述差异信息,调整所述第一信息以得到第一调整信息,具体地,在第一同步窗口时间长度后,将差异信息添加至第一信息中,得到第一调整信息,需要说明的是,还需要对第二信息进行调整,对第二信息进行调整的方式与对第一信息进行调整的方式基本相同,在此不再赘述,基于所述第一同步窗口时间长度与所述差异信息,完成所述第一交易池与所述第二交易池之间信息的所述第一同步。

在本实施例中,通过若所述第一信息与所述第二信息之间存在差异,则获取所述第一信息与所述第二信息之间的差异信息;基于所述第一同步窗口时间长度与所述差异信息,完成所述第一交易池与所述第二交易池之间信息的所述第一同步,在本实施例中,准确及时完成差异信息的同步。

进一步地,基于上述实施例,本发明提供区块链交易池信息的同步方法另一实施例,在该实施例中,所述若所述不存在信息不为空,确定所述第一信息与所述第二信息之间存在差异步骤之后包括:

步骤a1,将所述第一信息转发至预设可逆布隆查找表中,基于所述可逆布隆查找表中的预设算法对所述第一信息进行处理,生成第一查找数据位;

在本实施例中,由于布隆过滤器数据位的位数有限,随着通过布隆过滤器的交易数据单元的增加,数据位共享也会增加,从而有可能出现误判,比如当tx4经过hash计算后,算出其映射在布隆过滤器的位置是5,7,8位,此时由于tx1、tx2、tx3三笔交易分别都有一个映射位处于5,7,8中,从而查询tx4会判断该笔tx存在,实际布隆过滤器仅有3笔tx,此时出现了判断的误差。为了减少误差,在本实施例中,将所述第一信息转发至预设可逆布隆查找表(iblt,iblt的特点就是可以找出两个iblt之间的差异)中,基于所述可逆布隆查找表表格中的预设算法对所述第一信息进行处理,生成第一查找数据位即iblt1。

步骤a2,将所述不存在信息对应不确定信息转发至预设可逆布隆查找表中,基于所述预设算法对所述不确定信息进行处理,生成第二查找数据位;

将所述不存在信息对应不确定信息转发至预设可逆布隆查找表中,基于所述预设算法对所述不确定信息进行处理,生成第二查找数据位iblt2,需要说明的是,iblt的特点就是可以找出两个iblt之间的差异,比如,一个交易数据单元的iblt为iblt3,此时将需要对照的其他交易数据单元生成一个iblt4,将iblt3减去iblt4即进行异或运算可得出误判的数据,如图6所示,两个iblt相减可以得出具体差别,即知道d和x是两者间的差距。

步骤a3,比对所述第一查找数据位与所述第二查找数据位,确定误判信息,以根据所述误判信息进行信息同步。

如上述所示,比对所述第一查找数据位与所述第二查找数据位,进行异或运算,确定误判信息,以根据所述误判信息进行信息同步。

在本实施例中,通过将所述第一信息转发至预设可逆布隆查找表中,基于所述可逆布隆查找表中的预设算法对所述第一信息进行处理,生成第一查找数据位;将所述不存在信息对应不确定信息转发至预设可逆布隆查找表中,基于所述预设算法对所述不确定信息进行处理,生成第二查找数据位;比对所述第一查找数据位与所述第二查找数据位,确定误判信息,以根据所述误判信息进行信息同步。在本实施例中,通过预设可逆布隆查找表的设置,减少因布隆过滤器而造成的误判。

进一步地,基于上述实施例,本发明提供区块链交易池信息的同步方法另一实施例,在该实施例中,所述在距离当前时间所述第一同步窗口时间长度后,获取所述第一信息转发至预设布隆过滤器之后得到的第一显示数据位信息步骤之前包括:

步骤b1,获取交易数据单元的第二预设数量,根据所述第二预设数量以及以及所述交易数据单元在所述第二预设数量对应每个预设费用分区的各个第二预设占比,确定通过所述预设布隆过滤器的交易数据单元的第二关联数量;

步骤b2,根据所述第二关联数量,预设误差率以及所述预设映射方式,确定将所述第一信息转发至预设布隆过滤器的信息转发速率。

在本实施例中,需要说明的是,预设布隆过滤器的误差率公式为:

k代表选择的hash函数个数,n代表需要插入布隆过滤器的元素数目(交易数据单元的数目),m代表布隆过滤器的长度(信息转发速率)。

获取交易数据单元的第二预设数量,如图7所示,第二预设数量为5078笔交易数据单元,根据所述第二预设数量以及以及所述交易数据单元在所述第二预设数量对应每个预设费用分区的各个第二预设占比,确定通过所述预设布隆过滤器的交易数据单元的第二关联数量,即具体地,对5078笔交易根据gasprice(手续费用)进行预设划分,发现gasprice小于预设18gwei(预设费用分区)的交易占总数的58.55%(第二预设占比),而若交易池不同步的交易基本上是gasprice小于18gwei的交易,则n=4800*3/5=2880(第二关联数量),k可以为布隆过滤器中默认的3(预设映射方式),假设容许的误判率为0.001即p为0.001,则得出m≈82285bit≈10285byte≈10kb。即设计的布隆过滤器误判率为0.001时,信息转发速率的大小为10kb,即为每次进行信息交换的大小为10kb。

进一步地,所述预设算法包括预设算法参数;

所述将所述第一信息转发至预设可逆布隆查找表中步骤之前还包括:

步骤c1,获取交易数据单元的第一预设数量,根据所述第一预设数量以及所述交易数据单元在所述第一预设数量对应每个预设费用分区的各个第一预设占比,确定所述预设可逆布隆查找表中对应交易数据单元的第一关联数量;

步骤c2,根据所述第一关联数量以及预设比例因子,确定所述算法参数的大小。

在本实施例中,需要预先获取预设可逆布隆查找表中各个参数的具体值,进而得到算法参数,进而再进行信息的处理,具体地,首先获取交易数据单元的第一预设数量,根据所述第一预设数量以及所述交易数据单元在所述第一预设数量对应每个预设费用分区的各个第一预设占比,确定所述预设可逆布隆查找表中对应交易数据单元的第一关联数量(与第二关联数量获取方式类似),根据所述第一关联数量以及预设比例因子,确定所述算法参数的大小,具体地,预设可逆布隆查找表需要获取第一关联数量,进而把对应每个交易数据单元插入到一张表格的格子里,然后基于第一关联数量j和比例因子τ(预设比例因子)可以得到算法参数,即c=j*τ),确定所述算法参数的大小,以确定预设算法,以准确进行信息的处理。

在本实施例中,通过获取交易数据单元的第二预设数量,根据所述第二预设数量以及以及所述交易数据单元在所述第二预设数量对应每个预设费用分区的各个第二预设占比,确定通过所述预设布隆过滤器的交易数据单元的第二关联数量;根据所述第二关联数量,预设误差率以及所述预设映射方式,确定将所述第一信息转发至预设布隆过滤器的信息转发速率。在本实施例中,确定。

参照图3,图3是本发明实施例方案涉及的硬件运行环境的设备结构示意图。

本发明实施例区块链交易池信息的同步设备可以是pc,也可以是智能手机、平板计算机、便携计算机等终端设备。

如图3所示,该区块链交易池信息的同步设备可以包括:处理器1001,例如cpu,存储器1005,通信总线1002。其中,通信总线1002用于实现处理器1001和存储器1005之间的连接通信。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。

可选地,该区块链交易池信息的同步设备还可以包括目标用户界面、网络界面、摄像头、rf(radiofrequency,射频)电路,传感器、音频电路、wifi模块等等。目标用户界面可以包括显示屏(display)、输入单元比如键盘(keyboard),可选目标用户界面还可以包括标准的有线界面、无线界面。网络界面可选的可以包括标准的有线界面、无线界面(如wi-fi界面)。

本领域技术人员可以理解,图3中示出的区块链交易池信息的同步设备结构并不构成对区块链交易池信息的同步设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图3所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块以及区块链交易池信息的同步程序。操作系统是管理和控制区块链交易池信息的同步设备硬件和软件资源的程序,支持区块链交易池信息的同步程序以及其他软件和/或程序的运行。网络通信模块用于实现存储器1005内部各组件之间的通信,以及与区块链交易池信息的同步设备中其他硬件和软件之间通信。

在图3所示的区块链交易池信息的同步设备中,处理器1001用于执行存储器1005中存储的区块链交易池信息的同步程序,实现上述任一项所述的区块链交易池信息的同步方法的步骤。

本发明区块链交易池信息的同步设备具体实施方式与上述区块链交易池信息的同步方法各实施例基本相同,在此不再赘述。

此外,本发明实施例还提出一种区块链交易池信息的同步装置,所述区块链交易池信息的同步装置应用于第一区块链节点,所述区块链交易池信息的同步装置包括:

第一获取模块,用于当检测到与其他第二区块链节点连接时,获取所述第一区块链节点对应第一交易池的第一信息,与其他第二区块链节点对应第二交易池的第二信息之间信息同步的第一同步窗口时间长度;

第一确定模块,用于在距离当前时间所述第一同步窗口时间长度后,确定所述第一信息与所述第二信息之间是否存在差异;

第二确定模块,用于若所述第一信息与所述第二信息之间存在差异,则确定根据第一预设同步策略进行所述第一交易池与所述第二交易池之间信息的第一同步;

第三确定模块,用于若所述第一信息与所述第二信息之间未存在差异,则确定根据第二预设同步策略进行所述第一交易池与所述第二交易池之间信息的第二同步,其中,所述第一同步与所述第二同步对应的同步窗口时间长度不同。

可选地,所述第三确定模块包括:

第一确定单元,用于若所述第一信息与所述第二信息之间未存在差异,则确定当前所述第一交易池与所述第二交易池之间信息的连续同步次数;

第二确定单元,用于根据所述连续同步次数与所述第一同步窗口时间长度确定第二同步窗口时间长度,并根据所述第二同步窗口时间长度进行所述第二同步。

可选地,所述第二确定模块包括:

第一获取单元,用于若所述第一信息与所述第二信息之间存在差异,则获取所述第一信息与所述第二信息之间的差异信息;

第一同步单元,用于基于所述第一同步窗口时间长度与所述第一调整信息,完成所述第一交易池与所述第二交易池之间信息的所述第一同步。

可选地,所述第一确定模块包括:

第二获取单元,用于在距离当前时间所述第一同步窗口时间长度后,获取所述第一信息转发至预设布隆过滤器之后得到的第一显示数据位信息,其中,第一信息中的每个交易数据单元通过预设映射方式映射到所述布隆过滤器中对应个数的显示数据位的显示数值;

第三获取单元,用于获取所述其他第二区块链节点基于所述第一显示数据位信息与所述第二信息对应第二显示数据位信息比对后得到的不存在信息;

第三确定单元,用于若所述不存在信息不为空,确定所述第一信息与所述第二信息之间存在差异。

可选地,所述第一确定模块包括:

第一处理单元,用于将所述第一信息转发至预设可逆布隆查找表中,基于所述可逆布隆查找表中的预设算法对所述第一信息进行处理,生成第一查找数据位;

第二处理单元,用于将所述不存在信息对应不确定信息转发至预设可逆布隆查找表中,基于所述预设算法对所述不确定信息进行处理,生成第二查找数据位;

比对单元,用于比对所述第一查找数据位与所述第二查找数据位,确定误判信息,以根据所述误判信息进行信息同步。

可选地,所述预设算法包括预设算法参数;

所述区块链交易池信息的同步装置包括:

第二获取模块,用于获取交易数据单元的第一预设数量,根据所述第一预设数量以及所述交易数据单元在所述第一预设数量对应每个预设费用分区的各个第一预设占比,确定所述预设可逆布隆查找表中对应交易数据单元的第一关联数量;

第四确定模块,用于根据所述第一关联数量以及预设比例因子,确定所述算法参数的大小。

可选地,所述区块链交易池信息的同步装置包括:

第三获取模块,用于获取交易数据单元的第二预设数量,根据所述第二预设数量以及以及所述交易数据单元在所述第二预设数量对应每个预设费用分区的各个第二预设占比,确定通过所述预设布隆过滤器的交易数据单元的第二关联数量;

第五确定模块,用于根据所述第二关联数量,预设误差率以及所述预设映射方式,确定将所述第一信息转发至预设布隆过滤器的信息转发速率。

所述区块链交易池信息的同步装置具体实施方式与上述区块链交易池信息的同步方法各实施例基本相同,在此不再赘述。

此外,本发明还提供了一种计算机介质,所述计算机介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于实现上述区块链交易池信息的同步方法各实施例的步骤。

本发明设备及介质(即计算机介质)的具体实施方式的拓展内容与上述区块链交易池信息的同步方法各实施例基本相同,在此不做赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

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