DHT的C ++实现

时间:2011-06-08 15:44:20

标签: c++ cross-platform dht

我正在寻找C / C ++中Kademlia DHT的开源实现。它必须是轻量级和跨平台的(win / linux / mac)。

必须能够将信息发布到DHT并检索它。

5 个答案:

答案 0 :(得分:3)

OpenDHT是C ++ 11中的轻量级Kademlia DHT。 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);

它支持在OS X,Linux和Windows上使用LLVM或GCC进行编译。

答案 1 :(得分:2)

LibTorrent的Kademlia DHT用C ++编写,并且有据可查。
以下是具有不变且可变的get / put操作的示例代码:https://github.com/arvidn/libtorrent/blob/master/tools/dht_put.cpp

答案 2 :(得分:1)

maidsafe-dht出了什么问题?

答案 3 :(得分:1)

你可以试试retroshare使用的bitdht

答案 4 :(得分:1)

我找到了一个BitTorrent DHT library,由Transmission使用。它是用纯C编写的,但它可以很容易地从C ++中使用。

我在我的C ++项目中使用它。它运行良好但需要外部加密哈希和随机化功能。