Components include:
- A keybase which is a set of 160 bit string
- A
partition()
is applied over this keybase to distribute ownership among participating nodes in the DHT. Following hash functions are used- Consistent Hashing, or
- Rendezvous Hashing
- Each node in the network is a skip graph
- Generate hash (e.g SHA-1) for a given file, which gives us a 160 bit key, k
- Send message
put(k, data)
to any node in DHT - The message is passed from node -> node until it finally reaches to the node responsible for key
k
- This node stores the data and the associated key, k
- Now any client can request to read this data by generating the hash again which will again produce key, k
- Send message
get(k)
to any node to read data.
- Generate similarity score b/w 2 hashes
- Where exactly keybase partitioning takes place? Or Who decides to partition the available keys?