C++ реализация DHT

Я ищу реализации Kademlia DHT с открытым исходным кодом в C/C++. Он должен быть легким и кроссплатформенным (win/linux/mac).

Он должен иметь возможность публиковать информацию в DHT и получать ее.

5 ответов

Решение

Что не так с maidsafe-dht?

OpenDHT - это облегченный Kademlia DHT на 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.ring.cx", "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.

LibTorrent Kademlia DHT написан на C++ и хорошо документирован.
Вот пример кода с неизменяемыми и изменяемыми операциями get/put: https://github.com/arvidn/libtorrent/blob/master/tools/dht_put.cpp

Я нашел библиотеку BitTorrent DHT, используемую Transmission. Он написан на чистом C, но его легко использовать с C++.

Я использую его в своем проекте C++. Это работает хорошо, но требует внешнего криптографического хэша и функций рандомизации.

Вы можете попробовать bitdht, используемый retroshare.

Другие вопросы по тегам