0

Supposed I have a P2P network with lots of nodes. If I want to update the P2P client there is one thing I do not want to do: Update each single node.

Now I could imagine updating one node, and from time to time, each node checks whether the node it currently interacts with is a newer version - and if so, gets the update from that node.

This way, updates would find their way through the P2P network and all you had to do was update one node. Moreover, you'd not be dependent from a central server.

Is there (somewhere out there ;-)) a concept for such an update scenario?

What might be the pros / cons of this approach?

4

1 回答 1

1

优点:如果出于任何其他原因,讨论和谈论真的很酷。

缺点:

  • 可能是一个安全漏洞。如果我可以在 P2P 网络上放置一个流氓对等点,我的代码可以宣传实际上是病毒的更新。您至少应该确保更新包括某种代码签名和身份验证。

  • 如果 P2P 协议或更新代码中存在任何类型的错误,那么您可能会进入只能升级所有节点的子集的状态。

更好的方法可能是让客户端从集中位置获取更新。一种混合方法是通过发布 URL 和文件哈希的中央服务器通知对等方更新。如果节点可以从对等点获取更新(并验证哈希和代码签名),那就太好了。但始终将“从中央服务器下载”作为后备。

您可能还想考虑如何合并“分阶段推出”,以便只有有限数量的对等方接收更新。因此,您可以在将更新推送到所有其他对等方之前验证更新在一小部分上是否正常。

于 2012-12-23T09:56:34.683 回答