2016-10-24 25 views
0

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입니다.

    답변

    1

    당신은 더 이상 kademlia를 다루지 않을 것입니다. 다른 거리 메트릭, 일부 불균일 거리 메트릭을 사용하는 다른 라우팅 알고리즘이 있지만 kademlia 특정 가정에 의존하지 않으며 때로는 이러한 메트릭의 일부 바람직하지 못한 측면을 보완하기 위해 다른 기능을 통합합니다.

    메트릭에 관계가있을 수 있으므로 (각 점에 대해 두 후보가 있음) 정확한 노드 집합에 더 이상 수렴 할 수 없습니다.

    버킷 스플릿 및 기타 라우팅 테이블 유지 관리 알고리즘은 동일한 거리가 노드 ID에서만 발생할 수 있다고 가정하기 때문에 변경해야합니다.

    Big-O 속성 또는 다른 kademlia 보증에 영향을 줄지 확실하지 않습니다.

    어쨌든, 이것은 X-Y 문제인 것처럼 보입니다. 특정 목표를 달성하기 위해 메트릭을 수정하려고합니다. 어쩌면 그 목표를 염두에두고 설계된 라우팅 오버레이를 찾아야합니다.

    D (X, Y) = ABS (X-Y) + 1/(X의 배타적 Y)이

    이 비실용적 같다 정수에 반올림 부문에서 겪고있다. 실제로 작은 수는 있지만 더 큰 (예 : 160 비트) 숫자는 다루지 않으므로 부서를 더 비싸게 만듭니다.

    +0

    'd (x, y) = abs (xy) + 1/(x xor y)'는 실제 코드에서 이론적 인 레벨을 의미 했으므로 분할없이 구현을 사용합니다. 예를 들어, ID는 최하위 반 (0)이 비어있는 (320 비트) 320 비트이며, 거리 함수는 320 비트를 생성합니다. 상위 160 비트는 ID의 상위 160 비트의 'xy'이고 하위 160 비트는 'xx 및 y'입니다. 원래 xor 메트릭의 모든 속성을 보존해야합니다. 맞습니까? – Wapac

    +0

    Kademlia가 메트릭 기능을 제외하고는 유스 케이스에 가장 적절하다고 생각되는 Kademlia, Chord 및 Pastry 만 알기 때문에 다른 algs에 관해서도 매우 흥미가 있습니다. – Wapac

    +0

    실제로 사용법을 설명하는 방법은 무엇입니까? 케이스? 어쨌든 몇 가지 유용한 Google 키워드 "P2P 오버레이 네트워크", "라우팅"및 "거리 측정 항목"(다양한 조합으로 적용 가능) 예 : 내가 읽은 한 논문은 Levenshtein 거리를 사용했지만, 끔찍한 클러스터링 동작으로 인해 노드 위치를 동적으로 조정해야했습니다. CAN은 더 높은 차원의 메트릭을 사용하는 예제가 될 것입니다. – the8472