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
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
6978a8023b
Moved the receiver interface to the message/receiver package
2014-04-19 20:11:10 +05:30
Joshua Kissoon
8e6052de23
ContentLookupOperation
...
CLO was timing out even if it had found the specified amount of content needed. Fixed that by exiting after the specified # of content required has been found
2014-04-13 19:15:24 +05:30
Joshua Kissoon
c31e0002e2
Change the wait time on operations to 50ms
2014-04-13 18:58:40 +05:30
Joshua Kissoon
4888bf4dd4
Improve response check time
...
When doing a NodeLookup, Content Lookup or Connect operation, after sending the message, we used to wait(operation_timeout) time before checking for a result.
Now what I'm doing is waiting for 100 ms and check for a result every 100ms; I keep a count of total time waited, and only when the total time > operation_timeout do we make a timeout.
So now we can handle the response if it comes in before Operation_timeout time is finished
2014-04-13 18:57:54 +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
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
1995682992
Had some issues with saving node state since saving configuration had a problem. We do not need to save configuration! Fixed the bug by making the configuration transient
2014-03-31 22:50:57 +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
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
6fdff97429
Setup the get bucket ID computation in one method.
...
Added Javadoc
2014-03-22 12:55:19 +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
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
e1e6e4e40d
Got storage to work!
2014-03-10 11:08:51 +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
eb7d7b53a4
Setup storing of System state on shutdown
2014-03-09 20:12:11 +05:30
Joshua Kissoon
630f8c2f28
2014-03-07 11:18:04 +05:30
Joshua Kissoon
46147eddd1
Finished a Basic version of the content refresh operation
2014-03-07 11:14:45 +05:30
Joshua Kissoon
a97905e431
Started working on the ContentRefreshOperation
...
- Setup a method to get all storage entries for the different content
- Started setting up the content refresh operation functionality
2014-03-06 20:42:30 +05:30
Joshua Kissoon
689a35b7bf
Cleaned up the core code, added comments and removed all Netbeans generated warnings
2014-03-06 16:51:42 +05:30
Joshua Kissoon
cabb5af742
Finish Bucket Refresh Operation :)
2014-03-06 16:24:50 +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
58f9157c9d
Finished coding the lookup content functionality
2014-02-26 18:58:55 +05:30
Joshua Kissoon
a2d0be6124
Finished DHT content storage and retrieval
...
Started working on Content lookup and sending content
2014-02-26 17:07:18 +05:30
Joshua Kissoon
b5e89c6ddb
Keeping with some good coding standards - Code to Interfaces not implementations
...
Changed the use of ArrayList to List and HashMap to Map
2014-02-26 11:57:59 +05:30
Joshua Kissoon
9f14c66a31
Persistent content storage now working perfectly!!!
2014-02-26 11:40:06 +05:30
Joshua Kissoon
c67e501df6
Content Sending working between nodes
2014-02-25 22:57:46 +05:30
Joshua Kissoon
fa4b29305e
Finished implementing a JsonSerializer to serialize Content
2014-02-25 18:58:32 +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
58df7be300
Started working on the NodeLookupOperation
...
Created some new Messages
Updated a few minor things
2014-02-19 13:00:29 +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