package kademlia.simulations; import kademlia.JKademliaNode; import kademlia.node.KademliaId; /** * Testing the save and retrieve state operations * * @author Joshua Kissoon * @since 20140309 */ public class SaveStateTest { public SaveStateTest() { try { /* Setting up 2 Kad networks */ JKademliaNode kad1 = new JKademliaNode("JoshuaK", new KademliaId("ASF45678947584567463"), 12049); JKademliaNode kad2 = new JKademliaNode("Crystal", new KademliaId("ASF45678947584567464"), 4585); JKademliaNode kad3 = new JKademliaNode("Shameer", new KademliaId("ASF45678947584567465"), 8104); JKademliaNode kad4 = new JKademliaNode("Lokesh", new KademliaId("ASF45678947584567466"), 8335); JKademliaNode kad5 = new JKademliaNode("Chandu", new KademliaId("ASF45678947584567467"), 13345); /* Connecting 2 to 1 */ System.out.println("Connecting Nodes 1 & 2"); kad2.bootstrap(kad1.getNode()); System.out.println(kad1); System.out.println(kad2); kad3.bootstrap(kad2.getNode()); System.out.println(kad1); System.out.println(kad2); System.out.println(kad3); kad4.bootstrap(kad2.getNode()); System.out.println(kad1); System.out.println(kad2); System.out.println(kad3); System.out.println(kad4); kad5.bootstrap(kad4.getNode()); System.out.println(kad1); System.out.println(kad2); System.out.println(kad3); System.out.println(kad4); System.out.println(kad5); synchronized (this) { System.out.println("\n\n\n\nSTORING CONTENT 1\n\n\n\n"); DHTContentImpl c = new DHTContentImpl(kad2.getOwnerId(), "Some Data"); System.out.println(c); kad2.put(c); } synchronized (this) { System.out.println("\n\n\n\nSTORING CONTENT 2\n\n\n\n"); DHTContentImpl c2 = new DHTContentImpl(kad2.getOwnerId(), "Some other Data"); System.out.println(c2); kad4.put(c2); } System.out.println(kad1); System.out.println(kad2); System.out.println(kad3); System.out.println(kad4); System.out.println(kad5); /* Shutting down kad1 and restarting it */ System.out.println("\n\n\nShutting down Kad instance"); System.out.println(kad2); kad1.shutdown(true); System.out.println("\n\n\nReloading Kad instance from file"); JKademliaNode kadR2 = JKademliaNode.loadFromFile("JoshuaK"); System.out.println(kadR2); } catch (IllegalStateException e) { } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { new SaveStateTest(); } }