我应该何时停止递归的"get_peers"DHT搜索



由于DHT节点可能是恶意的,并报告假values(即假对等体(,我们不应该在收到任何响应后立即停止搜索对等体,希望从另一个好的节点中获得真正的对等体。

我们甚至不必假设有恶意:当我们探索DHT的另一个分支时,如果我们只关注最短的分支,我们可能会错过更多(甚至更好(的同行。

我应该何时停止递归get_peersDHT搜索?我们是否应该继续搜索,直到搜索空间中的所有节点都用完为止?即,一旦我们没有从最后一位候选人那里得到任何未查询的nodes

如果,则对K-最近节点集的迭代查找完成

A( 以下都是真正的

  1. 飞行中没有任何请求(即得到响应、ICMP错误或超时(的响应可能会更改最近节点的集合
  2. 最接近的集合至少有K个条目
  3. nodes/nodes6字段中检索到的候选项不比结果集中最远的K项更接近

B( 当您查询的候选人用完时

在计算K-closest-set时,您还需要考虑是否有资格进行后续操作(如果有的话(。例如,如果您想继续使用announce_peer,那么K-closest-node-set必须由返回token的节点组成,因为不返回令牌意味着无法存储其他值。

最新更新