Tharaka_Ravishan
Tharaka_Ravishan

Reputation: 89

Kademlia Implementation in Java

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
enter image description here

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.

Upvotes: 1

Views: 1566

Answers (1)

Arunwij
Arunwij

Reputation: 400

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);

Upvotes: 2

Related Questions