Commit Graph

35 Commits

Author SHA1 Message Date
Joshua Kissoon
b1bfba6d93 Kademlia Contact Removal
- Contact removal now working well, we only do removal when we need to get in touch with the contact for some reason.
- Replacement cache is now setup
2014-04-28 20:38:47 +05:30
Joshua Kissoon
fa47aceda9 Kad Server
- Added a specific exception to throw when the server is down

Kademlia Node
- Setup Shutdown proerly
- Updated a few things
2014-04-28 16:46:32 +05:30
Joshua Kissoon
54ac3fe740 Some major major changes to the entire Kademlia System.
Kademlia Node
- The Kademlia class is renamed to KademliaNode - this will now serve as the main node on the network
- The RoutingTable will be a part of this node
Node
- The node class is now a basic class containing information about a node to be used by peers on the network

RoutingTable
- Working on Evicting contacts from the routing table
- Working on Replacement Cache
- Written another simulation to test these new RoutingTable features
2014-04-28 15:25:07 +05:30
Joshua Kissoon
41fb630515 Content Lookup Operation Update
Before the content lookup operation used to lookup a specified set of nodes then return the latest content; a short review of the paper showed that we only lookup until we find the Value then exit as soon as we do. Made the updates to the code.
2014-04-26 22:09:45 +05:30
Joshua Kissoon
4fab4320df Routing Table Contact Management
- Added last seen data to contact
- Contacts are not sorted by lastSeen
- Contact updating last seen time is handled

Built a simulation to test the contact last seen updates
2014-04-26 21:26:02 +05:30
Joshua Kissoon
21b6667eb8 Routing Table Improvement
- Setup the RoutingTable to store contact instead of node
- This helps since we'll need more information in the routing to evict contacts, etc
2014-04-25 16:04:05 +05:30
Joshua Kissoon
eaeffeb0ba Store content in string so saved file is easily readable. 2014-04-06 17:01:27 +05:30
Joshua Kissoon
2dde2a75e0 Setup Content Updating
- Didn't do this before, but now it's setup: content will be updated on the DHT if a StoreContentMessage is sent with a newer version of the content

GetParameter
- Updated the GetParameter so that it can be constructed from a KadContent object or a StorageEntryMetadata object
- Move it to the DHT package

Others
- Added a few methods to StorageEntryMetadata, StorageEntryManager& DHT to simplify conversions between KadContent, GetParameter & StorageEntryMetadata

Tests
- Written a test to check content updating
2014-04-05 21:07:57 +05:30
Joshua Kissoon
cc1d03ba81 Some comments and fixes 2014-04-02 18:39:16 +05:30
Joshua Kissoon
3e236f4d17 Now we use a StorageEntry class to send data accross peers
Out KadContent interface also now specifies a set of methods to force it's subclasses to do their own toByte conversions
2014-04-02 18:05:14 +05:30
Joshua Kissoon
9190b122c7 The current mechanism for serializing content will not work for complex content types.
Now we need to add methods to KadContent objects to provide the byte[] format of their content and to re-read the byte format of their content.
2014-04-02 16:35:08 +05:30
Joshua Kissoon
5b3e01df4e Fixed the bug "Getting content from reloaded node(Node whose state have been saved and re-loaded from file) NullPointerException".
Wrote a test to show getting content from reloaded node
2014-04-01 10:42:43 +05:30
Joshua Kissoon
a259579f4a Created a KadConfiguration interface that allows passing in a configuration file as needed.
This allows other applications to create their own configuration files
2014-03-29 14:37:01 +05:30
Joshua Kissoon
6462722227 Fixed the bug where refreshing content routed content to wrong new nodes and also deleted content from localnode even if it was one of the closest! 2014-03-29 12:29:13 +05:30
Joshua Kissoon
c232fccc69 Added the getNodeStorageFolder method to the Configuration class rather than having it repeated in DHT and Kademlia
Added a getDHT method to Kademlia
Changed the folder structure in which content is stored in the DHT from Kademlia/substr(contentid, 10)/hash(content).kct TO Kademlia/ownerId/substr(contentid, 10)/hash(content).kct
2014-03-29 10:52:55 +05:30
Joshua Kissoon
426af4d345 Removed the Save_state decision from configuration and allow the user to specify if to save the state when they call shutdown 2014-03-26 16:23:17 +05:30
Joshua Kissoon
d9fdcc57fd Fixed the bug that was causing replication of content files and StorageEntries. RefreshOperation working well!! 2014-03-22 15:27:22 +05:30
Joshua Kissoon
b93133337c Added a method to store content only locally
Updated the StoreOperation to store content locally if the local Node is a part of the K-Closest to the content
2014-03-22 14:33:31 +05:30
Joshua Kissoon
3f82c4a0ef Did some code cleanups
- Add Comments
	- Remove println statements
	- Deleted useless comments, etc
2014-03-22 12:35:00 +05:30
Joshua Kissoon
21053a16ff Fixed the Distance Comparison bugs by using a new KeyComparator class of type Comparable<NodeId> and using BigIntegers to represent the keys and letting BigInteger do the comparisons 2014-03-22 11:32:41 +05:30
Joshua Kissoon
0cc24d42f3 Trying to fix an issue in the nodelookupoperation where the k-Closest nodes system doesn't work.
Lots of extra code added, but we're still in devel! so ...
2014-03-22 10:53:05 +05:30
Joshua Kissoon
22fee9116a Problem with serializing the DHT also, had to create a DHT specific Serializer class 2014-03-10 14:37:08 +05:30
Joshua Kissoon
e2ca9326c9 Got system state storage and retrieval of state to work! 2014-03-10 13:45:13 +05:30
Joshua Kissoon
d31f0e337f Still working on saving node state, the code is a huge mess right now 2014-03-09 21:04:18 +05:30
Joshua Kissoon
acd7885dba Started working on the RefreshOperations 2014-03-06 11:21:08 +05:30
Joshua Kissoon
e4726b93f8 Content Store, Retrieve and DHT File and Table management working well
Got a few Todos now to finish off
2014-02-26 21:35:37 +05:30
Joshua Kissoon
c67e501df6 Content Sending working between nodes 2014-02-25 22:57:46 +05:30
Joshua Kissoon
995da2cffb Continuing work on message sending 2014-02-25 13:42:08 +05:30
Joshua Kissoon
faef3d03ec Started working on sending content messages 2014-02-25 13:01:06 +05:30
Joshua Kissoon
44077d344d Started working on Node refreshing the K-Buckets and DHT content at every time interval t
Started working on PUT, GET, STORE operation and on DHT Storage
2014-02-24 21:26:49 +05:30
Joshua Kissoon
3344511603 Finished NodeLookupOperation functionality! Finally found the bug 2014-02-22 19:37:04 +05:30
Joshua Kissoon
9eca0614f2 Still working on NodeLookupRequest
Updated the NodeId equals() and hashCode() methods; fixes the bug where several same NodeIds were being added to the routing table
2014-02-19 21:21:18 +05:30
Joshua Kissoon
6ff6e8dc21 Fixed the NodeId Prefix Length method to give the correct prefixLength 2014-02-19 11:38:27 +05:30
Joshua Kissoon
ed1ac876f3 Fixed the bug in NodeConnection operation where the messages were still being re-sent even after an acknowledgement was received.
Fixed by canceling the TimerTask
2014-02-19 10:30:42 +05:30
Joshua Kissoon
b3e1403872 Initial Commit 2014-02-19 02:07:07 +05:30