分散计算事件

时间:2014-03-13 00:23:39

标签: software-design

我想使用某种密码术和其他技巧可以计算出现了多少次。

例如,假设有一种方法可以识别每台计算机,而我的软件正在尝试通过在使用互联网时相互连接来计算有多少人使用它。

所以,假设我的软件是在计算机A上下载的,那么......

就像A> B> C ...现在C中的那个人需要知道有三台独特的计算机使用它。

和A> B> D需要知道它还有三台电脑。

但是如果A> B> C> E并且A> B> D> E> E现在E需要知道有5个唯一的计算机。

现在我可以制作一个系统,在这个系统中,一个基于某个东西(现在会是什么)的唯一ID关于计算机存储在计算机中的数组中,软件随身携带它并在连接时与其他人共享,然后检查是否阵列列表中有新的计算机,所以最后所有人都知道给予足够的连接。

然而,根据我从比特币和密码学中学到的东西,我觉得除了存储一百万次长串之外还有另一种方法(如果碰巧有大量计算机)。

1 个答案:

答案 0 :(得分:0)

您是否计算过有多少人使用过这个程序?或者有多少人正在使用该计划?或者有多少人在此之前的一段时间内使用过这个程序?

如果您的计数包括无法保证可以访问的计算机(例如,如果计算曾经使用过该程序的独特计算机,或者已经使用过一段时间但现在不一定在线),那么您似乎不可避免地需要一些官方累积清单的集中存储库。每台计算机都需要与该集中式列表进行通信,并为计算机传递一些唯一的标识符。如果您想从时间T开始就知道计算机,还需要跟踪连接的时间信息。

如果您只想要当前正在使用它的计算机的数量(并且彼此可访问),则每个计算机可能在其想要形成当前计数的时间点动态地询问其他计算机。但即便如此,你还需要一些集中式的约定来确定他们如何进行沟通。从概念上讲,他们每个人都动态地加入了一个" set"然后再把它留下来。即使那样"设置"并不总是位于一个固定的单一位置,仍然需要概念上一个官员" set"并且每个实例都需要能够与" set"加入它然后离开它。这意味着标准化的联系点和联系方式。

所以我怀疑你真正想要的东西可能不太可能以你希望的方式。也就是说,如果你还想进一步思考它,你可能想要了解更多关于点对点软件的信息,比如BitTorrent和其他软件。