一种基于信任机制的区块链节点同步方法及装置制造方法及图纸

技术编号:19515877 阅读:24 留言:0更新日期:2018-11-21 10:43
本发明专利技术提出了一种基于信任机制的区块链节点同步方法和装置。方法其包括:获取待同步节点的路由表中的各个节点的数据吞吐量历史数据;获取待同步节点的路由表中的各个节点的同步成功率历史数据;获取待同步节点的路由表中的各个节点当前存储的区块链的总难度值;根据所述数据吞吐量历史数据、同步成功率历史数据和区块链的总难度值确定路由表中各个节点的可信度;根据所述各个节点的可信度,选择用于同步的目标节点,并根据目标节点存储的区块链数据对待同步节点进行同步。能够保证选择的用于同步的目标节点不仅具有较大的TD值,同时网络状态较好,节点出现错误的概率较低。从而从多个方面保证同步操作的稳定性,提高同步的成功率。

【技术实现步骤摘要】
一种基于信任机制的区块链节点同步方法及装置
本专利技术涉及计算机应用和区块链
,尤其涉及一种基于信任机制的区块链节点同步方法及装置。
技术介绍
目前,最主要的区块链平台包括比特币平台和以太坊平台。其中,以太坊平台将一代加密数字货币扩展为可编程货币,支持第三方开发者在其平台中开发智能合约应用及发行数字代币(token),从而极大地扩展了区块链的应用场景。目前,以太坊平台已成为了区块链业界最为流行的公链系统。区块链的一个重要特点就是在每个节点均保存整个区块链的区块信息,因此,需要对整个平台的所有节点的区块数据进行同步更新。在以太坊平台中,每隔10秒产生一个新的区块,相较于比特币平台每10分钟产生一个区块而言,对区块数据的更新效率的要求更高。当前以太坊平台的节点数量约在10万的数量级且在不断增长中,同时,交易量也随着区块链技术的普及而日益增长,从而导致每个区块的容量在可允许范围内不断增加,这给区块链的节点间的高效同步带来了极大的挑战。当前,以太坊系统网络层采用了基于DHT(DistributedHashTable,分布式哈希表)的KademeliaP2P通信协议。DHT是一种分布式存储方法。在不需要服务器的情况下,每个客户端负责一个小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和存储。在该协议中,每个节点维护的路由表由17个buckets(桶)构成,每个bucket里包含了16个节点。路由表节点的总量不超过17*16个。节点在同步的过程中,会依次获取路由表中各个节点的区块数据中的区块链的TD(TotalDifficulty总难度)值,TD值越高,代表节点所包含的区块链高度越高,即区块个数更多。之后根据各个节点的TD值,从TD值最大的节点处获取新的区块数据完成同步。在以太坊的通讯协议中,默认情况下,节点的路由表是根据节点ID确定的,当节点的ID一定时,节点的路由表大致相同。从而,在当前节点的相邻节点的网络状态不佳的情况下,如经常断网或者网络吞吐量有限的时候,经常会发生节点同步失败。而一旦同步失败,会使得当前节点的交易状态并非最新状态,从而带来极大的安全问题。因此需要对节点同步策略加以改进。
技术实现思路
本专利技术旨在至少在一定程度上解决上述相关技术中的技术问题之一,改进区块链的节点同步策略,提供一种基于信任机制的区块链节点同步方法及装置。为了达到上述目的,根据本专利技术第一方面的实施例提出了一种基于信任机制的区块链节点同步方法,其包括:获取待同步节点的路由表中的各个节点的数据吞吐量历史数据;获取待同步节点的路由表中的各个节点的同步成功率历史数据;获取待同步节点的路由表中的各个节点当前存储的区块链的总难度值;根据所述数据吞吐量历史数据、同步成功率历史数据和区块链的总难度值确定路由表中各个节点的可信度;根据所述各个节点的可信度,选择用于同步的目标节点,并根据目标节点存储的区块链数据对待同步节点进行同步。在一些实施例中,所述根据所述数据吞吐量历史数据、同步成功率历史数据和区块链的总难度值确定路由表中各个节点的可信度,包括:根据所述数据吞吐量历史数据,计算所述各个节点在最近的预定义时间区间内的数据吞吐量的平均值,将所述平均值作为数据吞吐量参数;根据所述同步成功率历史数据,得到各个节点的信誉值,所述信誉值为根据同步成功率数据按照预定义规则计算所得的数值;以及根据所述各个节点的数据吞吐量参数、信誉值和区块链的总难度值确定各个节点的可信度。在一些实施例中,所述根据所述各个节点的数据吞吐量参数、信誉值和区块链的总难度值确定各个节点的可信度,包括:对于每个节点,根据预定义的加权系数,对所述节点的数据吞吐量参数、信誉值和区块链的总难度值进行加权求和,根据加权求和的结果确定所述节点的可信度。在一些实施例中,所述根据所述同步成功率历史数据,得到各个节点的信誉值,包括按照如下公式递推计算各个节点的信誉值:其中,ξ表示节点的当前信誉值;ξ-1表示节点最近一次计算的历史信誉值;N为节点在最近的预定义次数的节点同步操作中,作为目标节点成功同步的次数;为预定义的奖惩系数。通过本专利技术的基于信任机制的区块链节点同步方法,能够保证选择的用于同步的目标节点不仅具有较大的TD值,同时网络状态较好,节点出现错误的概率较低。从而从多个方面保证同步操作的稳定性,提高同步的成功率。为了实现上述目的,根据本专利技术第二方面的实施例提供了一种基于信任机制的区块链节点同步装置,其包括:吞吐量获取模块,用于获取待同步节点的路由表中的各个节点的数据吞吐量历史数据;同步成功率获取模块,用于获取待同步节点的路由表中的各个节点的同步成功率历史数据;区块链的总难度获取模块,用于获取待同步节点的路由表中的各个节点当前存储的区块链的总难度值;可信度计算模块,用于根据所述数据吞吐量历史数据、同步成功率历史数据和区块链的总难度值确定路由表中各个节点的可信度;节点同步模块,用于根据所述各个节点的可信度,选择用于同步的目标节点,并根据目标节点存储的区块链数据对待同步节点进行同步。在一些实施例中,所述可信度计算模块根据所述数据吞吐量历史数据、同步成功率历史数据和区块链的总难度值确定路由表中各个节点的可信度,包括:根据所述数据吞吐量历史数据,计算所述各个节点在最近的预定义时间区间内的数据吞吐量的平均值,将所述平均值作为数据吞吐量参数;根据所述同步成功率历史数据,得到各个节点的信誉值,所述信誉值为根据同步成功率数据按照预定义规则计算所得的数值;以及根据所述各个节点的数据吞吐量参数、信誉值和区块链的总难度值确定各个节点的可信度。在一些实施例中,所述可信度计算模块根据所述各个节点的数据吞吐量参数、信誉值和区块链的总难度值确定各个节点的可信度,包括:对于每个节点,根据预定义的加权系数,对所述节点的数据吞吐量参数、信誉值和区块链的总难度值进行加权求和,根据加权求和的结果确定所述节点的可信度。在一些实施例中,所述可信度计算模块根据所述同步成功率历史数据,得到各个节点的信誉值,包括按照如下公式计算各个节点的信誉值:其中,ξ表示节点的当前信誉值;ξ-1表示节点最近一次计算的历史信誉值;N为节点在最近的预定义次数的节点同步操作中,作为目标节点成功同步的次数;为预定义的奖惩系数。通过本专利技术的基于信任机制的区块链节点同步装置,能够保证选择的用于同步的目标节点不仅具有较大的TD值,同时网络状态较好,节点出现错误的概率较低。从而从多个方面保证同步操作的稳定性,提高同步的成功率。为了实现上述目的,本专利技术第三方面实施例提供了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现根据本专利技术第一方面所述的基于信任机制的区块链节点同步方法。为了实现上述目的,本专利技术第四方面实施例提供了一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,实现根据本专利技术第一方面所述的基于信任机制的区块链节点同步方法。为了实现上述目的,本专利技术第五方面实施例提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现根据本专利技术第一方面所述的基于信任机制的区块链节点同步方法。根据本专利技术第三到五方面的非临时性计算机可读存储介质,计算机程序产品和计本文档来自技高网
...

【技术保护点】
1.一种基于信任机制的区块链节点同步方法,其特征在于,包括:获取待同步节点的路由表中的各个节点的数据吞吐量历史数据;获取待同步节点的路由表中的各个节点的同步成功率历史数据;获取待同步节点的路由表中的各个节点当前存储的区块链的总难度值;根据所述数据吞吐量历史数据、同步成功率历史数据和区块链的总难度值确定路由表中各个节点的可信度;根据所述各个节点的可信度,选择用于同步的目标节点,并根据目标节点存储的区块链数据对待同步节点进行同步。

【技术特征摘要】
1.一种基于信任机制的区块链节点同步方法,其特征在于,包括:获取待同步节点的路由表中的各个节点的数据吞吐量历史数据;获取待同步节点的路由表中的各个节点的同步成功率历史数据;获取待同步节点的路由表中的各个节点当前存储的区块链的总难度值;根据所述数据吞吐量历史数据、同步成功率历史数据和区块链的总难度值确定路由表中各个节点的可信度;根据所述各个节点的可信度,选择用于同步的目标节点,并根据目标节点存储的区块链数据对待同步节点进行同步。2.根据权利要求1所述的基于信任机制的区块链节点同步方法,其特征在于,所述根据所述数据吞吐量历史数据、同步成功率历史数据和区块链的总难度值确定路由表中各个节点的可信度,包括:根据所述数据吞吐量历史数据,计算所述各个节点在最近的预定义时间区间内的数据吞吐量的平均值,将所述平均值作为数据吞吐量参数;根据所述同步成功率历史数据,得到各个节点的信誉值,所述信誉值为根据同步成功率数据按照预定义规则计算所得的数值;以及根据所述各个节点的数据吞吐量参数、信誉值和区块链的总难度值确定各个节点的可信度。3.根据权利要求2所述的基于信任机制的区块链节点同步方法,其特征在于,所述根据所述各个节点的数据吞吐量参数、信誉值和区块链的总难度值确定各个节点的可信度,包括:对于每个节点,根据预定义的加权系数,对所述节点的数据吞吐量参数、信誉值和区块链的总难度值进行加权求和,根据加权求和的结果确定所述节点的可信度。4.根据权利要求2所述的基于信任机制的区块链节点同步方法,其特征在于,所述根据所述同步成功率历史数据,得到各个节点的信誉值,包括按照如下公式递推计算各个节点的信誉值:其中,ξ表示节点的当前信誉值;ξ-1表示节点最近一次计算的历史信誉值;N为节点在最近的预定义次数的节点同步操作中,作为目标节点成功同步的次数;为预定义的奖惩系数。5.一种基于信任机制的区块链节点同步装置,其特征在于,包括:吞吐量获取模块,用于获取待同步节点的路由表中的各个节点的数据吞吐量历史数据;同步成功率获取模块,用于获取待同步节点的路由表中的各个节点的同步成功率历史数据;区块链的总难度...

【专利技术属性】
技术研发人员:杨文玉高春盟
申请(专利权)人:北京金山安全软件有限公司
类型:发明
国别省市:北京,11

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

1