Joshua Kissoon
a1faffb4d9
Created a new storage entry interface,
...
Let the storage entry class and the rest of this system use this interface
2014-05-23 22:28:21 +05:30
Joshua Kissoon
9fb139571a
Added a KademliaDHT Interface and setup the DHT class and the rest of the system to use this interface
2014-05-23 22:14:08 +05:30
Joshua Kissoon
568f2fe9a8
The entire system is changed over to use the KademliaRoutingTable class instead of the JKademliaRoutingTable implementation
2014-05-23 20:56:03 +05:30
Joshua Kissoon
d6ab1493b8
Renamed the KadBucket to KademliaBucket
...
Renamed KadBucketImpl to JKademliaBucket because it's an implementation of KademliaBucket
2014-05-23 20:52:24 +05:30
Joshua Kissoon
41df450f4a
Renamed the KadRoutingTable to KademliaRoutingTable
...
Renamed RoutingTable to JKademliaRoutingTable because it's an implementation of KademliaRoutingTable
2014-05-23 20:51:28 +05:30
Joshua Kissoon
66616a7afd
Updated the JKademliaNode class to inherit the KademliaNode interface
2014-05-23 20:48:23 +05:30
Joshua Kissoon
a24eef8091
Added a KademliaNode interface
2014-05-23 20:45:17 +05:30
Joshua Kissoon
451cba4be9
From now on we'll name the interfaces properly and name the implementation with a J as prefix since this is the J Kademlia implementation
...
Renamed the KademliaNode class to JKademliaNode
2014-05-23 20:38:33 +05:30
Joshua Kissoon
ce5c49d46d
Changed the server to use Kademlia Message Factory interface rather than the specific class
2014-05-23 20:31:46 +05:30
Joshua Kissoon
fd0620aaf1
- Moved the items from kademlia.core package to kademlia package since both packages are core package.
...
- Deleted the kademlia.core package
2014-05-23 20:30:56 +05:30
Joshua Kissoon
720b062646
Added a message factory interface
2014-05-23 20:29:43 +05:30
Joshua Kissoon
b594b91adf
Renamed the test package to simulations
...
Created a simulations interface
2014-05-19 12:58:44 +05:30
Joshua Kissoon
a9e5402697
Updated the routing table bucket class to copy the contacts to another data structure before sending them, preventing other parts of the system from modifying the core data structure
2014-05-18 15:17:36 +05:30
Joshua Kissoon
807a9965d0
Added a method to check if the server is running
...
NodeLookupReceiver
Only use the server if it's running
2014-05-13 11:22:56 +05:30
Joshua Kissoon
9e94a225fe
Few minor changes
2014-05-13 11:17:26 +05:30
Joshua Kissoon
c23edf2cb9
Statistician
...
- Added some handling for 0 based values
2014-05-13 09:54:52 +05:30
Joshua Kissoon
a25b88a9bb
Added a method to get the number of failed content lookups
2014-05-12 23:46:02 +05:30
Joshua Kissoon
42da6df375
In the content lookup statistics - added a value "isContentFound" to be passed
2014-05-12 23:41:45 +05:30
Joshua Kissoon
fca4a5fde5
Again set our storageentry to store a string
...
- we'll have to encode any byte array to base64 if we need to
2014-05-12 17:34:41 +05:30
Joshua Kissoon
cc0cdc42b5
Manage content in byte format since strings may have encoding problems! especially for compression, etc
2014-05-12 15:15:59 +05:30
Joshua Kissoon
66321280e6
Set the Serializable objects to implement the Serializable interface
2014-05-12 13:12:24 +05:30
Joshua Kissoon
0ee1001049
Merge origin/master
2014-05-11 23:55:08 +05:30
Joshua Kissoon
5c067e723a
commit
2014-05-11 23:54:20 +05:30
Joshua Kissoon
b7c75c4e38
Changed StorageEntry to store content in String format since it's smaller
2014-05-11 18:59:35 +05:30
Joshua Kissoon
b49e8170f5
Updated content sending test
2014-05-11 16:02:36 +05:30
Joshua Kissoon
24abfe3d2a
Storage Entry Usage
...
- Now we manage storage entries directly from the KadNode
- rather than creating them all over the place
2014-05-11 15:39:43 +05:30
Joshua Kissoon
7b95d03d96
Moved the HashCalculator to the utils package rather than have it in a package of it's own
...
Keep the StorageEntry content in the byte[] format it was originally in rather than constantly changing it to a string
2014-05-11 15:15:26 +05:30
Joshua Kissoon
428cab774b
Node
...
- 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
2014-05-11 12:36:10 +05:30
Joshua Kissoon
06f9eeae43
Updated the operation timeout to be the same as the response timeout!
2014-05-11 10:40:46 +05:30
Joshua Kissoon
210e3842ca
ContentLookupOperation
...
- 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
2014-05-10 23:34:17 +05:30
Joshua Kissoon
d242e0a13a
Route Length Computation
...
- 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
2014-05-10 21:17:44 +05:30
Joshua Kissoon
799a4887dd
Node Lookup OP
...
- Removed the unused error boolean
2014-05-10 21:15:24 +05:30
Joshua Kissoon
4fbc29fa24
NodeLookupOperation
...
- Removed the unused error variable
2014-05-10 21:06:46 +05:30
Joshua Kissoon
ed0a833e1a
KadBucket Bug
...
- We were checking if the contact stale count was ">" stale value rather than ">=" stale value
2014-05-10 20:36:39 +05:30
Joshua Kissoon
673979c29a
Routing Table
...
- We were not resetting the stale count of a contact when we saw it again, did that now
2014-05-10 19:52:21 +05:30
Joshua Kissoon
111cdc9e05
KadBucket
...
- Updated toString to display stale count of a contact
DHT
- Updated toString to print a count of content.
2014-05-10 19:28:19 +05:30
Joshua Kissoon
58696d627a
Made a few KadBucket methods private
...
Changed the comparison of KademliaId to use the hashcode
2014-05-09 16:05:14 +05:30
Joshua Kissoon
e8f0e20a8f
Seems we over-synchronized the DHT
...
- Removed the blocking synchronizations
2014-05-09 14:11:58 +05:30
Joshua Kissoon
f5409c70e9
Removed the excess method syncs
2014-05-09 13:22:40 +05:30
Joshua Kissoon
565bf50ddb
Added some synchronization to the KadBucket and DHT
2014-05-09 11:54:21 +05:30
Joshua Kissoon
3ab6b3d2ab
Renamed NodeId to KademliaId Since that's basically what it is!
2014-05-09 11:03:00 +05:30
Joshua Kissoon
ac950720f3
Contact
...
- Added equals() and hashCode() methods
KadBucketImpl
- Used a TreeSet instead of the TreeMap
2014-05-09 10:00:56 +05:30
Joshua Kissoon
f66d5f662f
Routing Table Find Closest
...
- 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
2014-05-09 09:27:35 +05:30
Joshua Kissoon
89d5c48d28
Bucket Refresh Operation
...
- 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
2014-05-08 22:28:22 +05:30
Joshua Kissoon
98fc727cbe
Stop shutting down the server when we catch an exception
...
Catch a content not found exception in ContentLookupReceiver
2014-05-08 18:41:07 +05:30
Joshua Kissoon
72048ad8a1
Statistician
...
- Return data sent in KiloBytes instead of bytes
2014-05-08 10:58:24 +05:30
Joshua Kissoon
3705107ce6
KademliaNode
...
- Removed the isRunning boolean since it's not used
- Made the statistician transient since we only keep stats temporary
2014-05-08 10:41:51 +05:30
Joshua Kissoon
1ff0fb8284
Statistician
...
- Setup the bootstrap time to be in milliseconds instead of nanoseconds
2014-05-08 00:14:57 +05:30
Joshua Kissoon
32a6d7875b
Statistician
...
- 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
2014-05-07 23:45:23 +05:30
Joshua Kissoon
1d5d8004df
KadServer
...
- Introduced artificial latency when we're in testing mode
ContentLookup & NodeLookup Operations
- Reduce the wait time between data checks to 10 milliseconds
2014-05-07 23:14:49 +05:30