0

我想在 C 程序中使用BitTorrent DHT 库作为分布式哈希表。因此,我在我的机器上下载并编译了它 - 完美无瑕。现在我有一个可执行的 dht-example 输出:

Usage: dht-example [-q] [-4] [-6] [-i filename] [-b address]...
                   port [address port]...

我可以用这个例子做什么?如何使用 DHT:连接分布式机器、填充它或从中读取哈希表?

非常感谢阿奇姆

4

1 回答 1

1

dht-example.c是提到的 DHT 库中提供的一个简约示例。

运行make编译后,您应该运行./example-dht 6882 67.215.246.10 6881. 这将在本地端口 6882 上打开一个侦听 UDP 套接字,用于与 DHT 网络通信。

但是在您的新对等点能够连接到网络之前,它需要至少一个已连接的对等点,它可以从中获得更多对等点。这是第三和第四个参数/参数起作用的地方。在这种情况下,它是网络上已知良好节点的 IP 地址和端口组合router.bittorrent.com。这个过程称为引导。

该程序不接受来自标准输入的指令,而是通过内核信号SIGINT和. 用于列出您机器上的信号编号,然后在运行时使用命令获取.SIGUSR1SIGUSR2kill -Lps aux | grep example-dhtexample-dhtexample-dht

要开始搜索 infohash 的对等点,硬编码在 中dht-example.c,请发出命令kill -XX YYYYY,其中XXSIGUSR1信号的编号,YYYYY是 的进程 ID dht-example。观察dht-example程序的标准输出。

要转储我们的存储桶和存储桶 0 中的其他节点,请发出命令kill -XX YYYYY,其中XXSIGUSR2信号的编号,YYYYY是 的进程 ID dht-example。观察dht-example程序的标准输出。

对于停止dht-exmample,发出命令kill -XX YYYYYwhereXXSIGINT信号的编号,YYYYY是 的进程 ID dht-example。观察dht-example程序的标准输出。

于 2021-04-27T19:37:35.507 回答