是否有任何已知的方法寻找的同龄人,而不使用一个专门的中央服务器?

即:如果我已经同它们断开和重新连接到互联网,但得到一个新的IP地址的每一次,我要连接到他们没有设置专门的服务器登记册。

我是思考的有关使用同龄人的电子邮件地址发送的清单连同事定期与某种时间代码,否定需要一个专用服务器。这将是一个回退,如果没有同伴可以连接到尝试了所有先前已知的对等地址。但是,现有的模式找到同行将是可取的。

有帮助吗?

解决方案

无法知道至少一个初始同伴发现更多。 完全P2P协议,例如Gnutella或Gnutella2,或更简单的Overnet(由Storm Worm着名),基于每个客户端具有少数对等体的启动列表。例如,这些可以来自基于网络的自动跟踪器。客户端将通过向其他对等方请求更多地址来发现整个网络或其中的一部分,例如在委派文件搜索时。

如果您真的不能拥有任何类型的集中资源,那么您可以做的最好的事情就是通过广播消息和最终的IP地址扫描找到第一个对等体。第一种方法是善意的,但至少有98%的情况不会产生任何结果。当然,后一种方法是滥用互联网,在大多数国家都是非法的。

我真的会重新考虑使用某种中央跟踪器。它可以像Web服务器上的PHP脚本一样简单(今天的gnutella网络,由20个这样的脚本支持,由甚至彼此不认识的人托管)。这肯定比电子邮件更轻量级(由于垃圾邮件过滤器,至少不会起作用)。

其他提示

在Intranet内的对等体的有限情况下,可以向已知端口发送广播UDP消息,要求对等体报告。

利用可以发布数据的任何现有论坛。想想秘密的IRC频道,在照片中嵌入数据并发布到照片共享网站4chan ?,任何允许你的应用程序登录和发布数据而没有captia登录等的网站。

http://chatzilla.hacksrus.com/faq/#password

另一种策略可能是在数字货币交易中嵌入消息。选择一个可能会徘徊的廉价硬币......可能是DOGE或MOON硬币。在您的应用中构建钱包功能。这样您就可以在应用程序控制的地址之间来回发布微交易。仍然会有矿工费,但这只是便士的一小部分。即使他们后来禁止向交易添加元数据,您也可以在MOON中进行与您的IP地址相当的交易,并使用MOON硬币中的虚荣地址为您的应用程序。这样,当一个新节点上线时,它知道要搜索区块链的内容 - 2daMOON%bootStr @ pM3。发送 - 104.003021133 MOON IP = 104.3.21.133不是一个昂贵的主张。

BitcoinQT客户端使用各种方法来查找节点,其中一些可能对您有用。

Satoshi客户端节点发现

不再使用IRC,但可能最容易实现:

  

从版本0.6.x开始,比特币客户端默认不再使用IRC引导,并且从版本0.8.2开始,对IRC引导的支持已完全删除。以下文档对于大多数先前版本都是准确的。

     

除了学习和共享自己的地址外,节点还通过IRC通道了解了其他节点地址。请参见 irc.cpp

     

在学习了自己的地址后,一个节点将自己的地址编码成一个字符串,用作昵称。然后,它随机加入一个名为#bitcoin00和#bitcoin99之间的IRC频道。然后它发布了世卫组织命令。线程读取通道中出现的行并解码通道中其他节点的IP地址。它一直循环,直到节点关闭。

     

当客户端从IRC发现一个地址时,它会将地址上的时间戳设置为当前时间,但它使用了<!> quot; penalty <!>; 51分钟,这意味着它看起来几乎提前一小时才被看到。

三种方式,关掉我的头顶,但你总是需要一些中央服务器启动的连接,除非你去与选项3。

  • 中央服务器,维护知名单的同龄人,保持活力。
  • 一个或多个中央服务器,维护某些公共资源的同事可以用来发现另一个,但是一旦连接,不再需要中央服务器只要在对等仍然是连接(喜欢的东西BitTorrent);可以链凝视着连接。
  • 口/IP扫描(强烈建议不要).

在你的榜样,你还是会有某种形式的中央服务器那里的同龄人将被登记;该协议是唯一的差别。

老问题,但我一直在思考这个问题我自己所以将我的广告2美分。在短短的,一个中央服务器,如果不要求一个节点是意识到的至少一个有效的对等。新的节点必须被添加到网络通过任何目前的部件(例如邀请,或节点会产生另一个节点,这取决于你的应用程序)。

假设:

  • 代理跟踪的同行;这地址簿条目如何管理将依赖于自然系统;例如多长时间的同龄人保持连接,如果同使用稳定的地址

  • 代理共同侪信息与其他同行

  • 至少某些药剂仍然是提供比较长的一段时间的相对频连接节点的网络更新它的地址簿(或节点有稳定的地址)

  • 此外,对等地址,提供信息也是跟踪的(多选择这取决于你的系统。实例包括:是否对等拥有一个稳定的地址,在最后一次看到,一些提供指标、内容/服务的类型的信息,地址有效,直到时间的,如果知道的话)

  • 新的代理商初始化与至少一个有效的对等(不必是一个中央节点,可以是任何有效的节点)

  • 信任机制应当是必需的,如果恶意的同龄人是一个可能性

当一个对等候在网上,它将查询的同龄人,在它的对等的表现,这是活动的,或许删除过期的动态地址。节点交换等信息,并且可以成为连接本身。这对等的发现/交换可能会继续有一定数量的跳跃或通过随机一直走到对等名单,如果有足够的大小和/或质量。

一些更多的详细信息:

  • 节点连接和共享的同侪信息的频率相关的是如何节点往往地址的变化,使地址簿不变得陈旧和节点成为断开的,因为它没有一个是前的同龄人都可以在他们的最后所知地址

  • 节点可能需要的数量限制的同行,他们接受,为了避免的趋势集中围绕最稳定的节点。

  • 节点应当是选择性的有关他们的同龄人保持;即那些他们更可能交换的数据(例如重量基础是历史)

  • 节点链接可以是不对称的或者对称取决于应用程序

简单地说,如果没有中央服务器,就没有办法做到这一点。

如果您想这样做,您只需要一个或多个中央服务器,无论是否通过动态DNS。客户端需要一种方法来发现它们应该连接到的位置,唯一真正明智的方法是使用您自己的服务器,在最简单的情况下,它只需要发送一个IP地址作为响应。

虚拟服务器可以每月15美元左右,IMO比试图使用或滥用他人的带宽便宜得多。


[编辑]。

简而言之,还有另一种方法,如下所示。

经过反思,我认为我要做的是将一组对等体指定为集群控制器,并使用动态DNS服务来允许其他对等体发现集群控制器。

选择一个动态DNS提供商,我将其命名为myc.ath.cx(我使用 http:// www。 dyndns.com/ )。

每个对等方必须能够成为集群控制器。集群控制器将包含所有其他已连接对等体的列表。

当对等体启动时,它会查找myc.ath.cx并尝试连接。如果在一段时间内(例如30秒)无法建立连接,则会接管DNS条目的注册。

任何希望发现其他同行的同行都可以简单地查询myc.ath.cx并提供一个列表

所有对等体都负责定期下载对等体列表,以防它们需要集群控制器。

群集控制器将定期查询DNS条目 - 如果已从其IP地址更改,则它知道它不再是群集控制器 - 因此它将联系当前具有DNS条目的群集控制器并提供其列表已知的主机。

群集控制器将定期联系列表中的主机,以确保它们仍然有效。

您发送电子邮件的方法确实使用专用服务器;确切地说,是对等方的电子邮件服务器。

粗略地说,我不认为没有使用某种专用存储或服务器(电子邮件方法可以做到这一点,尽管是倾斜的),除非你能够描述你的同行正在使用的互联网连接。

基本上,如果你有一组X个对等体,连接Y个时间量,然后它们离开网格Z个时间量...基本上,你可以建立一个关于可能性的概率方程这是你上次联系的那组同伴仍然可用;在概率接近1的情况下(对于上面给定的一组X,Y和Z),您很可能在不使用存储的情况下维持对等网络。

可能更多的精神;而不是使用<!>“专用中央服务器<!>”,而是使用简单的在线免费服务来指定对等列表。建立一个雅虎集团,或类似的东西;客户端可以自动查找并获取一个对等地址,从中查询一组对等体;客户端可以使用身份验证进行编码以发布到组,并可以定期发布其IP地址,以便其他人可以请求已知的活动对等集。

如果你想变得非常棘手,你可以开始使用基本的隐写方法来隐藏对等位置信息。即得到谷歌搜索<!>“; blah <!>”;;找到结果中列出的第一个具有不受保护(无CAPTCHA)留言板的站点;找到以<!>开头的第三个(或其他)帖子; Indubitably <!> quot; (或其他),并在那里找到第一条消息的标题,并且有一个对等体的IP地址。如果这不起作用,请将搜索词列表下移到下一个。

但那是偷偷摸摸的。 : - )

您是否可以重新使用现有专用服务器?

我正在考虑使用动态DNS注册每个对等方,但是如果您愿意更加丑陋,则可以共享对已知Hotmail帐户或Google Doc等的访问权。

您可以使用中央目录或某种广播协议进行服务发现。假设您可以让它们被Google编入索引,您可以设想一个系统,每个对等体运行一个网站,其中包含特定页面上包含的一些独特,罕见的单词。然后,您可以根据这些词语使用Google搜索结果来识别潜在的同行。这基本上是(嘈杂和缓慢)互联网广播。

如果页面结构是众所周知的模式或包含该对等体的可识别连接信息,则很容易在搜索结果中区分它们。使用这样的公共目录会让您对形成的网络中的受损节点开放,但对于没有某种安全机制的任何P2P网络来说都是如此。

通过Google(或其他搜索引擎)抓取网站并为您的特定神秘搜索字词集排名很高,这将是一个诀窍。我可以想到几种方法,但它们不是我会使用的方式。对于合法的服务,我宁愿花钱或找一个可以作为目录的免费网站。

另一个专门用于跟踪其他P2P系统在线同行的P2P系统呢?

然后我们减少了为任何新的P2P系统找到对等点的问题,只需找到“主要”P2P系统的对等点,这将为您提供您感兴趣的系统的在线对等地址...

这是分布式哈希表算法的典型用法。我建议看看像糕点这样的东西。它在其他层之上使用覆盖网络(应用层网络)。

每个节点都有一个GUID,用于在对等网络上路由请求。

如果您正在寻找已经建立的中央服务器,请在此处查看metaserver条目:
http://martindevans.appspot.com/
您可以在那里注册同行,然后其他同行可以找到它们。显然这是一个中央服务器,但它不需要你的维护。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top