Kademlia는 XOR 메트릭을 사용합니다. 무엇보다도, 이것은 "단방향성"속성 (= 주어진 점 x와 거리 e> 0에 대해 d (x, y) = e와 같은 정확히 한 점 y가 있습니다)이라고합니다.Kademlia Metric 변경 - 단방향 속성 중요성
첫 번째 질문은 일반적으로 다음과 같은 일반적인 질문입니다. Kametlia의 기능에 메트릭의 중요 특성이 중요한가 아니면 특정 노드의 압력을 가라 앉히는 데 도움이되는지 (원래의 종이가 제안한 것처럼). 즉, 메트릭을 변경하려면 "단방 향"메트릭을 함께 사용하는 것이 얼마나 중요합니까?
두 번째 질문은 메트릭의 구체적인 변경에 대한 것입니다. 노드 식별자 (주소)를 X 비트 숫자로 가정하면 다음 메트릭 중 하나가 Kademlia에서 작동합니까?
d(x,y) = abs(x-y)
d(x,y) = abs(x-y) + 1/(x xor y)
제 메트릭은 단순히 숫자 사이의 차이를 제공
-
, 노드 ID (100) 아이디 (90) 및 (110)의 노드는 등거리, 그래서이 단방향 측정되지 않도록. 두 번째 경우에는 (x x 또는 y)가 단방향이므로 1/(x x 또는 y)가이 속성을 유지해야하므로 1/(x x 또는 y)를 추가하는 것을 수정합니다.
노드 ID 100의 경우 노드 ID 90은 d(100,90) = 10 + 1/62
이고 노드 ID 110과의 거리는 d(100,110) = 10 + 1/10
입니다.
'd (x, y) = abs (xy) + 1/(x xor y)'는 실제 코드에서 이론적 인 레벨을 의미 했으므로 분할없이 구현을 사용합니다. 예를 들어, ID는 최하위 반 (0)이 비어있는 (320 비트) 320 비트이며, 거리 함수는 320 비트를 생성합니다. 상위 160 비트는 ID의 상위 160 비트의 'xy'이고 하위 160 비트는 'xx 및 y'입니다. 원래 xor 메트릭의 모든 속성을 보존해야합니다. 맞습니까? – Wapac
Kademlia가 메트릭 기능을 제외하고는 유스 케이스에 가장 적절하다고 생각되는 Kademlia, Chord 및 Pastry 만 알기 때문에 다른 algs에 관해서도 매우 흥미가 있습니다. – Wapac
실제로 사용법을 설명하는 방법은 무엇입니까? 케이스? 어쨌든 몇 가지 유용한 Google 키워드 "P2P 오버레이 네트워크", "라우팅"및 "거리 측정 항목"(다양한 조합으로 적용 가능) 예 : 내가 읽은 한 논문은 Levenshtein 거리를 사용했지만, 끔찍한 클러스터링 동작으로 인해 노드 위치를 동적으로 조정해야했습니다. CAN은 더 높은 차원의 메트릭을 사용하는 예제가 될 것입니다. – the8472