2008 March 25th Tuesday (三月 二十五日 火曜日)

The testing of the dual function is set out to.  I told the freshmen how to make testing cases.  The number of testing cases is not enough beyond
my mind.

  Yesterday the part function about register and delete was tested.  Today the rest of this testing must be finished.  Our project schedule was put
off due to the investigation at the begin.

  Kademlia routing tables consist of a list for each bit of the node id.  (e.g. if a node ID consist of 128 bits, a node will keep 128 such lists.)
A list has many entries.  Every entry in a list holds the necessary data to locate another node.  The data in each list entry is typically the ip address,
port, and node id of another node.  Every list corresponds to a specific distance from the node.

  With an ID of 128 bits, every node in the network will classify other nodes in one of 128 different distances, one specific distance per bit.

  As nodes are encountered on the network, they are added to the lists.  This includes store and retrieval operations and even when helping other nodes
to find a key.  Every node encountered will be considered for inclusion in the lists.  Therefore the knowledge that a node has of the network is very dynamic.
This keeps the network constantly updated and adds resilience to accidents or attacks.

Protocol Messages

Kademlia has four messages.

  PING - used to verify that a node is still alive.
  STORE - Stores a (key, value) pair in one node.
  FIND_NODE - The recipient of the request will return the k nodes in his own buckets that are the closest ones to the requested key.
  FIND_VALUE - as FIND_NODE, but if the recipient of the request has the requested key in its store, it will return the corresponding value.

  Each RPC message includes a random value from the initiator. This ensures that when the response is received it corresponds to the request previously sent.

你可能感兴趣的:(2008 March 25th Tuesday (三月 二十五日 火曜日))