Kademlia Implementation in Java

青春壹個敷衍的年華 提交于 2019-12-12 04:14:31

问题


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.


回答1:


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


来源:https://stackoverflow.com/questions/44986519/kademlia-implementation-in-java

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!