2015-01-21 3 views
1

Я хотел бы использовать DHT для моего проекта, и у меня возникли проблемы с работой Kademlia example.Почему я не могу установить значение с помощью кода примера Kademlia?

Вот выход журнала из twistd -noy examples/server.tac:

2015-01-21 18:19:43+0100 [-] Log opened. 
2015-01-21 18:19:43+0100 [-] twistd 13.2.0 (/usr/bin/python 2.7.6) starting up. 
2015-01-21 18:19:43+0100 [-] reactor class: twisted.internet.epollreactor.EPollReactor. 
2015-01-21 18:19:43+0100 [-] KademliaProtocol starting on 8468 
2015-01-21 18:19:49+0100 [-] 'Did not received reply for msg id YES6sdvjJ3qpg5Pr6pg/ajdeMg8= within 5 seconds' 
2015-01-21 18:19:49+0100 [NodeSpiderCrawl] [INFO] creating spider with peers: [] 
2015-01-21 18:19:49+0100 [NodeSpiderCrawl] [INFO] crawling with nearest:() 
2015-01-21 18:19:49+0100 [NodeSpiderCrawl] [INFO] last iteration same as current - checking all in list now 
2015-01-21 18:19:53+0100 [Server] [WARNING] No known neighbors, so not writing to cache. 

А вот выход клиентского сценария находится в ссылке выше:

2015-01-21 18:22:09+0100 [-] Log opened. 
2015-01-21 18:22:09+0100 [-] KademliaProtocol starting on 5678 
2015-01-21 18:22:14+0100 [-] 'Did not received reply for msg id SpQjdpv2Qos+C7q0BB1XzNgya4A= within 5 seconds' 
2015-01-21 18:22:14+0100 [NodeSpiderCrawl] [INFO] creating spider with peers: [] 
2015-01-21 18:22:14+0100 [NodeSpiderCrawl] [INFO] crawling with nearest:() 
2015-01-21 18:22:14+0100 [NodeSpiderCrawl] [INFO] last iteration same as current - checking all in list now 
2015-01-21 18:22:14+0100 [-] Found nodes: [] 
2015-01-21 18:22:14+0100 [Server] [DEBUG] setting 'a key' = 'a value' on network 
2015-01-21 18:22:14+0100 [Server] [WARNING] There are no known neighbors to set key a key 
2015-01-21 18:22:14+0100 [Server] [WARNING] There are no known neighbors to get key a key 
2015-01-21 18:22:14+0100 [-] Key result: None 
2015-01-21 18:22:14+0100 [KademliaProtocol (UDP)] (UDP Port 5678 Closed) 
2015-01-21 18:22:14+0100 [-] Main loop terminated. 

Что происходит? Я понимаю, что одноранговая сеть нуждается в сети для подключения, но разве это не то, что должен делать автономный сервер?

Заранее благодарен!

+0

различия клиент/сервер, на самом деле не существует в сети p2p. так, вы сообщили узлу 2, как связаться с узлом 1? И ваши файлы журналов не показывают временного перекрытия, если они не работают одновременно, они не могут разговаривать друг с другом. – the8472

+0

@ the8472, Документы Kademlia относятся к одному из двух сценариев как к «автономному серверу», который я также считал немного странным. Оба узла были, по сути, одновременно запущены и запущены. Я не совсем уверен, что нужно сделать, чтобы «сообщить узлу 2, как связаться с узлом 1». Не следует ли указывать одноранговую сеть на порт ip: port? – blz

+0

«Не следует указывать одноранговый порт ip: port?». Это должно быть, но сообщения журнала, похоже, указывают на то, что узлам не с кем поговорить. – the8472

ответ

1

В файле README неправильный адрес клиентского кода неверен. Файл примера в репозитории exmaple.py имеет правильную строку.

Пожалуйста, измените строки:

server.bootstrap([('127.0.0.1', 1234)]).addCallback(done, server) 

в

server.bootstrap([('127.0.0.1', 8468)]).addCallback(done, server) 

 Смежные вопросы

  • Нет связанных вопросов^_^