CN112507032B - 一种kademlia协议的k-桶构造改进方法 - Google Patents

一种kademlia协议的k-桶构造改进方法 Download PDF

Info

Publication number
CN112507032B
CN112507032B CN202011527625.5A CN202011527625A CN112507032B CN 112507032 B CN112507032 B CN 112507032B CN 202011527625 A CN202011527625 A CN 202011527625A CN 112507032 B CN112507032 B CN 112507032B
Authority
CN
China
Prior art keywords
bucket
routing table
address
kademlia
protocol
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011527625.5A
Other languages
English (en)
Other versions
CN112507032A (zh
Inventor
胡广庆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengchain Science And Technology Shenzhen Co ltd
Original Assignee
Zhengchain Science And Technology Shenzhen Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhengchain Science And Technology Shenzhen Co ltd filed Critical Zhengchain Science And Technology Shenzhen Co ltd
Priority to CN202011527625.5A priority Critical patent/CN112507032B/zh
Publication of CN112507032A publication Critical patent/CN112507032A/zh
Application granted granted Critical
Publication of CN112507032B publication Critical patent/CN112507032B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种kademlia协议的k‑桶构造改进方法,包括kademlia协议的k‑桶构造方法及其适配的路由表结构方法,所述的kademlia协议的k‑桶构造方法是p2p网络中节点的拓扑关系构造方法,所述的kademlia协议适配的路由表是p2p网络中节点的拓扑关系构造的存储结构方法。本发明kademlia协议的k‑桶构造改进方法解决了现有kademlia协议中存在的空桶效应问题,并通过适配的路由表结构,使得路由表内节点分布更加均匀合理,kademlia协议性能得到有效提升。

Description

一种kademlia协议的k-桶构造改进方法
技术领域
本发明涉及p2p网络技术,特别是涉及一种kademlia协议的k-桶构造改进方法。
背景技术
p2p网络技术是区块链技术的一个重要组成部分。kademlia协议作为p2p网络技术的关键技术,在区块链系统中越来越多地得到应用。但现有kademlia协议中,路由表的k-桶号是由160位地址的异或距离的大端或小端的零的连续个数值表示,使得在路由表低端很难找到节点,而在路由表高端又节点过多。这就是现有kademlia协议的路由表存在的空桶效应问题,不能有效发挥路由表k-桶的作用。
发明内容
本发明所要解决的技术问题是设计一种新的技术解决方案,以解决现有kademlia协议的路由表存在的空桶效应问题,从而提高路由表k-桶的性能。
本发明的技术问题通过以下技术方案予以解决。
一种kademlia协议的k-桶构造改进方法,其特征在于,所述方法包括改进kademlia协议的k-桶构造方法,算法步骤如下:
第一步:检查160位本地节点地址srcID160与目标节点地址dstID160的前三位逻辑与运算是否相同,即
0xE0 & srcID160 [0] = 0xE0 & dstID160 [0]
如果本地节点地址srcID160与目标节点地址dstID160的前三位相同,则符合k-桶距离加入条件,否则不符合k-桶距离加入条件;相当于确定距离范围内的节点可被选中加入k-桶;
第二步:将本地节点地址srcID160与目标节点地址dstID160的160位地址值b0~b159分别按位异或运算映射成8位编码B0~B7:
B0 = b0^b1^b2^b3^b4^b5^b6^b7^b8^b9^
b10^b11^b12^b13^b14^b15^b16^b17^b18^b19
B1 = b20^b21^b22^b23^b24^b25^b26^b27^b28^b29^
b30^b31^b32^b33^b34^b35^b36^b37^b38^b39
B2 = b40^b41^b42^b43^b44^b45^b46^b47^b48^b49^
b50^b51^b52^b53^b54^b55^b56^b57^b58^b59
B3 = b60^b61^b62^b63^b64^b65^b66^b67^b68^b69^
b70^b71^b72^b73^b74^b75^b76^b77^b78^b79
B4 = b80^b81^b82^b83^b84^b85^b86^b87^b88^b89^
b90^b91^b92^b93^b94^b95^b96^b97^b98^b99
B5 = b100^b101^b102^b103^b104^b105^b106^b107^b108^b109^
b110^b111^b112^b113^b114^b115^b116^b117^b118^b119
B6 = b120^b121^b122^b123^b124^b125^b126^b127^b128^b129^
b130^b131^b132^b133^b134^b135^b136^b137^b138^b139
B7 = b140^b141^b142^b143^b144^b145^b146^b147^b148^b149^
b150^b151^b152^b153^b154^b155^b156^b157^b158^b159
第三步:分别合成8位本地节点映射地址srcID8与目标节点映射地址dstID8字节编码:
srcID8 =(B0<<7)|(B1<<6) |(B2<<5)|(B3<<4) |
(B4<<3)|(B5<<2) |(B6<<1)|B7
dstID8=(B0<<7)|(B1<<6) |(B2<<5) |(B3<<4)|
(B4<<3)|(B5<<2) |(B6<<1)|B7
第四步:计算字节逻辑异或距离
dbyte = srcID8^dstID8
第五步:将字节逻辑异或距离映射到k-桶位置
Ki = dbyte >> 1 ϵ [0, 127]
这里Ki定义为k-桶号。
本发明的技术问题通过以下进一步的技术方案予以解决。
还设有与所述k-桶构造方法相适配的路由表存储方法,所述路由表存储方法是一个二维表结构,所述二维表结构的一行称为k-桶。
所述的路由表共有128个k-桶,由k-桶号建立索引,k-桶号的取值为0~127。
所述路由表的k-桶,每个k-桶内可以存储20个节点。
这种kademlia协议的k-桶构造改进方法的特点是:
所述kademlia协议的k-桶构造改进方法,包括k-桶的逻辑距离新的计算生成算法,确保路由表内每个k-桶都有相同的节点存储数目;还设有与所述k-桶构造方法相适配的路由表存储方法,有效提高了路由表k-桶的性能。
本发明与现有技术相比的有益效果是:
本发明改进了现有kademlia协议的路由表k-桶构建方法,解决了现有kademlia协议的路由表存在的空桶效应问题,从而提高路由表k-桶的性能。
附图说明
图1是本发明具体实施方式的k-桶索引号编码流程图;
图2是本发明具体实施方式的160位地址码的8位编码映射图;
图3是本发明具体实施方式的现有k-桶表结构图;
图4 是本发明具体实施方式的改进k-桶表结构图;
具体实施方式
下面结合具体实施方式并对照附图对本发明进行说明。
本具体实施方式的所述kademlia协议的k-桶构造改进方法,算法步骤如下:
第一步:检查160位本地节点地址srcID160地址dstID160的前三位逻辑与运算是否相同,即
0xE0 & srcID160 [0] = 0xE0 & dstID160 [0]
如果本地节点地址srcID160与目标节点地址dstID160的前三位相同,则符合k-桶距离加入条件,否则不符合k-桶距离加入条件;相当于确定距离范围内的节点可被选中加入k-桶;
第二步:将本地节点地址srcID160与目标节点地址dstID160的160位地址值b0~b159分别按位异或运算映射成8位编码B0~B7:
B0 = b0^b1^b2^b3^b4^b5^b6^b7^b8^b9^
b10^b11^b12^b13^b14^b15^b16^b17^b18^b19
B1 = b20^b21^b22^b23^b24^b25^b26^b27^b28^b29^
b30^b31^b32^b33^b34^b35^b36^b37^b38^b39
B2 = b40^b41^b42^b43^b44^b45^b46^b47^b48^b49^
b50^b51^b52^b53^b54^b55^b56^b57^b58^b59
B3 = b60^b61^b62^b63^b64^b65^b66^b67^b68^b69^
b70^b71^b72^b73^b74^b75^b76^b77^b78^b79
B4 = b80^b81^b82^b83^b84^b85^b86^b87^b88^b89^
b90^b91^b92^b93^b94^b95^b96^b97^b98^b99
B5 = b100^b101^b102^b103^b104^b105^b106^b107^b108^b109^
b110^b111^b112^b113^b114^b115^b116^b117^b118^b119
B6 = b120^b121^b122^b123^b124^b125^b126^b127^b128^b129^
b130^b131^b132^b133^b134^b135^b136^b137^b138^b139
B7 = b140^b141^b142^b143^b144^b145^b146^b147^b148^b149^
b150^b151^b152^b153^b154^b155^b156^b157^b158^b159
第三步:分别合成8位本地节点映射地址srcID8与目标节点映射地址dstID8字节编码:
srcID8 =(B0<<7)|(B1<<6)|(B2<<5)|(B3<<4)|
(B4<<3)|(B5<<2)|(B6<<1)|B7
dstID8=(B0<<7)|(B1<<6)|(B2<<5)|(B3<<4)|
(B4<<3)|(B5<<2)|(B6<<1)|B7
第四步:计算字节逻辑异或距离
dbyte = srcID8^dstID8
第五步:将字节逻辑异或距离映射到k-桶位置
Ki = dbyte >> 1 ϵ [0, 127]
这里Ki定义为k-桶号。
本具体实施方式的所述k-桶构造方法相适配的路由表存储方法,包括所述路由表存储方法是一个二维表结构,所述二维表结构的一行称为k-桶。
本具体实施方式的所述路由表共有128个k-桶,由k-桶号建立索引,k-桶号的取值为0~127。
本具体实施方式的所述路由表的k-桶,每个k-桶内可以存储20个节点。
本具体实施方式的kademlia协议的k-桶构造改进方法解决了现有kademlia协议存在的空桶效应问题,提高了k-桶路由表的性能。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的技术人员来说,在不脱离本发明构思的前提下做出若干等同替代或明显变更,而且性能或用途相同,都应当视为属于本发明所提交的权利要求书确定的专利保护范围。

Claims (4)

1.一种kademlia协议的k-桶构造改进方法,其特征在于,所述方法包括改进kademlia协议的k-桶构造方法,方法步骤如下:
第一步:检查160位本地节点地址srcID160与目标节点地址dstID160的前三位逻辑与运算是否相同,即
0xE0 & srcID160 [0] = 0xE0 & dstID160 [0]
如果本地节点地址srcID160与目标节点地址dstID160的前三位相同,则符合k-桶距离加入条件,否则不符合k-桶距离加入条件;相当于在确定距离范围内的节点可被选中加入k-桶;
第二步:将本地节点地址srcID160和目标节点地址dstID160的160位地址值b0~b159分别按位异或运算映射成8位编码B0~B7:
B0 = b0^b1^b2^b3^b4^b5^b6^b7^b8^b9^
b10^b11^b12^b13^b14^b15^b16^b17^b18^b19
B1 = b20^b21^b22^b23^b24^b25^b26^b27^b28^b29^
b30^b31^b32^b33^b34^b35^b36^b37^b38^b39
B2 = b40^b41^b42^b43^b44^b45^b46^b47^b48^b49^
b50^b51^b52^b53^b54^b55^b56^b57^b58^b59
B3= b60^b61^b62^b63^b64^b65^b66^b67^b68^b69^
b70^b71^b72^b73^b74^b75^b76^b77^b78^b79
B4 = b80^b81^b82^b83^b84^b85^b86^b87^b88^b89^
b90^b91^b92^b93^b94^b95^b96^b97^b98^b99
B5 = b100^b101^b102^b103^b104^b105^b106^b107^b108^b109^
b110^b111^b112^b113^b114^b115^b116^b117^b118^b119
B6 = b120^b121^b122^b123^b124^b125^b126^b127^b128^b129^
b130^b131^b132^b133^b134^b135^b136^b137^b138^b139
B7 = b140^b141^b142^b143^b144^b145^b146^b147^b148^b149^
b150^b151^b152^b153^b154^b155^b156^b157^b158^b159
第三步:分别合成8位本地节点映射地址srcID8与目标节点映射地址dstID8字节编码:
srcID8 =(B0<<7)|(B1<<6)|(B2<<5)|(B3<<4)|
(B4<<3)|(B5<<2)|(B6<<1)|B7
dstID8=(B0<<7)|(B1<<6) |(B2<<5)|(B3<<4)|
(B4<<3)|(B5<<2)|(B6<<1)|B7
第四步:计算字节逻辑异或距离
dbyte = srcID8^dstID8
第五步:将字节逻辑异或距离映射到k-桶位置
Ki = dbyte >> 1 ϵ [0, 127]
这里Ki定义为k-桶号。
2.根据权利要求1所述的kademlia协议的k-桶构造改进方法,其特征在于:还设有与所述k-桶构造方法相适配的路由表存储方法,所述路由表存储方法是一个二维表结构,所述二维表结构的行称为k-桶。
3.根据权利要求2所述的kademlia协议的k-桶构造改进方法,其特征在于:所述的路由表共有128个k-桶,由k-桶号建立索引,k-桶号的取值为0~127。
4.根据权利要求3所述的kademlia协议的k-桶构造改进方法,其特征在于:所述路由表的k-桶,每个k-桶内可以存储20个节点地址。
CN202011527625.5A 2020-12-22 2020-12-22 一种kademlia协议的k-桶构造改进方法 Active CN112507032B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011527625.5A CN112507032B (zh) 2020-12-22 2020-12-22 一种kademlia协议的k-桶构造改进方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011527625.5A CN112507032B (zh) 2020-12-22 2020-12-22 一种kademlia协议的k-桶构造改进方法

Publications (2)

Publication Number Publication Date
CN112507032A CN112507032A (zh) 2021-03-16
CN112507032B true CN112507032B (zh) 2022-05-27

Family

ID=74921926

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011527625.5A Active CN112507032B (zh) 2020-12-22 2020-12-22 一种kademlia协议的k-桶构造改进方法

Country Status (1)

Country Link
CN (1) CN112507032B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113179336B (zh) * 2021-06-30 2021-09-07 正链科技(深圳)有限公司 面向亿量级大规模集群的分布式对等网络系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100496006C (zh) * 2007-02-02 2009-06-03 华为技术有限公司 选举超级节点、搜索网络节点或资源的方法、装置及系统
EP2319269B1 (en) * 2008-08-27 2014-05-07 Telefonaktiebolaget L M Ericsson (publ) Routing mechanism for distributed hash table based overlay networks
CN101997755B (zh) * 2009-08-28 2012-08-15 中国移动通信集团公司 映射信息交换的方法及映射节点
CN104937565B (zh) * 2013-03-28 2017-11-17 慧与发展有限责任合伙企业 从第一节点到第二节点的地址范围传送
CN106413023B (zh) * 2016-09-24 2019-07-02 陕西尚品信息科技有限公司 一种移动ad-hoc网络中的路由方法
CN108684063B (zh) * 2018-05-11 2020-12-01 湖北大学 一种基于网络拓扑变化的按需路由协议改进方法
CN110611688B (zh) * 2018-06-15 2022-04-12 伊姆西Ip控股有限责任公司 用于查找节点的方法、电子设备和计算机程序产品
CN110381157A (zh) * 2019-07-26 2019-10-25 正链科技(深圳)有限公司 一种基于Kademlia算法的分布式定向数据存储P2P网络

Also Published As

Publication number Publication date
CN112507032A (zh) 2021-03-16

Similar Documents

Publication Publication Date Title
CN112507032B (zh) 一种kademlia协议的k-桶构造改进方法
Haghi et al. Be careful on partial metric fixed point results
CN101673307B (zh) 空间数据索引方法及系统
Aref Relative equilibria of point vortices and the fundamental theorem of algebra
CN102325093A (zh) 一种结构化p2p网络中的路由系统构建方法
Alam et al. Stochastic computing in beyond von-neumann era: Processing bit-streams in memristive memory
Liu et al. The relationship between soft sets and fuzzy sets and its application
Wang et al. The robustness of generalized abstract fuzzy economies in generalized convex spaces
Doll Leukaemia and aplastic anaemia in patients irradiated for ankylosing spondylitis
CN110765319B (zh) 一种提高Janusgraph路径探索性能的方法
Takahashi et al. Efficient agent-based simulation framework for multi-node supercomputers
Pal et al. Properties of carry value transformation
CN111488611B (zh) 业务数据区块链的关系数据存储方法及装置
Nature INDEX OF PRE-SOCRATIC FRAGMENTS
CN114128208B (zh) 在私人群组中进行委外取幂的方法和系统
Hao et al. The principle and applications of asynchronous FIFO
CN104615578A (zh) 基于变量及数学表达式的动态几何软件的实现方法
CN113947199A (zh) 用于执行深度神经网络运算的存储器及其操作方法
Al Rawashdeh et al. Coincidence and common fixed points of integral contractions for L-fuzzy maps with applications in fuzzy functional inclusions
Imdad et al. Fixed point theorems for L-fuzzy mappings in L-fuzzy metric spaces
Chafee Recursively Constructing Tight and
Sawchuk Mobile agent rendezvous in the ring
CN110705193B (zh) 一种基于忆阻的四位二进制乘法器电路
US20110010360A1 (en) Restricting queries based on cost of performance
Liu et al. Compressed bloom filter method of dds middleware based on FPGA

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: An improved k-bucket construction method for kademlia protocol

Effective date of registration: 20230828

Granted publication date: 20220527

Pledgee: Bank of Communications Limited Shenzhen Branch

Pledgor: Zhengchain Science and Technology (Shenzhen) Co.,Ltd.

Registration number: Y2023980053989

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Granted publication date: 20220527

Pledgee: Bank of Communications Limited Shenzhen Branch

Pledgor: Zhengchain Science and Technology (Shenzhen) Co.,Ltd.

Registration number: Y2023980053989

PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: An Improved Method for K-Bucket Construction of Kademlia Protocol

Granted publication date: 20220527

Pledgee: Bank of Communications Limited Shenzhen Branch

Pledgor: Zhengchain Science and Technology (Shenzhen) Co.,Ltd.

Registration number: Y2024980041477