Dans les Kademlia protocol, les ID de nœud sont des nombres de 160 bits. Les nœuds sont stockés dans des compartiments, le compartiment 0 stocke tous les nœuds qui ont le même ID que ce nœud, sauf pour le tout dernier bit, le compartiment 1 stocke tous les nœuds ayant le même ID que ce nœud sauf pour les 2 derniers bits. pour tous les 160 seaux.Le moyen le plus simple de trouver le bon godet kademlia
Quel est le moyen le plus rapide pour trouver dans quel seau je devrais mettre un nouveau noeud?
Je mes seaux simplement stockées dans un tableau, et ont besoin d'une méthode comme ceci:
Bucket[] buckets; //array with 160 items
public Bucket GetBucket(Int160 myId, Int160 otherId)
{
//some stuff goes here
}
L'approche évidente consiste à travailler en bas du bit le plus significatif, la comparaison peu à peu jusqu'à ce que je trouve une différence , J'espère qu'il y aura une meilleure approche basée autour de twittling intelligent. Mon Int160 est stocké dans un tableau d'octets avec 20 articles, des solutions qui fonctionnent bien avec ce type de structure seront préférées.
Bytes semble être la manière la plus naturelle de faire les choses, comme vous le dites, les entiers seront probablement plus rapides – Martin