Java的Kademlia实现 [英] Kademlia Implementation in Java

查看:309
本文介绍了Java的Kademlia实现的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

我想知道如何设置它并用于实现网络. 我发现了

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

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

用于创建2个对等实例,并使用以下代码将它们彼此连接.

kad1.bootstrap(kad2.getNode());

但是那是将它们连接到正在运行的同一程序中.

我想将它们相应地连接到不同的计算机.在这里呆了几个小时.我不知道该怎么用.

解决方案

根据Kademlia协议,您可以在

您应该有两个节点实例.

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

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

这篇关于Java的Kademlia实现的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆