Java Kademlia DHT Bootstraping - PullRequest
       106

Java Kademlia DHT Bootstraping

0 голосов
/ 06 ноября 2018

Реализация Kademlia на Java взял помощь отсюда. GIT РЕПО: https://github.com/JoshuaKissoon/Kademlia

Я использую узел на порту 5000 (тот же IP-адрес), к которому я хочу загрузить свой следующий узел. Я попытался решить вышеуказанный вопрос, но это не сработало.

ошибка:

Создан узел Kad 1: 4153463435363738393437353834353637353637 java.net.BindException: Невозможно назначить запрошенный адрес: отправка дейтаграммы не удалась в java.net.DualStackPlainDatagramSocketImpl.socketSend (собственный метод) в java.net.DualStackPlainDatagramSocketImpl.send (Неизвестный источник) at java.net.DatagramSocket.send (Неизвестный источник) в kademlia.KadServer.sendMessage (KadServer.java:185) в kademlia.KadServer.sendMessage (KadServer.java:138) в kademlia.operation.ConnectOperation.execute (ConnectOperation.java:58) в kademlia.JKademliaNode.bootstrap (JKademliaNode.java:257) в Script.main (Script.java:19)

import java.io.IOException;
import java.net.InetAddress;
import kademlia.JKademliaNode;
import kademlia.node.KademliaId;
import kademlia.node.Node;

public class Script{
    public static void main(String[] args){
        try{
            /* Setting up 2 Kad networks */
            JKademliaNode kad1 = new JKademliaNode("abc", new KademliaId("ASF45678947584567567"),5005);
            System.out.println("Created Node Kad 1: " + kad1.getNode().getNodeId());

            KademliaId id = new KademliaId(); 
            InetAddress ip =InetAddress.getByName("0.0.0.0");
            Node kad2 = new Node(id,ip,5000);
            kad1.bootstrap(kad2);

        System.out.println("Kad 1: " + kad1.getNode().getNodeId() + " Routing Table: ");
        System.out.println(kad1.getRoutingTable());    

    }
    catch (IOException e){
        e.printStackTrace();
    }
    System.out.println("Ended everything!");
}
}

Как загрузить узел, если вы знаете IP и порт только другого узла! Я видел, что в реализации Python kademlia от brian Мюллера, и я новичок в Java, но это совсем другое. И какие изменения мне нужно сделать, чтобы он работал на Android?

...