I want to setup a Kademlia network to connect peers and build a p2p network. I'm going to distribute processing power of nodes within the network. For network I found this Kademlia Java implemented Setup from git. https://github.com/JoshuaKissoon/Kademlia
I want to know how to setup this and use to implement the network.
I found that
JKademliaNode kad1 = new JKademliaNode("Node1", new KademliaId("ASF45678947584567467"), 7574);
JKademliaNode kad2 = new JKademliaNode("Node2", new KademliaId("ASERTKJDHGVHERJHGFLK"), 7572);
is used to create 2 instances of the peers and following code to connect them with each other.
kad1.bootstrap(kad2.getNode());
But that was to connect them in the same program where it's running.
I want to connect them accordingly for different computers. Been stuck here for hours. I don't know how to use this.
解决方案
According to Kademlia protocol you can find in here, "To join the network, n node U must have a contact to an already participating node W. U then performs a node lookup for it's own node ID."
You should have two instance of the nodes.
Instance 1:
JKademliaNode kad1 = new JKademliaNode("Node1", new KademliaId("ASF45678947584567467"), 7574);
Instance 2:
JKademliaNode kad2 = new JKademliaNode("Node2", new KademliaId("ASERTKJDHGVHERJHGFLK"), 7572);
You can bootstrap the node2 from node 1.
KademliaId id = new KademliaId("ASERTKJDHGVHERJHGFLK");
InetAddress ip =InetAddress.getByName("Ip address of the remote node");
Node kad2 = new Node(id,ip,7572);
kad1.bootstrap(kad2);