Я ищу реализации Kademlia DHT с открытым исходным кодом на C/C++. Он должен быть легким и кроссплатформенным (win/linux/mac).
Он должен иметь возможность отправлять информацию в DHT и извлекать ее.
Я ищу реализации Kademlia DHT с открытым исходным кодом на C/C++. Он должен быть легким и кроссплатформенным (win/linux/mac).
Он должен иметь возможность отправлять информацию в DHT и извлекать ее.
Что не так с maidsafe-dht?
OpenDHT – это облегченный DHT Kademlia на C++11. API очень простой:
dht::DhtRunner node;
// Launch a dht node on a new thread, using a
// generated RSA key pair, and listen on port 4222.
node.run(4222, dht::crypto::generateIdentity(), true);
// Join the network through any running node,
// here using a known bootstrap node.
node.bootstrap("bootstrap.jami.net", "4222");
// put some data on the dht
std::vector<uint8_t> some_data(5, 10);
node.put("unique_key", some_data);
Он поддерживает компиляцию с помощью LLVM или GCC в OS X, Linux и Windows.
Kademlia DHT от LibTorrent написан на C++ и хорошо документирован.
Вот пример кода с неизменяемыми и изменяемыми операциями get/put: https://github.com/arvidn/libtorrent/blob/master/tools/dht_put.cpp
Вы можете попробовать bitdht, используемый retroshare.
Я нашел библиотеку BitTorrent DHT, используемую Transmission. Он написан на чистом C, но его можно легко использовать из C++.
Я использую его в своем проекте C++. Он работает хорошо, но требует внешнего криптографического хэша и функций рандомизации.