Announce

From VuzeWiki
Jump to: navigation, search

Introduction[edit]

An announce, aka "Tracker Announce", is a request sent to a tracker. A request is sent, connection to the tracker is established, information is exchanged, then the connection is closed. An announce is what every BitTorrent client (such as Vuze) does, to any tracker that is hosting a .torrent which is loaded into the client. The request does something like a "wipe" or a "pass" over the tracker, and then the tracker sends information back to the client.

An announce declares your Vuze client to the tracker and requests a list of peers from that tracker. The Vuze client can then attempt and establish connections with those peers to start transferring data.

Every BitTorrent client announces to the tracker a number times during the course of a download to update its peers information. The announce operation is heavy on the tracker so clients need to respect the "min_interval" parameter sent back by the tracker.

Why Announce?[edit]

Vuze announces to the tracker in order to receive a list of peers to connect to, and will do so until stopped, whether the torrent is complete or not.

Announce Intervals[edit]

Vuze respects the interval set by:

  • min_interval flag sent by the tracker
  • interval flag sent by the tracker

Azureus will never knowingly scrape a tracker more than once every 15 minutes. (It could unknowingly scrape more often if the user restarts Azureus more than once within 15 minutes). If min_request_interval is specified, it won't scrape for the torrents returned until the time specified.

Azureus will scrape at least once every 3 hours. Even on torrents with a large amount of clients, the dynamics can change dramatically in 3 hours. For example, a new torrent may have thousands of clients, but within 3 hours all of those clients could finish downloading and leave, leaving the torrent with a poor seed:peer ratio.


Tracker Announce Convention[edit]

Convention described at the Bittorrent Specification Wiki, Vuze supports additional unofficial specs.

Announcing[edit]

Announcing is the act of sending an announce request to the tracker.

Announce Results[edit]

Azureus supports the following dictionary/keys.

failure reason
warning message
interval
min interval
tracker id
complete
incomplete
peers (dict)
  peer id (string)
  ip (string: IPv6 (hexed) or IPv4 (dotted quad) or DNS name (string))
  port (long)
peers (binary)

Vuze supports the following dictionary/keys.

  • interval: Interval in seconds that the client should wait between sending regular requests to the tracker
  • min interval: (optional) Minimum announce interval. If present clients must not reannounce more frequently than this.

Non-official keys are optional and are explained below.

failure reason[edit]

The value is a human readable error string as to why the announce failed.

min_interval[edit]

The value for this key is an integer specifying how the minimum number of seconds for Vuze to wait before announcing the tracker again.

Please note the flags is a dictionary key of the main dictionary, and its value is a dictionary. Inside the dictionary, is a key/value pair for min_interval.

Examples[edit]

Note: New lines in the request/results are not part of request/result. They exist only to help with formatting in the wiki.

TO EDIT - Single Request[edit]

Request:

http://tracker/announce?hash_id=xxxxxxxxxxxxxxxxxxxx

Reply:

d5:filesd20:xxxxxxxxxxxxxxxxxxxxd8:completei2e10:downloadedi0e10:incompletei4e
4:name12:xxxxxxxxxxxxee5:flagsd20:min_request_intervali3600eee

This tells us that torrent with hash 'xxxxxxxxxxxxxxxxxxxx' has 2 seeders, and 4 leechers. The torrent has been downloaded 0 times, and its name is xxxxxxxxxxxx. A scrape will not occur until at least 3600 seconds, or 60 minutes.