是否有任何已知的方法可以在不使用专用中央服务器的情况下查找对等方?
ie:如果我有同行正在断开连接并重新连接到互联网但每次都获得一个新IP地址,我想连接到它们而不设置专用服务器进行注册。
我正在考虑使用对等电子邮件地址定期发送连接对等的清单,使用某种时间码,无需专用服务器。如果在尝试所有先前已知的对等地址之后没有任何对等体可以连接,则这将是后备。但现有的寻找同伴的模式更可取。
答案 0 :(得分:41)
无法知道至少一个初始同伴发现更多。 完全P2P协议,例如Gnutella或Gnutella2,或更简单的Overnet(由Storm蠕虫着名),基于每个客户端具有少数对等体的启动列表。例如,这些可以来自基于网络的自动跟踪器。客户端将通过向其他对等方请求更多地址来发现整个网络或其中的一部分,例如在委派文件搜索时。
如果您真的不能拥有任何类型的集中资源,那么您可以做的最好的事情就是通过广播消息和最终的IP地址扫描找到第一个对等体。第一种方法是善意的,但至少有98%的情况不会产生任何结果。当然,后一种方法是滥用互联网,在大多数国家都是非法的。
我真的会重新考虑使用某种中央跟踪器。它可以像Web服务器上的PHP脚本一样简单(今天的gnutella网络,由20个这样的脚本支持,由甚至彼此不认识的人托管)。这肯定比电子邮件更轻量级(由于垃圾邮件过滤器,至少不会起作用)。
答案 1 :(得分:9)
在Intranet内的对等体的有限情况下,可以向已知端口发送广播UDP消息,要求对等体报告。
答案 2 :(得分:6)
利用可以发布数据的任何现有论坛。想想秘密的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不是一个昂贵的主张。
答案 3 :(得分:6)
BitcoinQT客户端使用各种方法来查找节点,其中一些可能对您有用。
不再使用IRC,但可能最容易实现:
从版本0.6.x开始,比特币客户端默认不再使用IRC引导,并且从版本0.8.2开始,对IRC引导的支持已完全删除。以下文档对于大多数先前版本都是准确的。
除了学习和共享自己的地址外,节点还通过IRC通道了解了其他节点地址。请参阅irc.cpp。
在学习了自己的地址后,一个节点将自己的地址编码成一个字符串,用作昵称。然后,它随机加入一个名为#bitcoin00和#bitcoin99之间的IRC频道。然后它发布了世卫组织命令。线程读取通道中出现的行并解码通道中其他节点的IP地址。它一直循环,直到节点关闭。
当客户端从IRC发现一个地址时,它会将地址上的时间戳设置为当前时间,但它使用了#34;惩罚" 51分钟,这意味着它看起来几乎提前一小时才被看到。
答案 4 :(得分:4)
除了你选择3之外,你总是需要一些中央服务器才能启动连接,但我还是有三种方法。
在你的例子中,你仍然有某种中心服务器,其中对等体将被注册;协议是唯一的区别。
答案 5 :(得分:4)
老问题,但我自己一直在考虑这个问题,所以我会花2美分。简而言之,如果节点知道至少一个有效对等体,则不需要中央服务器。新节点必须由任何当前成员添加到网络中(例如,邀请,或节点生成另一个节点,具体取决于您的应用程序)。
假设:
代理商跟踪同行;这个地址簿的大小以及如何管理条目取决于系统的性质;例如对等体保持连接的时间长短,如果对等体使用稳定的地址
代理与其他同行共享对等信息
相对于频率节点连接到网络以更新它的地址簿(或节点具有稳定地址),至少有一些代理可以保持相对较长的时间段
除了对等地址之外,还会跟踪可用性信息(此处有许多选项,具体取决于您的系统。示例包括:对等方是否具有稳定的地址,上次查看时,某些可用性指标,内容/服务类型信息,地址有效 - 直到时间已知)
使用至少一个有效对等方初始化新代理(不必是中心节点,可以是任何有效节点)
如果可能存在恶意同伴,则需要信任机制
当对等体上线时,它会查询对等体中的对等体,以发现哪些是活动的,并且可能删除过期的动态地址。节点交换对等信息并且可以自己链接。如果具有足够的大小和/或质量,该对等体发现/交换可以继续一定数量的跳跃或通过随机步行直到对等列表。
更多细节:
节点以与节点地址更改频率相关的频率连接和共享对等信息,因此地址簿不会变得陈旧,节点也会断开连接,因为它们的所有节点都不可用最后知道的地址
节点可能需要限制它们接受的对等体数量,以避免在最稳定的节点周围集中化。
节点应该对他们保留的同伴有选择性;即他们更有可能交换数据的文件(例如基于历史的重量)
节点链接可能是不对称的或对称的,具体取决于应用程序
答案 6 :(得分:3)
简单地说,如果没有中央服务器,就没有办法做到这一点。
如果您想这样做,您只需要一个或多个中央服务器,无论是否通过动态DNS。客户端需要一种方法来发现它们应该连接到的位置,唯一真正明智的方法是使用您自己的服务器,在最简单的情况下,它只需要发送一个IP地址作为响应。
虚拟服务器可以每月15美元左右,IMO比试图使用或滥用他人的带宽便宜得多。
[编辑]。
简而言之,还有另一种方法,如下所示。
经过反思,我认为我要做的是将一组对等体指定为集群控制器,并使用动态DNS服务来允许其他对等体发现集群控制器。
选择一个动态DNS提供程序,我将其命名为myc.ath.cx(我使用http://www.dyndns.com/)。
每个对等方必须能够成为集群控制器。集群控制器将包含所有其他已连接对等体的列表。
当对等体启动时,它会查找myc.ath.cx并尝试连接。如果在一段时间内(例如30秒)无法建立连接,则会接管DNS条目的注册。
任何希望发现其他同行的同行都可以简单地查询myc.ath.cx并提供一个列表
所有对等体都负责定期下载对等体列表,以防它们需要集群控制器。
群集控制器将定期查询DNS条目 - 如果已从其IP地址更改,则它知道它不再是群集控制器 - 因此它将联系当前具有DNS条目的群集控制器并提供其列表已知的主机。
群集控制器将定期联系列表中的主机,以确保它们仍然有效。
答案 7 :(得分:1)
您发送电子邮件的方法确实使用专用服务器;确切地说,是对等方的电子邮件服务器。
粗略地说,我不认为没有使用某种专用存储或服务器(电子邮件方法可以做到这一点,尽管是倾斜的),除非你能够描述你的同行正在使用的互联网连接。
基本上,如果你有一组X个对等体,连接Y个时间量,然后它们离开网格Z个时间量...基本上,你可以建立一个关于可能性的概率方程这是你上次联系的那组同伴仍然可用;在概率接近1的情况下(对于上面给定的一组X,Y和Z),您很可能在不使用存储的情况下维持对等网络。
可能更多的精神;而不是拥有“专用中央服务器”,使用简单的在线免费服务来指定对等列表。建立一个雅虎集团,或类似的东西;客户端可以自动查找并获取一个对等地址,从中查询一组对等体;客户端可以使用身份验证进行编码以发布到组,并可以定期发布其IP地址,以便其他人可以请求已知的活动对等集。
如果你想变得非常棘手,你可以开始使用基本的隐写方法来隐藏对等位置信息。即得到谷歌搜索“blah”;找到结果中列出的第一个具有不受保护(无CAPTCHA)留言板的站点;找到以“Indubitably”(或其他)开头的第三个(或其他)帖子,找到第一个消息的头部,并且有一个对等体的IP地址。如果这不起作用,请将搜索词列表下移到下一个。
但那是偷偷摸摸的。 : - )
答案 8 :(得分:1)
您是否可以重新使用现有专用服务器?
我正在考虑使用动态DNS注册每个对等方,但是如果您愿意更加丑陋,则可以共享对已知Hotmail帐户或Google Doc等的访问权。
答案 9 :(得分:1)
您可以使用中央目录或某种广播协议进行服务发现。假设您可以让它们被Google编入索引,您可以设想一个系统,每个对等体运行一个网站,其中包含特定页面上包含的一些独特,罕见的单词。然后,您可以根据这些词语使用Google搜索结果来识别潜在的同行。这基本上是(嘈杂和缓慢)互联网广播。
如果页面结构是众所周知的模式或包含该对等体的可识别连接信息,则很容易在搜索结果中区分它们。使用这样的公共目录会让您对形成的网络中的受损节点开放,但对于没有某种安全机制的任何P2P网络来说都是如此。
通过Google(或其他搜索引擎)抓取网站并为您的特定神秘搜索字词集排名很高,这将是一个诀窍。我可以想到几种方法,但它们不是我会使用的方式。对于合法的服务,我宁愿花钱或找一个可以作为目录的免费网站。
答案 10 :(得分:1)
另一个专门用于跟踪其他P2P系统在线同行的P2P系统呢?
然后我们减少了为任何新的P2P系统寻找对等点的问题,只需找到“主要”P2P系统的对等点,这将为您提供您感兴趣的系统的在线对等地址... < / p>
答案 11 :(得分:0)
这是分布式哈希表算法的典型用法。我建议看看像糕点这样的东西。它在其他层之上使用覆盖网络(应用层网络)。
每个节点都有一个GUID,用于在对等网络上路由请求。
答案 12 :(得分:0)
如果您正在寻找已经建立的中央服务器,请在此处查看页面上的metaserver条目:
http://martindevans.appspot.com/
您可以在那里注册同行,然后其他同行可以找到它们。显然这是一个中央服务器,但它不需要你的维护。