- Update the node's getInetAddress method to return InetSocketAddress instead of SocketAddress since we get more methods available with this
-- Specifically we get a comparison method which is needed
- Forgot to initialize the route length checker
DHT
- Setup the subfolder for content to be 2 digits in length instead of 10
-- With 10, we only have 1 content in a folder, 2 will be better since > 1 content will be in a folder
-- Content with similar key tend to be in the same user, so they'll be alot in the same folder
- Before we were doing this by just adding incrementing a value everytime we get a set of nodes as the reply of a FIND_NODE or FIND_VALUE RPC
-- This may be wrong since nodes the same distance away may reply and we'll still be incrementing for both
- Created a route length checker class to properly check route lengths
ContentLookupOperation
- Added the route length check to the CLO operation
Didn't add it to the NodeLookupOperation since I'm not sure we're using it anywhere... Though it can be useful there
- Added a shorter method
- Create a treeset to sort the nodes
- Add all nodes in the routing table to the treeset
- Then select the top Q nodes required from the treeset
- Just found a major Bug!!! We were doing 160 refreshes looking for nodes with the local nodeId as the lookup ID for all 160 refreshes
- Updated to check for nodes at different distances from the local NodeId
Content Lookup Operation
- We were still using KademliaNode instead of KademliaNode.getNode to use the mini node for comparisons
- Made it an interface
- Implemented the interface and made the changes in the code to use the interface
- We do this because we'll extend the code for SocialKad
- Introduced artificial latency when we're in testing mode
ContentLookup & NodeLookup Operations
- Reduce the wait time between data checks to 10 milliseconds
- Added Information to specify whether we're in a testing environment or a production environment
-- we can use this information to put in network latency, etc
Statistician
- Adding counting the number of sendData and receiveData operations
KademliaNode
- Removed the counting of contentLookup if we're getting the content from local storage
- Returns some times in milliseconds instead of microseconds
KadServer
- Made a few operations synchronized
- Handled the exception when the timer is already canceled
- Renamed the statistics class to Statistician since that's is what it is - a statistician that manages the Kad statistics
- Passed the statistician to our Server to collect data