问题标签 [dht]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
60 浏览

architecture - 可以暂停的订单保持队列

我目前正在开发一个使用 RabbitMQ 向工作人员传递消息的软件。基本上,这是一项非常容易的任务,因为您可以使用单个队列的单个直接交换,并且所有工作人员都使用该队列。任务完成。

但现在,事情开始变得复杂起来。如果有两个额外的要求,那让我想到:

  • 消息并非全部相等,即消息有一个“标志”,用于对消息进行分组。现在第一个要求是所有具有相同“标志”的消息都按顺序处理。
  • 希望“暂停”处理具有特定标志的所有消息。

第一个很容易解决:您只需确保具有相同标志的消息始终由同一个工作人员处理,并将其预取设置为 1。为了确保您可以使用x-consistent-hash交换器。

第二个也很容易解决:您必须为每个标志使用单独的队列,然后您可以停止处理队列。

现在,虽然这基本上可行,但它引入了一些问题,我不太确定如何解决它们:

  • 如果我将prefetch选项设置为 1,事情会变得更慢,因为我无法并行处理消息。这大大降低了性能。
  • 如果我为每个标志使用单独的队列,我最终会得到大量队列(> 10k)。虽然这似乎不是 RabbitMQ 处理的问题,但我想知道这是否是个好主意。
  • 此外,我现在有多个工作“步骤”,即一旦一个消息已由工作人员处理,它会将其放入另一个 RabbitMQ,并且同样的事情重新开始。这意味着,如果我不为每个步骤使用单独的 RabbitMQ 实例,我最终会得到很多队列(n 个交换n 次 10k队列)。

有没有更好的方法来解决这个问题?如果是这样,怎么做?任何想法,提示,...?

0 投票
1 回答
1376 浏览

networking - 如何连接到 DHT 引导节点?

我正在制作一个 torrent 客户端,我需要在我的程序中包含 DHT 连接。我找到了一些静态 DHT 节点,但我无法连接到其中任何一个节点。我正在使用我的端口和 torrent 信息哈希向该地址发送 Ping 查询,但我没有收到任何响应。

0 投票
4 回答
5685 浏览

java - java中的分布式Hashmap或分布式信息存储

有人知道用于分布式哈希图 (DHT) 的好的 Java 框架吗?

前段时间我使用Overlay Weaver,但这里缺少一个好的文档,所以我只将它用于具有丑陋黑客的原型......但现在我需要可靠的代码。还是有人为 OverlayWeaver 找到了一个好的文档?

如果 dht 框架支持 Chord 或 Kademlia 并且可以在我的 java 应用程序中调用,那将是完美的。

或者有人知道在分布式系统中保存可靠且故障安全的短字符串数据的更好方法吗?

0 投票
1 回答
397 浏览

graph - DHT(kademlia)是否能够可靠地存储价值链?

我正在考虑实现一个 DHT,其中数据项通过将后继地址添加到存储的值来链接,如果每个节点可以具有以下三种有序状态之一:空 -> 数据 -> 数据和后继地址将所有对等方获得一致且正确的顺序?或者这里有可能永久分叉吗?

0 投票
1 回答
530 浏览

python - 为什么我不能使用 Kademlia 示例代码设置值?

我想在我的项目中使用 DHT,但我无法让Kademlia 示例正常工作。

这是来自的输出日志twistd -noy examples/server.tac

这是上面链接中的客户端脚本的输出:

这是怎么回事?我知道一个对等点需要一个网络来连接,但这不是独立服务器应该做的吗?

提前致谢!

0 投票
1 回答
605 浏览

cloud - 分布式哈希表中的节点发现

我对如何在分布式哈希表算法 (CHORD) 中进行节点发现感到非常困惑。假设每个节点都可以通过多播到达。为什么以下情况会不好:

  • 一个节点开始工作
  • 组播到达网络
  • 没有任何反应,决定它是孤独的。

  • 第二个节点到达。

  • 组播到达网络。
  • 所有节点都收到到达并使用节点的密钥更新它们的 NodesList。
  • 然后将这个新的 nodeList 返回给新的到达者。
  • 相邻节点也开始向这个新到达的节点传输必要的键值对。

  • 客户端向节点询问密钥,每个节点都知道该密钥对应的 ip/port。向该节点询问 KEY-VALUE 对并将其返回给客户端。

现在我认为这种情况很糟糕,因为每个节点都无法保留一个巨大系统中所有节点的列表。我对么?

但是,节点如何发现其所谓的 FINGER TABLE 呢?

我知道 bittorrent 将中央服务器作为 DHT 系统中的起始节点。如果我们假设我们可以通过多播到达每个节点,是否有可能消除该服务器?

提前致谢。很抱歉有多个问题,但我认为我无法用一个问题证明我的困惑。

0 投票
1 回答
692 浏览

python - libtorrent python dht 示例

我正在尝试实现一个 p2p 应用程序。我想在 libtorrent 库中使用 DHT。我想将 python 用于 p2p 应用程序。谁能建议一个示例 dht libtorrent python 实现或我可以使用的一些 api?

0 投票
2 回答
294 浏览

python - Libtorrent 如何设置超时?

我用add_magnet_uri获取信息,但是有些资源响应慢,应该用什么来设置总超时?

http://www.rasterbar.com/products/libtorrent/manual.html

:( 没找到相关设置

0 投票
1 回答
520 浏览

tracker - 是否可以在无跟踪器的种子文件中包含对等点?

我可以在不使用跟踪器、打开跟踪器、dht 和对等交换的情况下生成内部已经有对等点的 torrent 文件吗?

如果是,我该怎么做?

我想这样做的原因是,我想通过 DHT 获取对等点并将该对​​等点传递给另一个不支持 DHT 或对等交换的 torrent 客户端,并且无法在没有跟踪器的情况下获得对等点。

我找到了这个,但我不明白什么是节点,如果它是我正在寻找的。 http://www.bittorrent.org/beps/bep_0005.html#torrent-file-extensions

请不要建议我使用 uTorrent trackerless torrent 功能,因为它 utorrent 会成为跟踪器。我没有弄错我的需要,我的问题是正确的。

0 投票
1 回答
193 浏览

distributed - 如何防止可能想要更改/删除我的 DHT 数据的恶意 DHT 客户端?

好的,假设我有一个运行有 10 个客户端的 DHT,其中包含一堆数据。

恶意客户端运行我的程序的替代版本不是相对容易吗,这可能会对我的数据进行潜在的破坏性操作(例如替换密钥、删除密钥、更改数据、删除我的整个 DHT 等)。 ..)

我该如何防止这种情况发生?

我只能想到:

  • 校验和验证程序并只允许那些连接。但这会被黑客入侵吗?

  • 使用某种密钥验证每个 DHT 客户端。

有谁知道如何防止这种情况?提前致谢。