Mid and Final term discussion

Is hasing really useful?

Is hasing really useful?

by LEONARDO FRIOLI -
Number of replies: 1


Buongiorno (di nuovo),

mi chiedo se ha realmente senso implementare gli ID come hash.
Nel caso reale di Kademlia è ovviamente la scelta giusta dato che il sistema è distribuito e ogni nodo ha il proprio IP e porta.
Nel nostro caso invece non ha troppo senso, per esempio, generare una coppia <IP,porta> e hasharla; basterebbe semplicemente usare un ID generato casualmente nello spazio di ID preso in input. Nel nostro caso non cambia nulla prima generare qualcosa a caso e poi hasharlo piuttosto che semplicemente generare direttamente l'ID casualmente. Anzi, se usiamo l'hash siamo obbligati ha rispettare delle lunghezze standard dell'ID (eccetto se usiamo SHA3) dato che troncare un hash genererebbe facilmente molte collisioni, mentre generando direttamente un ID nello spazio consentito renderebbe il codice molto più pulito e comprensibile.

Ovviamente questa è la mia opinione e sono aperto ad un'eventuale discussione in merito.

Goodmorning(again),

I'm asking myself if does make sense to implement IDs as hash.
In the real distributed implementation of Kademlia, this, of course, makes sense since each node has its own IP and port.
In our case there is no strong reason to generate, for istance, a random pair <IP,port> and then hash it; it's ok just to generate an ID at random in the ID space taken as input. What's the difference in creating something at random and then hashing it rather than taking easily a random ID?. If we use the hash we are obliged to have IDs with fixed sizes (except if we use SHA3) because truncating an hash brings easily to a lot of collisions. Generating a random ID will keep the code clean and easy to understand.

Obviously this is my opinion and I'm happy to discuss about it.



In reply to LEONARDO FRIOLI

Re: Is hasing really useful?

by Laura Ricci -

What do you mean by generating an ID at random? You can have the problem of collision, even if, I agree, the problem is present also if you cut the ID genrated by the hash function.