Come ha detto cHao, la natura distribuita della rete significa che i nodi devono pubblicare i propri ID e i loro dettagli di contatto su altri nodi con cui parlano. Non esiste un punto centrale in cui gli ID vengono mappati alle informazioni di contatto, quindi ogni nodo deve mantenere questa mappatura per un sottoinsieme dei nodi sulla rete nella propria tabella di routing.
Le tabelle di instradamento di Kademlia sono strutturate in modo che i nodi abbiano una conoscenza dettagliata della rete vicina a loro e una conoscenza esponenziale che diminuisce ulteriormente.
L'uso di XOR bit a bit come misura della distanza nozionale tra ID ha il vantaggio che per un dato ID di destinazione, non ci sono due ID che possono avere la stessa distanza dal bersaglio.
Immaginate un semplice esempio in cui gli ID sono compresi nell'intervallo da 00 a 63. Se Kademlia viene utilizzato ad es. pura differenza matematica come misura della distanza, 15 e 35 sarebbe la stessa distanza a 25 - entrambi avrebbero una distanza di 10. Usando XOR, la distanza tra 15 e 25 è 22, e tra 25 e 35 è 58.
In questo modo, il gruppo di k ID più vicini a un ID di destinazione può essere calcolato senza ambiguità.
La costante k ha un paio di usi in Kademlia, ma è principalmente il fattore di replicazione. In altre parole, un pezzo di dati viene memorizzato sui nodi k più vicini all'ID dei dati.
Il processo di ricerca è progettato per restituire un gruppo di nodi k (prima di memorizzare i dati su ciascuno di essi) o restituire un singolo pezzo di dati (dal primo nodo che lo contiene durante le iterazioni di ricerca).
Per questo motivo, Kademlia puro non è il più adatto per trovare un solo nodo, quindi non sono sicuro che parte della tua domanda sia troppo rilevante. Se si desidera utilizzare Kademlia per trovare un singolo nodo, probabilmente varrebbe la pena di modificare il processo di ricerca per terminare presto non appena qualsiasi nodo restituisce i dettagli di contatto del nodo di destinazione (nello stesso modo in cui la ricerca termina in anticipo se un valore di destinazione si trova durante il processo).
Checkout http: // brillante.it/article/introduction-kademlia-dht-how-it-works –