mirror of
https://github.com/ChronosX88/KademliaDHT.git
synced 2024-11-25 03:32:19 +00:00
The entire system is changed over to use the KademliaRoutingTable class instead of the JKademliaRoutingTable implementation
This commit is contained in:
parent
d6ab1493b8
commit
568f2fe9a8
@ -26,6 +26,7 @@ import kademlia.operation.Operation;
|
|||||||
import kademlia.operation.KadRefreshOperation;
|
import kademlia.operation.KadRefreshOperation;
|
||||||
import kademlia.operation.StoreOperation;
|
import kademlia.operation.StoreOperation;
|
||||||
import kademlia.routing.JKademliaRoutingTable;
|
import kademlia.routing.JKademliaRoutingTable;
|
||||||
|
import kademlia.routing.KademliaRoutingTable;
|
||||||
import kademlia.util.serializer.JsonDHTSerializer;
|
import kademlia.util.serializer.JsonDHTSerializer;
|
||||||
import kademlia.util.serializer.JsonRoutingTableSerializer;
|
import kademlia.util.serializer.JsonRoutingTableSerializer;
|
||||||
import kademlia.util.serializer.JsonSerializer;
|
import kademlia.util.serializer.JsonSerializer;
|
||||||
@ -50,7 +51,7 @@ public class JKademliaNode implements KademliaNode
|
|||||||
private final transient Node localNode;
|
private final transient Node localNode;
|
||||||
private final transient KadServer server;
|
private final transient KadServer server;
|
||||||
private final transient DHT dht;
|
private final transient DHT dht;
|
||||||
private transient JKademliaRoutingTable routingTable;
|
private transient KademliaRoutingTable routingTable;
|
||||||
private final int udpPort;
|
private final int udpPort;
|
||||||
private transient KadConfiguration config;
|
private transient KadConfiguration config;
|
||||||
|
|
||||||
@ -86,7 +87,7 @@ public class JKademliaNode implements KademliaNode
|
|||||||
* from disk <i>or</i> a network error occurred while
|
* from disk <i>or</i> a network error occurred while
|
||||||
* attempting to bootstrap to the network
|
* attempting to bootstrap to the network
|
||||||
* */
|
* */
|
||||||
public JKademliaNode(String ownerId, Node localNode, int udpPort, DHT dht, JKademliaRoutingTable routingTable, KadConfiguration config) throws IOException
|
public JKademliaNode(String ownerId, Node localNode, int udpPort, DHT dht, KademliaRoutingTable routingTable, KadConfiguration config) throws IOException
|
||||||
{
|
{
|
||||||
this.ownerId = ownerId;
|
this.ownerId = ownerId;
|
||||||
this.udpPort = udpPort;
|
this.udpPort = udpPort;
|
||||||
@ -131,7 +132,7 @@ public class JKademliaNode implements KademliaNode
|
|||||||
this.refreshOperationTimer.purge();
|
this.refreshOperationTimer.purge();
|
||||||
}
|
}
|
||||||
|
|
||||||
public JKademliaNode(String ownerId, Node node, int udpPort, JKademliaRoutingTable routingTable, KadConfiguration config) throws IOException
|
public JKademliaNode(String ownerId, Node node, int udpPort, KademliaRoutingTable routingTable, KadConfiguration config) throws IOException
|
||||||
{
|
{
|
||||||
this(
|
this(
|
||||||
ownerId,
|
ownerId,
|
||||||
@ -204,7 +205,7 @@ public class JKademliaNode implements KademliaNode
|
|||||||
* @section Read the routing table
|
* @section Read the routing table
|
||||||
*/
|
*/
|
||||||
din = new DataInputStream(new FileInputStream(getStateStorageFolderName(ownerId, iconfig) + File.separator + "routingtable.kns"));
|
din = new DataInputStream(new FileInputStream(getStateStorageFolderName(ownerId, iconfig) + File.separator + "routingtable.kns"));
|
||||||
JKademliaRoutingTable irtbl = new JsonRoutingTableSerializer(iconfig).read(din);
|
KademliaRoutingTable irtbl = new JsonRoutingTableSerializer(iconfig).read(din);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @section Read the node state
|
* @section Read the node state
|
||||||
@ -381,7 +382,7 @@ public class JKademliaNode implements KademliaNode
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JKademliaRoutingTable getRoutingTable()
|
public KademliaRoutingTable getRoutingTable()
|
||||||
{
|
{
|
||||||
return this.routingTable;
|
return this.routingTable;
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ import kademlia.dht.StorageEntry;
|
|||||||
import kademlia.exceptions.ContentNotFoundException;
|
import kademlia.exceptions.ContentNotFoundException;
|
||||||
import kademlia.exceptions.RoutingException;
|
import kademlia.exceptions.RoutingException;
|
||||||
import kademlia.node.Node;
|
import kademlia.node.Node;
|
||||||
import kademlia.routing.JKademliaRoutingTable;
|
import kademlia.routing.KademliaRoutingTable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The main Kademlia Node on the network, this node manages everything for this local system.
|
* The main Kademlia Node on the network, this node manages everything for this local system.
|
||||||
@ -145,7 +145,7 @@ public interface KademliaNode
|
|||||||
/**
|
/**
|
||||||
* @return The routing table for this node.
|
* @return The routing table for this node.
|
||||||
*/
|
*/
|
||||||
public JKademliaRoutingTable getRoutingTable();
|
public KademliaRoutingTable getRoutingTable();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return The statistician that manages all statistics
|
* @return The statistician that manages all statistics
|
||||||
|
@ -2,7 +2,7 @@ package kademlia.simulations;
|
|||||||
|
|
||||||
import kademlia.JKademliaNode;
|
import kademlia.JKademliaNode;
|
||||||
import kademlia.node.KademliaId;
|
import kademlia.node.KademliaId;
|
||||||
import kademlia.routing.JKademliaRoutingTable;
|
import kademlia.routing.KademliaRoutingTable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Testing how the routing table works and checking if everything works properly
|
* Testing how the routing table works and checking if everything works properly
|
||||||
@ -24,7 +24,7 @@ public class RoutingTableSimulation
|
|||||||
JKademliaNode kad4 = new JKademliaNode("Lokesh", new KademliaId("ASF45678947584567466"), 8335);
|
JKademliaNode kad4 = new JKademliaNode("Lokesh", new KademliaId("ASF45678947584567466"), 8335);
|
||||||
JKademliaNode kad5 = new JKademliaNode("Chandu", new KademliaId("ASF45678947584567467"), 13345);
|
JKademliaNode kad5 = new JKademliaNode("Chandu", new KademliaId("ASF45678947584567467"), 13345);
|
||||||
|
|
||||||
JKademliaRoutingTable rt = kad1.getRoutingTable();
|
KademliaRoutingTable rt = kad1.getRoutingTable();
|
||||||
|
|
||||||
rt.insert(kad2.getNode());
|
rt.insert(kad2.getNode());
|
||||||
rt.insert(kad3.getNode());
|
rt.insert(kad3.getNode());
|
||||||
|
@ -14,6 +14,7 @@ import java.lang.reflect.Type;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import kademlia.KadConfiguration;
|
import kademlia.KadConfiguration;
|
||||||
import kademlia.routing.Contact;
|
import kademlia.routing.Contact;
|
||||||
|
import kademlia.routing.KademliaRoutingTable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A KadSerializer that serializes routing tables to JSON format
|
* A KadSerializer that serializes routing tables to JSON format
|
||||||
@ -39,7 +40,7 @@ import kademlia.routing.Contact;
|
|||||||
*
|
*
|
||||||
* @since 20140310
|
* @since 20140310
|
||||||
*/
|
*/
|
||||||
public class JsonRoutingTableSerializer implements KadSerializer<JKademliaRoutingTable>
|
public class JsonRoutingTableSerializer implements KadSerializer<KademliaRoutingTable>
|
||||||
{
|
{
|
||||||
|
|
||||||
private final Gson gson;
|
private final Gson gson;
|
||||||
@ -66,7 +67,7 @@ public class JsonRoutingTableSerializer implements KadSerializer<JKademliaRoutin
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void write(JKademliaRoutingTable data, DataOutputStream out) throws IOException
|
public void write(KademliaRoutingTable data, DataOutputStream out) throws IOException
|
||||||
{
|
{
|
||||||
try (JsonWriter writer = new JsonWriter(new OutputStreamWriter(out)))
|
try (JsonWriter writer = new JsonWriter(new OutputStreamWriter(out)))
|
||||||
{
|
{
|
||||||
@ -83,7 +84,7 @@ public class JsonRoutingTableSerializer implements KadSerializer<JKademliaRoutin
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JKademliaRoutingTable read(DataInputStream in) throws IOException, ClassNotFoundException
|
public KademliaRoutingTable read(DataInputStream in) throws IOException, ClassNotFoundException
|
||||||
{
|
{
|
||||||
try (DataInputStream din = new DataInputStream(in);
|
try (DataInputStream din = new DataInputStream(in);
|
||||||
JsonReader reader = new JsonReader(new InputStreamReader(in)))
|
JsonReader reader = new JsonReader(new InputStreamReader(in)))
|
||||||
@ -91,7 +92,7 @@ public class JsonRoutingTableSerializer implements KadSerializer<JKademliaRoutin
|
|||||||
reader.beginArray();
|
reader.beginArray();
|
||||||
|
|
||||||
/* Read the basic JKademliaRoutingTable */
|
/* Read the basic JKademliaRoutingTable */
|
||||||
JKademliaRoutingTable tbl = gson.fromJson(reader, JKademliaRoutingTable.class);
|
KademliaRoutingTable tbl = gson.fromJson(reader, KademliaRoutingTable.class);
|
||||||
tbl.setConfiguration(config);
|
tbl.setConfiguration(config);
|
||||||
|
|
||||||
/* Now get the Contacts and add them back to the JKademliaRoutingTable */
|
/* Now get the Contacts and add them back to the JKademliaRoutingTable */
|
||||||
|
Loading…
Reference in New Issue
Block a user