{"id":380,"date":"2007-03-06T07:37:38","date_gmt":"2007-03-06T07:37:38","guid":{"rendered":"http:\/\/neosmart.net\/blog\/2007\/what-about-trackerexchange\/"},"modified":"2013-08-26T18:09:15","modified_gmt":"2013-08-26T23:09:15","slug":"what-about-trackerexchange","status":"publish","type":"post","link":"https:\/\/neosmart.net\/blog\/what-about-trackerexchange\/","title":{"rendered":"What about TrackerExchange?"},"content":{"rendered":"<p>Several independent torrent clients, most notably <a href=\"http:\/\/www.utorrent.com\/\" rel=\"follow\">\u00b5Torrent<\/a> and <a href=\"http:\/\/www.vuze.com\" rel=\"follow\">Azureus<\/a>, have created &#8220;peer exchange&#8221; protocols that allow for clientless torrent downloads. By means of the now-standard DHT trackerless peer-exchange format, these clients (and others) communicate with one-another and ask for info about new peers to download from.\n<\/p>\n<p>Long story short, they let you download torrents with dead\/no trackers, and without communicating with a central server. Everyone knows the importance of trackers of course, they provide torrent clients a list of known peers to download from &#8211; leechers and seeders alike, as well as track the status of a torrent at any given time. The problem is, they disappear mighty fast.\n<\/p>\n<p><!--more--><\/p>\n<p>\u00b5Torrent also has another trackerless implementation called &#8220;PeerExchange&#8221; that does just about the same thing. But why stick to peers? Bittorrent <strong>is a centralized protocol<\/strong>. Attempting to convert the bittorrent <strong>protocol<\/strong> into a decentralized <strong>network<\/strong> isn&#8217;t going about things the right way&#8230; So here&#8217;s an idea: instead of just exchanging peers, why not exchange trackers too?\n<\/p>\n<p>Say Client A is using \u00b5Torrent and is downloading File 1, and has <strong>one tracker<\/strong>, and currently has a bunch of peers in its list, one of which is Client B. Client B, also using \u00b5Torrent, is connected to a bunch of other peers and <strong>two trackers<\/strong>. Using DHT or PeerExchange, Client A can get a<strong> partial list of peers<\/strong> from Client B to connect to. Using certain algorithms, Client A communicates with each of these peers in turn and gets a mostly-complete list of peers to download from &#8211; at least, that&#8217;s the way it&#8217;s supposed to work.\n<\/p>\n<p>But truth be told, DHT\/PeerExchange aren&#8217;t that great. A torrent (with DHT enabled) without trackers but thousands of peers won&#8217;t download <strong>anywhere near as fast<\/strong> as a torrent with a tracker that has the same amount of clients registered with it (or even less). So why not exchange tracker lists?\n<\/p>\n<p>In the example above, when Client A communicates with Client B, it&#8217;ll request a list of <strong>trackers, not peers<\/strong>. Client B, if it understands the request, will return the tracker(s) it&#8217;s using, and Client A will add them to its list. Rinse &amp; Repeat.\n<\/p>\n<p>This results in <strong>smaller overhead, faster downloads, and more static conditions<\/strong>. Peer IP addresses change constantly, trackers don&#8217;t. As trackers expire and new ones are introduced, Client A will always have a up-to-date list, and it&#8217;ll share it alike. Trading peers is a decentralized way of doing things and has its own advantages, but so long as bittorrent relies on trackers for the original torrent, <strong>it&#8217;s still a centralized network anyhow.<\/strong>\n<\/p>\n<p>Just an idea &#8211; but one that we&#8217;d definitely be interested in seeing. Especially for torrents in the gigabytes, it can take days or weeks to complete a download (especially on lower-end DSL). Having a <strong>static tracker<\/strong> instead of <strong>dynamic peers<\/strong> is a much more reliable solution.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Several independent torrent clients, most notably \u00b5Torrent and Azureus, have created &#8220;peer exchange&#8221; protocols that allow for clientless torrent downloads. By means of the now-standard DHT trackerless peer-exchange format, these clients (and others) communicate with one-another and ask for info &hellip; <a href=\"https:\/\/neosmart.net\/blog\/what-about-trackerexchange\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[273,274,272,275],"class_list":["post-380","post","type-post","status-publish","format-standard","hentry","category-software","tag-u2torrent","tag-azureus","tag-bittorrent","tag-network-protocols"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p4xDa-68","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/posts\/380","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/comments?post=380"}],"version-history":[{"count":1,"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/posts\/380\/revisions"}],"predecessor-version":[{"id":1915,"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/posts\/380\/revisions\/1915"}],"wp:attachment":[{"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/media?parent=380"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/categories?post=380"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/tags?post=380"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}