掌桥专利:专业的专利平台
掌桥专利
首页

一种基于Raft共识算法的分布式哈希表的生成方法

文献发布时间:2023-06-19 19:28:50


一种基于Raft共识算法的分布式哈希表的生成方法

技术领域

本发明涉及计算机技术领域,尤其涉及一种基于Raft共识算法的分布式哈希表的生成方法。

背景技术

Kademlia DHT是一种分布式哈希表算法,被大量使用于P2P文件传输系统、分布式内容路由系统中。该算法采用内容路由的思想,存储内容本身就代表路由信息,方便用户在大规模的分布式网络环境中寻找到自己想要的数据资源。

传统Kademlia DHT算法按照以下方式运行:参与DHT覆盖网络的Peer节点随机生成分布式哈希表标识,通过Bootstrap节点连接入DHT覆盖网络,通过不断查询自己的分布式哈希表标识,建立路由表。这样的算法流程中,存在以下缺点:

对于分布式哈希表标识的生成不设限制。任何节点都可以用任一预设长度的二进制数作为自己的分布式哈希表标识,这使得恶意攻击者可以冒用别人的分布式哈希表标识,或者欺骗其他Peer自己拥有某些资源。

传统的DHT算法实现会定期更换新分布式哈希表标识,以规避这样的问题。但定期生成新分布式哈希表标识,会使DHT覆盖网络上的路由表失效,Peer间需要重新建立路由表。

暂时的下线、IP的变化,会导致分布式哈希表标识的变化。由于NAT的存在,用户每次连接到DHT覆盖网络时的IP可能不一样;并且如今的移动网络发达,用户会经常在不同的IP间切换,同样也会造成DHT覆盖网路的路由表失效。

Bootstrap节点可能有恶意,或者发生单点故障。用户必须通过一个Bootstrap节点才能加入DHT网络,但是稳定的周知Bootstrap节点并不多。而且网络随时有可能发生分区现象,使得用户不能加入DHT覆盖网络。

发明内容

本发明的目的在于提供一种基于Raft共识算法的分布式哈希表的生成方法,旨在解决现有的分布式哈希表生成方法稳定性较差的问题。

为实现上述目的,本发明提供了一种基于Raft共识算法的分布式哈希表的生成方法,包括以下步骤:

对分布式哈希表标识进行注册,得到新分布式哈希表标识;

对所述将旧分布式哈希表标识定向到新分布式哈希表标识,得到定向分布式哈希表标识;

基于所述定向分布式哈希表标识解决恶意用户。

其中,所述对分布式哈希表标识进行注册,得到新分布式哈希表标识,包括:

参与者生成预设长度的分布式哈希表标识并提交给网络层,在服务器集群中进行查询,得到查询结果;

基于所述第一查询结果进行判断,若分布式哈希表标识已存在,则通知参与者重新生成新分布式哈希表标识,得到新分布式哈希表标识;若分布式哈希表标识不存在,则Raft算法进行一轮状态机更新,存储参与者与分布式哈希表标识间的对应关系,得到新分布式哈希表标识。

其中,所述对所述将旧分布式哈希表标识定向到新分布式哈希表标识,得到定向分布式哈希表标识,包括:

参与者生成预设长度的分布式哈希表标识并提交给网络层,在服务器集群中进行查询,得到第二查询结果;

基于所述第二查询结果进行判断,若分布式哈希表标识已存在,则通知参与者重新生成新分布式哈希表标识,得到定向分布式哈希表标识;若分布式哈希表标识不存在,则Raft算法进行一轮状态机更新,存储参与者与分布式哈希表标识间的对应关系,得到定向分布式哈希表标识;

将旧分布式哈希表标识定向至所述新分布式哈希表标识,得到定向分布式哈希表标识。

其中,所述基于所述定向分布式哈希表标识解决恶意用户,包括:

识别冒用分布式哈希表标识的恶意用户。

服务器集群基于所述定向分布式哈希表标识使用算法的任期来解决恶意用户。

其中,所述算法为共识算法。

本发明的一种基于Raft共识算法的分布式哈希表的生成方法,对分布式哈希表标识进行注册,得到新分布式哈希表标识;对所述将旧分布式哈希表标识定向到新分布式哈希表标识,得到定向分布式哈希表标识;基于所述定向分布式哈希表标识解决恶意用户,本发明本提供一种针对现有Kademlia DHT算法的改进方式,以增强DHT覆盖网络的长期稳定性。通过运行一个Raft算法的第三方辅助实体,在DHT网络之外,独立运行一个Raft共识第三方实体,可以在数据一致性上进行弥补,提高DHT网络中数据的持久性存储,进而提高DHT网络的长期稳定性,从而解决了现有的分布式哈希表生成方法稳定性较差的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的总体结构图。

图2是DHT ID注册的流程图。

图3是DHT ID变更的流程图。

图4是DHT ID冲突的流程图。

图5是本发明提供的一种基于Raft共识算法的分布式哈希表的生成方法的流程图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

请参阅图1至图5,本发明提供一种基于Raft共识算法的分布式哈希表的生成方法,包括以下步骤:

S1对分布式哈希表标识进行注册,得到新分布式哈希表标识;

S11参与者生成预设长度的分布式哈希表标识并提交给网络层,在服务器集群中进行查询,得到第一查询结果;

具体的,对DHT ID进行注册:参与者生成预设长度的DHT ID后,提交给网络层,网络层作为服务代理,将DHT ID在ETCD中进行查询。

S12基于所述第一查询结果进行判断,若分布式哈希表标识已存在,则通知参与者重新生成新分布式哈希表标识,得到新分布式哈希表标识;若分布式哈希表标识不存在,则Raft算法进行一轮状态机更新,存储参与者与分布式哈希表标识间的对应关系,得到新分布式哈希表标识。

具体的,如果ID已存在,则通知参与者重新生成新的DHT ID;如果DHT ID不存在,则Raft算法进行一轮状态机更新,存储参与者与DHT ID间的对应关系。通过这一步骤,参与者声明自己是DHT ID的所有者。

S2对所述将旧分布式哈希表标识定向到新分布式哈希表标识,得到定向分布式哈希表标识;

S21参与者生成预设长度的分布式哈希表标识并提交给网络层,在服务器集群中进行查询,得到第二查询结果;

具体的,对DHT ID进行注册:参与者生成合法长的DHT ID后,提交给网络层,网络层作为服务代理,将DHT ID在ETCD中进行查询。

S22基于所述第二查询结果进行判断,若分布式哈希表标识已存在,则通知参与者重新生成新分布式哈希表标识,得到定向分布式哈希表标识;若分布式哈希表标识不存在,则Raft算法进行一轮状态机更新,存储参与者与分布式哈希表标识间的对应关系,得到定向分布式哈希表标识;

具体的,如果ID已存在,则通知参与者重新生成新的DHT ID;如果DHT ID不存在,则Raft算法进行一轮状态机更新,存储参与者与DHT ID间的对应关系。通过这一步骤,参与者声明自己是DHT ID的所有者。

S23将旧分布式哈希表标识重定向至所述新分布式哈希表标识,得到定向分布式哈希表标识。

具体的,由于IP变更或网络波动等情况,参与者需要替换自己DHT ID,可以在ETCD中对新ID进行注册,并对旧ID进行重定向。

S3基于所述定向分布式哈希表标识解决恶意用户。

S31识别冒用分布式哈希表标识的恶意用户。

具体的,识别冒用DHT ID的恶意用户。

S32服务器集群基于所述定向分布式哈希表标识使用算法的任期来解决恶意用户。

具体的,ETCD会保存最早声明DHT ID的用户信息,因此可以根据Raft算法的任期来解决冲突的DHT ID,只有最早注册ID的用户才是合法用户,作为DHT覆盖网络的Bootstrap节点,给新参与者提供初始路由信息。新参与DHT网络的Peer可以委托ETCD作为一个Raft算法的学习者,从任意Raft配置的参与角色中获取一定量的DHT路由信息,作为Bootstrap信息来建立初始路由表。

ETCD与DHT网络参与者的数据表设计。ETCD是一个采用Raft共识算法的分布式K-V数据库。在本发明例中,采用ETCD作为Kademlia DHT算法的外部可信第三方实体,并不会影响已有DHT网络的运行。DHT网络的Peer节点,在ETCD系统中属于学习者身份,只能向ETCD系统发出查询请求、写入请求;不参与Raft共识协议的运行、数据有效性的验证。

Peer节点的内容路由表如表1所示:

表1:内容路由表Peer节点的网络连接路由表:

表2:网络连接路由表

CID是内容ID,根据文件内容计算得到。Peer节点通过CID,查询内容路由表得到对应的DHT ID,Peer节点就可以知道需要向哪个peer进行数据请求。再通过网络路由表,得到数据请求对象的具体网络连接地址。Peer节点查询到DHT ID后,可以同步的向ETCD进行查询。ETCD的查询结果与自己的路由表查询结果互为补充,增强DHT网络的可用性。若二者结果有出入,说明有以下几种可能:①对应Peer的IP地址发生变化②有人冒充对应Peer,并且虚假数据被保存到自己的路由表中

ETCD中数据示例:

表3:ETCD数据库表

IP即是对应DHT ID的IP,Term指这条记录是在Raft共识的哪个任期被加入到ETCD的。Commitment是Peer的私钥对IP加密的结果H(IP),ETCD的验证者用Peer的公钥进行解密,如果得到的结果与IP相同,则通过验证。若后期Peer用户需要对自己的DHT ID、IP等信息进行变更,也是通过同样的方式进行验证,可使得DHT网络路由信息更加稳定。

以上所揭露的仅为本发明一种基于Raft共识算法的分布式哈希表的生成方法较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

相关技术
  • 应用于分布式新能源系统的基于RAFT算法的区块链共识方法
  • 一种基于分布式共识算法的随机数生成方法
技术分类

06120115926658