Kademlia在Java中的实现

时间:2017-07-08 13:02:08

标签: java sockets dht kademlia

我想建立一个Kademlia网络来连接对等网并构建一个p2p网络。我将分配网络中节点的处理能力。对于网络我发现这个Kademlia Java从git实现了安装程序。 https://github.com/JoshuaKissoon/Kademlia
 enter image description here

我想知道如何设置它并用于实现网络。 我找到了

JKademliaNode kad1 = new JKademliaNode("Node1", new KademliaId("ASF45678947584567467"), 7574);

JKademliaNode kad2 = new JKademliaNode("Node2", new KademliaId("ASERTKJDHGVHERJHGFLK"), 7572);

用于创建2个对等实例,并使用代码将它们相互连接。

kad1.bootstrap(kad2.getNode());

但那是将它们连接到运行它的同一个程序中。

我想为不同的计算机相应地连接它们。被困在这里几个小时。我不知道如何使用它。

1 个答案:

答案 0 :(得分:1)

根据Kademlia协议,您可以在here中找到,#34;要加入网络,n节点U必须与已经参与的节点W建立联系。然后,U对其执行节点查找&#39 ; s自己的节点ID。"

您应该有两个节点实例。

实例1:

JKademliaNode kad1 = new JKademliaNode("Node1", new KademliaId("ASF45678947584567467"), 7574);

实例2:

JKademliaNode kad2 = new JKademliaNode("Node2", new KademliaId("ASERTKJDHGVHERJHGFLK"), 7572);

您可以从节点1引导node2。

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