docs: absorb the wiki

This commit is contained in:
Charles Kerr 2022-02-21 10:39:27 -06:00
parent 8e7f993717
commit 4d5959a752
22 changed files with 2942 additions and 0 deletions

10
docs/Blocked-Traffic.md Normal file
View File

@ -0,0 +1,10 @@
# What to do if my ISP is blocking BitTorrent traffic? #
## Problem ##
Some ISPs are blocking all BitTorrent traffic to save money or to avoid a high load on their network. Some analyze the packets and filter by type, some just block known ports.
## Tips ##
* Configure your Transmission to accept encrypted peers only
* Change your Transmission port
* Use a tunnel
* Use a proxy

39
docs/Blocklists.md Normal file
View File

@ -0,0 +1,39 @@
A Blocklist is third-party list of peer addresses to block. This can be used to block peers whose addresses are believed to belong to spyware or malware manufacturers.
## What blocklist does Transmission Use? ##
Transmission supports the [P2P Plaintext Format](http://en.wikipedia.org/wiki/PeerGuardian), which is used by PeerGuardian, Bluetack, Vuze, ProtoWall, and KTorrent, and the DAT format, which was originally made popular by eMule.
The Transmission Project does not evaluate or endorse any specific blocklists. If you do not know what blocklist to use, you might [read about some third-party blocklists](http://www.google.com/search?q#blocklist+url) and evaluate them on your own.
If "Enable automatic updates" is enabled, Transmission will periodically refresh its copy of your blocklist from your specified URL.
When you press the "Update Blocklist" button, Transmission will download a new copy of your blocklist.
## Adding Other Blocklists ##
Transmission stores blocklists in a folder named `blocklists` in its [[configuration folder|ConfigFiles]].
In that directory, files ending in ".bin" are blocklists that Transmission has parsed into a binary format suitable for quick lookups. When transmission starts, it scans this directory for files not ending in ".bin" and tries to parse them. So to add another blocklist, all you have to do is put it in this directory and restart Transmission. Text and gzip formats are supported.
## Using Blocklists in transmission-daemon ##
transmission-daemon doesn't have an "update blocklist" button, so its users have two options. They can either copy blocklists from transmission-gtk's directory to transmission-daemon's directory, or they can download a blocklist by hand, uncompress it, and place it in the daemon's `blocklists` folder. In both cases, the daemon's [[settings.json file|ConfigFiles]] will need to be edited to set "blocklist-enabled" to "true".
Also in both cases, the daemon is unaware of blocklist updates. Only when it starts it creates new .bin files.
There is a third option: add the blocklist URL in settings.json (only one blocklist is allowed), and use transmission-remote to tell the daemon to update it periodically.
settings.json snippet:
```json
"blocklist-enabled": true,
"blocklist-url": "http://www.example.com/blocklist",
```
update by hand example:
```console
$ transmission-remote -n admin:password --blocklist-update
localhost:9091/transmission/rpc/ responded: "success"
```

82
docs/Bug-Submission.md Normal file
View File

@ -0,0 +1,82 @@
# Submitting a Bug Report #
If you're having trouble with Transmission then the things you should do in order are:
1. Make sure you are running the current release
2. Check the [[FAQ|FrequentlyAskedQuestions]].
3. Search this wiki
4. For a bug, ideally we'd like you to check if it still exists in the [nightly build](https://build.transmissionbt.com/).
5. Search the Issue Tracker to see if your concern has already been reported:
* [All open tickets](http://trac.transmissionbt.com/report/2)
* [Search](http://trac.transmissionbt.com/search)
6. If you _don't_ see a ticket matching your problem or feature
* read the section below on **Submitting a Bug Report**
* [add a new ticket](http://trac.transmissionbt.com/newticket).
If you _do_ see an existing ticket, please add a comment there again adding as much information as possible.
The more users interested in a ticket, the higher priority it's given.
## Information Required in a Bug Report ##
* State the version of Transmission you're using (eg Linux/GTK+ 1.80).
If you're using a GUI version of Transmission, you can find its version in the `About' dialog in the Help menu.
**Don't** say _the latest version_ it's ambiguous.
* State what operating system and version (eg Mac OS X 10.5.8, Ubuntu 8.04, ...)
* Describe the symptoms in a short precise manner.
* If the problem is reproducible and you explain how to reproduce it, then it stands a high chance of being addressed.
If the problem is intermittent then we still want to know, but if you can't tell us how to reproduce it we can't easily work on it.
* See if the problem only occurs under certain conditions.
Eg: If you're seeing the bug with 50 torrents running and speed limits turned on, see if it persists with speed limits turned off.
See if it persists with 1 torrent running. See if it persists after pausing and restarting the torrent. etc.
**The more work you do to narrow down the bug, the more chance we have of finding and fixing it.**
## Reporting specific types of problems ##
Additional information or steps are required for certain categories of problem:
### Slow Speeds ###
If you're experiencing slow speeds and you've been through the wiki and [[FAQ|FrequentlyAskedQuestions]] then you need to provide the following information **in addition** to that above:
* Do you have any per-torrent or global speed limits set?
* What are your global and per-torrent peer limits?
* How many seeds and peers does the "Peers" tab say there are in the swarm?
* How long ago does the "Tracker" tab say the last announce and scrape results were?
* In the "Tracker" tab's list of trackers, how many Tiers are there, and how many trackers are listed for each tier?
* How many peers are you connected to?
* Has your torrent finished downloading?
* If you're still downloading, do any of the connected peers have a higher "completed" percentage than you?
* Is your incoming peer port open or closed?
The "Peers" and "Tracker" tabs are in the dialog named "Inspector" on the Mac GUI and "Torrent Properties" on the GTK+ GUI.
### Crash on the Mac ###
If you have problems on the Mac version then please do these extra steps:
* Make sure your system is updated to the latest version of your operating sytem. Note As of 1.60 Transmission requires Mac OS X 10.5 or later.
* If you're running a nightly build, set the language to English. The localizations will sometimes crash the nightly builds until they are updated right before an official release.
* OS X collects two pieces of crash information that can help us fix the crash:
1. In Console.app, look under LOG FILES > ~/Library/Logs/ > CrashReporter > for Transmission. If you find one, include it in your forum post.
2. In Console.app, select LOG DATABASE QUERIES > Console Messages, and search for Transmission. If you find a message that mentions an assertion failure, include it in your forum post.
If these two pieces of information above are too large for your forum post, Paste them [here](http://transmission.pastebin.com/), click the "one month" and "send" buttons, and include the pastebin's URL in your forum post.
### Port Mapping Error ###
Read the [[Port Forwarding Guide|PortForwardingGuide]] first.
You then need to include:
* what router you're using
* that you've confirmed that either UPnP or NAT-PMP is enabled on it
* If you're using a custom firmware, tell us which one
* Most importantly, post the lines from the Message Log that contain the phrase "Port Mapping". They will look something like this:
02:12:27 Port Mapping (NAT-PMP): initnatpmp returned success (0)
02:12:27 Port Mapping (NAT-PMP): sendpublicaddressrequest returned success (2)
02:12:27 Port Mapping: mapping state changed from 'not mapped' to 'mapping'
02:12:27 Port Mapping: opened port 55555 to listen for incoming peer connections
02:12:35 Port Mapping (NAT-PMP): readnatpmpresponseorretry returned error -7, errno is 111 (Connection refused)
02:12:35 Port Mapping (NAT-PMP): If your router supports NAT-PMP, please make sure NAT-PMP is enabled!
02:12:35 Port Mapping (NAT-PMP): NAT-PMP port forwarding unsuccessful, trying UPnP next
02:12:37 Port Mapping (UPNP): Found Internet Gateway Device 'http://192.168.1.1:5431/uuid:0012-17c3-4e400200b4b4/WANIPConnection:1'
02:12:37 Port Mapping (UPNP): Local LAN IP Address is '192.168.1.99'
02:12:37 Port Mapping (UPNP): Port forwarding via 'http://192.168.1.1:5431/uuid:0012-17c3-4e400200b4b4/WANIPConnection:1', service 'urn:schemas-upnp-org:service:WANIPConnection:1'. (local address: 192.168.1.99:55555)
02:12:37 Port Mapping (UPNP): Port forwarding successful!
02:12:37 Port Mapping: mapping state changed from 'mapping' to 'mapped'

View File

@ -0,0 +1,215 @@
If you are searching for a HOWTO, covering a specific distribution or device (NAS, router, ...), have a look at the [[Running Transmission on a headless machine|HeadlessUsage]] page
## Getting the Source ##
#### Recommended ####
Source code for official releases can be found on our [download page](https://transmissionbt.com/download/).
#### Experimental ####
Automated source code tarballs including the newest code [are now available, too!](https://build.transmissionbt.com/job/trunk-linux/)
## On Mac OS X ##
Transmission has an Xcode project file (Transmission.xcodeproj) for building in Xcode. Make sure you have this software:
* OS X 10.10 or newer
* OS X 10.10 SDK
* Xcode 4.4 or newer
Building the project on Mac requires the source to be retrieved from GitHub. Pre-packaged source code will not compile.
If building from source is too daunting for you, check out the [nightly builds](https://build.transmissionbt.com/job/trunk-mac/).
(Note: These are untested snapshots. Use them with care.)
## On Unix ##
### Prerequisites ###
#### Ubuntu ####
On Ubuntu, you can install the required development tools with this command:
```console
$ sudo apt-get install build-essential automake autoconf libtool pkg-config intltool libcurl4-openssl-dev libglib2.0-dev libevent-dev libminiupnpc-dev libgtk-3-dev libappindicator3-dev
```
_After you install those you can skip [to this section](#building-from-a-tarball)._
#### Debian Squeeze ####
Sometimes you have a need to stay current with upstream releases, even though you would like to rely on the stability of your base distribution. Here is how this can be accomplished in "quick and dirty" fashion. Lines started with a # are to be executed as root, lines starting with $ can be run as a regular user.
1. Dependencies
First let us install every dependency Transmission needs and for which there is a usable version in the Debian repository.
```console
# apt-get install ca-certificates libcurl4-openssl-dev libssl-dev pkg-config build-essential checkinstall
```
2. libevent
Traditionally, libevent is also needed, but Transmission depends on version numbers only rarely found in Debian. So let us start by compiling libevent in a directory of your choice. Browse to http://libevent.org/ and get the latest version.
```console
$ cd /var/tmp
$ wget https://github.com/downloads/libevent/libevent/libevent-2.0.18-stable.tar.gz
$ tar xzf libevent-2.0.18-stable.tar.gz
$ cd libevent-2.0.18-stable
$ CFLAGS="-Os -march=native" ./configure && make
```
Now, we would really like to be able to upgrade to a new version in the future, so there should be a mechanism other than the classic "make install" which keeps count of what went where (and ideally this is not a piece of paper). So we build a very simple Debian package from the compiled files and install it. Basically you just enter the following command and hit return until a nice text message tells you that all is done.
```console
# checkinstall
```
3. Transmission
Now we need to prepare Transmission for compilation by configuring the source, the same as with libevent.
```console
$ cd /var/tmp
$ wget http://download-origin.transmissionbt.com/files/transmission-2.51.tar.bz2
$ tar xjf transmission-2.51.tar.bz2
$ cd transmission-2.51
# CFLAGS="-Os -march=native" ./configure && make && checkinstall
```
_Thanks to josen at http://falkhusemann.de/blog/2012/05/compiling-transmission-bittorrent-for-debiand/ for the original Debian Squeeze howto section._
#### CentOS 5.4 ####
The packages you need are:
* gcc
* gcc-c++
* m4
* make
* automake
* libtool
* gettext
* openssl-devel
Or simply run the following command:
```console
$ yum install gcc gcc-c++ m4 make automake libtool gettext openssl-devel
```
However, Transmission needs other packages unavailable in `yum`:
* [pkg-config](http://pkg-config.freedesktop.org/wiki/)
* [libcurl](http://curl.haxx.se/)
* [intltool](http://ftp.gnome.org/pub/gnome/sources/intltool/)
Before building Transmission, you need to set the pkgconfig environment setting:
```console
$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
```
_After you install those you can skip [to this section](#building-from-a-tarball)._
#### Normal ####
If this is your first time compiling on Unix, you'll need a few basic tools:
* gcc
* libtool
* gettext 0.14.1 or newer
* intltool 0.40 or newer
If you're planning to build from source:
* automake 1.9 or newer
* autoconf 2.54 or newer
Once you've got the basics out of the way, here are the libraries that Transmission needs to have in order to build:
* OpenSSL 0.9.8 or newer, preferably ssl or gnutls support.
* libcurl 7.16.3 or newer
* GTK+ 2.6 or newer (only needed by the GTK+ gui)
* libnotify 0.4.4 (optional, and only needed by the GTK+ gui)
* DBUS 0.70 (optional, and only needed by the GTK+ gui)
#### RPM users ####
_You'll also need to install the corresponding `-devel` packages._
### Building from a tarball ###
```console
$ tar xvjf transmission-1.76.tar.bz2
$ cd transmission-1.76
$ ./configure -q && make -s
$ su # if necessary for the next line
$ make install
```
### Building Transmission from Git (first time) ###
```console
$ git clone https://github.com/transmission/transmission Transmission
$ cd Transmission
$ git submodule update --init
$ mkdir build
$ cd build
$ # Use -DCMAKE_BUILD_TYPE=RelWithDebInfo to build optimized binary.
$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
$ make
$ sudo make install
```
### Building Transmission from Git (updating) ###
```console
$ cd Transmission/build
$ make clean
$ git pull --rebase --prune
$ git submodule update
$ # Use -DCMAKE_BUILD_TYPE=RelWithDebInfo to build optimized binary.
$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
$ make
$ sudo make install
```
## On Windows ##
For Windows XP and above there are several choices:
### Cygwin environment ###
With Cygwin http://cygwin.com/ installed, the CLI tools (transmission-remote, transmissioncli, etc.) and the daemon can be built easily.
No patches needed(\*), all the recent versions of Transmission built almost out-of-the-box (you need to install the prerequisites), and the CLI tools work better under Cygwin that those built with MinGW.
(\*) At the release time of version 2.0, **libevent** is not bundled and it's also not in Cygwin distribution (but was added later)... so you need to build it (which is as easy as ./configure, make install). To build transmission you may need to add LDFLAGS="-L/usr/local/lib" to the configure script (LIBEVENT_LIBS doesn't seem to work when it comes to build all the test programs). Additionally **libutp** needs deleting -ansi on the Makefile.
With version 2.51 miniupnpc fails to build, see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t#1130.
Version 2.80 breaks building on Cygwin, adding this https://github.com/adaptivecomputing/torque/blob/master/src/resmom/cygwin/quota.h file to Cygwin's /usr/include/sys solves the problem. This is no longer needed after version 2.82 (Cygwin added the header).
Version 2.81 with the above workaround needs a one line patch, see ticket #5692.
Version 2.82, same as 2.81.
Version 2.83, no need to add quota.h, Cygwin added it.
### Native Windows ###
With a MinGW http://mingw.org/ development environment, the Gtk and the Qt GUI applications can be built. The CLI tools can also be built, and in general work fine, but may fail if you use foreign characters as parameters (MinGW uses latin1 in parameters).
The procedure: wiki:BuildingTransmissionQtWindows
## Switches ##
The transmission `./configure` (or `./autogen.sh`) script allows you to switch on/off certain parts. To use these, you'll either use `--enable-*` or `--disable-*`. eg. To disable the GTK client: `--disable-gtk`.
The switches that are available are:
* **gtk** = enables GTK+ client (default)
* **daemon** = enables transmission-daemon and *-remote client (default)
* **cli** = enables cli client (default. deprecated, consider using the daemon)
* **libnotify** = enables lib notify (default)
* **nls** = enables native language support (default)
* **mac** = enables Mac client (default, if possible)
* **wx** = enables wxWidgets client (unsupported)
* **beos** = enables beos client (unsupported)
Note: _`--disable-nls` removes the dependancy on gettext and intltool. It's designed for, and should only be used on, [HeadlessUsage embedded devices]. If you do have GTK+ installed on your box, you must also specify `--disable-gtk`._

View File

@ -0,0 +1,27 @@
Can I sequence the files I download? This is quite a common question. This entry will try to answer it and offer solutions.
## Why is this "feature" not implemented in Transmission?
Because it makes the overall swarm's health worse.
## But I want to sequence the files I download, how do I do it?
There're two methods basically, one DIY that requires a bit of code changing and the "user friendly" version.
1. DIY code changing approach: Tweak _compareRefillPiece()_ in _libtransmission/peer-mgr.c_
Replace:
```c
/* otherwise go with our random seed */
return tr_compareUint16( a->random, b->random );
```
With:
```c
/* otherwise download the pieces in order */
return tr_compareUint16( a->piece, b->piece );
```
2. "User-friendly" approach: In the file inspector, change the priorities "by hand".

View File

@ -0,0 +1,65 @@
## Locations
### Mac OS X Defaults
<table>
<tr><th>What</th><th>Where</th></tr>
<tr><td>Per-torrent settings</td><td><tt>$HOME/Library/Application Support/Transmission</tt></td></tr>
<tr><td>Application settings</td><td><tt>$HOME/Library/Preferences/org.m0k.transmission.plist</tt></td></tr>
<tr><td>Default download folder</td><td><tt>$HOME/Downloads</tt></td></tr>
</table>
### Linux / GTK Defaults
<table>
<tr><th>What</th><th>Where</th></tr>
<tr><td>GTK+/Qt client settings</td><td><tt>$HOME/.config/transmission</tt></td></tr>
<tr><td>Daemon settings</td><td><tt>$HOME/.config/transmission-daemon</tt></td></tr>
<tr><td>CLI settings</td><td><tt>$HOME/.config/transmission-cli</tt></td></tr>
<tr><td>Default download folder</td><td><tt>$HOME/Downloads</tt></td></tr>
</table>
Some Linux distributions' start script for transmission-daemon use different location. This varies by distribution, but two paths sometimes used are `/var/lib/transmission-daemon` and `/var/run/transmission`.
If you want to swap between the two applications, all you have to do is pass in a different config directory with the -g command-line option. For example, to have the daemon pick up where the gtk+ client left off, run `transmission-daemon -g ~/.config/transmission`.
### Windows Defaults
<table>
<tr><th>What</th><th>Where</th></tr>
<tr><td>Qt client settings</td><td><tt>%LOCALAPPDATA%/transmission</tt></td></tr>
<tr><td>Daemon settings</td><td><tt>%LOCALAPPDATA%/transmission-daemon</tt></td></tr>
<tr><td>Default download folder</td><td><tt>%LOCALAPPDATA%/Downloads</tt></td></tr>
</table>
### Overriding the Defaults
The per-user configuration folder's location can be overridden by setting `TRANSMISSION_HOME` and/or other [[environment variables|Environment-Variables]].
## Files
The configuration folder typically has the following files:
### settings.json
This is a json-encoded file that holds all the client's settings and preferences. It's currently only used by the daemon, GTK+ and CLI clients. json was chosen because it's mostly human-readable and -writable, but also allows data hierarchies to be stored. See the [[Editing Configuration Files|Editing-Configuration-Files]] page on how to modify them.
### stats.json
This is a json-encoded file that holds session statistics such as running upload and download byte counts.
### torrents/
This subfolder holds the .torrent files that have been added to Transmission. The files in this folder are named with a combination of the torrent's name (to make it human-readable) and a portion of the torrent's SHA1 hash (to avoid filename collisions from similarly-named torrents).
### resume/
This subfolder holds .resume files that hold information about a particular torrent, such as which parts have been downloaded, the folder the downloaded data was stored in, and so on. These follow an identical naming scheme to the files in the torrents subfolder.
### blocklists/
This subfolder holds bluetack-formatted blocklists. Files ending in ".bin" are generated by Transmission as it parses a bluetack file and stores it into a binary format for faster lookups. On startup, Transmission will try to parse any non-".bin" file and generate a new blocklist from it, so you can have multiple blocklists just by copying new bluetack files into this location. See [[Blocklists]] for more information.
## Legacy Versions of Transmission
Older, [pre-XDG](http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html) [versions](http://trac.transmissionbt.com/ticket/684) of transmission-gtk and transmission-daemon stored their settings in `$HOME/.transmission`. Newer releases try to automatically migrate these files to `$HOME/.config/transmission/`.

View File

@ -0,0 +1,212 @@
It's not always possible to set all configurations from the GUI, especially on the Daemon or the Web Interface. This guide will try to give an overview of how and what you can change. For the location of these files, look at the [[Configuration Files|ConfigFiles]] page.
Note: The client _should_ be closed before making changes, otherwise settings will be reverted to it's previous state.
Some of Transmission's behavior can also be customized via EnvironmentVariables.
# GTK / Daemon / CLI
### Overview
GTK, CLI and Daemon (both on a Mac and Linux) use a [JSON](http://www.json.org/) formatted file, mainly because of its human readability.
(Consult the [JSON](http://www.json.org/) for detailed information)
### Reload Settings
You can make the daemon reload the settings file by sending it the `SIGHUP` signal.
Or, simply run either of the following commands:
```console
$ killall -HUP transmission-da
```
Or:
```console
$ pkill -HUP transmission-da
```
### Formatting
Here is a sample of the three basic types, respectively Boolean, Number and String:
```json
{
"rpc-enabled": true,
"peer-port" : 51413,
"rpc-whitelist": "127.0.0.1,192.168.*.*"
}
```
### Options
#### Bandwidth
* **alt-speed-enabled:** Boolean (default = false, aka 'Turtle Mode')
_Note: Clicking the "Turtle" in the gui when the [[scheduler|EditConfigFiles#Scheduling]] is enabled, will only temporarily remove the scheduled limit until the next cycle._
* **alt-speed-up:** Number (KB/s, default = 50)
* **alt-speed-down:** Number (KB/s, default = 50)
* **speed-limit-down:** Number (KB/s, default = 100)
* **speed-limit-down-enabled:** Boolean (default = false)
* **speed-limit-up:** Number (KB/s, default = 100)
* **speed-limit-up-enabled:** Boolean (default = false)
* **upload-slots-per-torrent:** Number (default = 14)
#### [[Blocklists]]
* **blocklist-url:** String (default = http://www.example.com/blocklist)
* **blocklist-enabled:** Boolean (default = false)
#### [[Files and Locations|ConfigFiles]]
* **download-dir:** String (default = [[default locations|ConfigFiles#Locations]])
* **incomplete-dir:** String (default = [[default locations|ConfigFiles#Locations]]) Directory to keep files in until torrent is complete.
* **incomplete-dir-enabled:** Boolean (default = false) When enabled, new torrents will download the files to **incomplete-dir**. When complete, the files will be moved to **download-dir**.
* **preallocation:** Number (0 = Off, 1 = Fast, 2 = Full (slower but reduces disk fragmentation), default = 1)
* **rename-partial-files:** Boolean (default = true) Postfix partially downloaded files with ".part".
* **start-added-torrents:** Boolean (default = true) Start torrents as soon as they are added.
* **trash-original-torrent-files:** Boolean (default = false) Delete torrents added from the watch directory.
* **umask:** Number (default = 18) Sets transmission's file mode creation mask. See [the umask(2) manpage](http://developer.apple.com/documentation/Darwin/Reference/ManPages/man2/umask.2.html) for more information. Users who want their saved torrents to be world-writable may want to set this value to 0. Bear in mind that the json markup language only accepts numbers in base 10, so the standard umask(2) octal notation "022" is written in settings.json as 18.
* **watch-dir:** String
* **watch-dir-enabled:** Boolean (default = false) Watch a directory for torrent files and add them to transmission.
_Note: When **watch-dir-enabled** is true, only the transmission-daemon, transmission-gtk, and transmission-qt applications will monitor **watch-dir** for new .torrent files and automatically load them._
#### Misc
* **cache-size-mb:** Size (default = 4), in megabytes, to allocate for Transmission's memory cache. The cache is used to help batch disk IO together, so increasing the cache size can be used to reduce the number of disk reads and writes. Default is 2 if configured with --enable-lightweight.
* **dht-enabled:** Boolean (default = true) Enable [Distributed Hash Table (DHT)](http://wiki.theory.org/BitTorrentSpecification#Distributed_Hash_Table).
* **encryption:** Number (0 = Prefer unencrypted connections, 1 = Prefer encrypted connections, 2 = Require encrypted connections; default = 1) [Encryption](http://wiki.vuze.com/w/Message_Stream_Encryption) preference. Encryption may help get around some ISP filtering, but at the cost of slightly higher CPU use.
* **lazy-bitfield-enabled:** Boolean (default = true) May help get around some ISP filtering. [Vuze specification](http://wiki.vuze.com/w/Commandline_options#Network_Options).
* **lpd-enabled:** Boolean (default = false) Enable [Local Peer Discovery (LPD)](http://en.wikipedia.org/wiki/Local_Peer_Discovery).
* **message-level:** Number (0 = None, 1 = Error, 2 = Info, 3 = Debug, default = 2) Set verbosity of transmission messages.
* **pex-enabled:** Boolean (default = true) Enable [http://en.wikipedia.org/wiki/Peer_exchange Peer Exchange (PEX)].
* **prefetch-enabled:** Boolean (default = true). When enabled, Transmission will hint to the OS which piece data it's about to read from disk in order to satisfy requests from peers. On Linux, this is done by passing `POSIX_FADV_WILLNEED` to [posix_fadvise()](http://www.kernel.org/doc/man-pages/online/pages/man2/posix_fadvise.2.html). On OS X, this is done by passing `F_RDADVISE` to [fcntl()](http://developer.apple.com/library/IOS/#documentation/System/Conceptual/ManPages_iPhoneOS/man2/fcntl.2.html). This defaults to false if configured with --enable-lightweight.
* **scrape-paused-torrents-enabled:** Boolean (default = true)
* **script-torrent-done-enabled:** Boolean (default = false) Run a script at torrent completion.
* **script-torrent-done-filename:** String (default = "") Path to script.
* **utp-enabled:** Boolean (default = true) Enable [Micro Transport Protocol (µTP)](http://en.wikipedia.org/wiki/Micro_Transport_Protocol)
#### Peers
* **bind-address-ipv4:** String (default = "0.0.0.0") Where to listen for peer connections.
* **bind-address-ipv6:** String (default = "::") Where to listen for peer connections.
* **peer-congestion-algorithm:** String. This is documented on http://www.pps.jussieu.fr/~jch/software/bittorrent/tcp-congestion-control.html.
* **peer-id-ttl-hours:** Number (default = 6) Recycle the peer id used for public torrents after N hours of use.
* **peer-limit-global:** Number (default = 240)
* **peer-limit-per-torrent:** Number (default = 60)
* **peer-socket-tos:** String (default = "default") Set the [Type-Of-Service (TOS)](http://en.wikipedia.org/wiki/Type_of_Service) parameter for outgoing TCP packets. Possible values are "default", "lowcost", "throughput", "lowdelay" and "reliability". The value "lowcost" is recommended if you're using a smart router, and shouldn't harm in any case.
#### Peer Port
* **peer-port:** Number (default = 51413)
* **peer-port-random-high:** Number (default = 65535)
* **peer-port-random-low:** Number (default = 1024)
* **peer-port-random-on-start:** Boolean (default = false)
* **port-forwarding-enabled:** Boolean (default = true) Enable [UPnP](http://en.wikipedia.org/wiki/Universal_Plug_and_Play) or [NAT-PMP](http://en.wikipedia.org/wiki/NAT_Port_Mapping_Protocol).
#### Queuing
* **download-queue-enabled:** Boolean (default = true) When true, Transmission will only download `download-queue-size` non-stalled torrents at once.
* **download-queue-size:** Number (default = 5) See download-queue-enabled.
* **queue-stalled-enabled:** Boolean (default = true) When true, torrents that have not shared data for `queue-stalled-minutes` are treated as 'stalled' and are not counted against the `queue-download-size` and `seed-queue-size` limits.
* **queue-stalled-minutes:** Number (default = 30) See queue-stalled-enabled.
* **seed-queue-enabled:** Boolean (default = false) When true. Transmission will only seed `seed-queue-size` non-stalled torrents at once.
* **seed-queue-size:** Number (default = 10) See seed-queue-enabled.
#### [[RPC|rpc]]
* **rpc-authentication-required:** Boolean (default = false)
* **rpc-bind-address:** String (default = "0.0.0.0") Where to listen for RPC connections
* **rpc-enabled:** Boolean (default = true)
* **rpc-host-whitelist:** String (Comma-delimited list of domain names. Wildcards allowed using '\*'. Example: "*.foo.org,example.com", Default: "", Always allowed: "localhost", "localhost.", all the IP addresses. Added in v2.93)
* **rpc-host-whitelist-enabled:** Boolean (default = true. Added in v2.93)
* **rpc-password:** String
* **rpc-port:** Number (default = 9091)
* **rpc-url:** String (default = /transmission/. Added in v2.2)
* **rpc-username:** String
* **rpc-whitelist:** String (Comma-delimited list of IP addresses. Wildcards allowed using '\*'. Example: "127.0.0.\*,192.168.\*.\*", Default: "127.0.0.1")
* **rpc-whitelist-enabled:** Boolean (default = true)
#### Scheduling
* **alt-speed-time-enabled:** Boolean (default = false)
_Note: When enabled, this will toggle the **alt-speed-enabled** setting._
* **alt-speed-time-begin:** Number (default = 540, in minutes from midnight, 9am)
* **alt-speed-time-end:** Number (default = 1020, in minutes from midnight, 5pm)
* **alt-speed-time-day:** Number/bitfield (default = 127, all days)
* Start with 0, then for each day you want the scheduler enabled, add:
* **Sunday**: 1 (binary: `0000001`)
* **Monday**: 2 (binary: `0000010`)
* **Tuesday**: 4 (binary: `0000100`)
* **Wednesday**: 8 (binary: `0001000`)
* **Thursday**: 16 (binary: `0010000`)
* **Friday**: 32 (binary: `0100000`)
* **Saturday**: 64 (binary: `1000000`)
* Examples:
* **Weekdays**: 62 (binary: `0111110`)
* **Weekends**: 65 (binary: `1000001`)
* **All Days**: 127 (binary: `1111111`)
* **idle-seeding-limit:** Number (default = 30) Stop seeding after being idle for _N_ minutes.
* **idle-seeding-limit-enabled:** Boolean (default = false)
* **ratio-limit:** Number (default = 2.0)
* **ratio-limit-enabled:** Boolean (default = false)
### Legacy Options
Only keys that differ from above are listed here. These options have been replaced in newer versions of Transmission.
#### 2.31 (and older)
* **open-file-limit:** Number (default = 32)
#### 1.5x (and older)
##### Bandwidth
* **download-limit:** Number (KB/s, default = 100)
* **download-limit-enabled:** Boolean (default = false)
* **upload-limit:** Number (KB/s, default = 100)
* **upload-limit-enabled:** Boolean (default = false)
##### Peer Port
* **peer-port-random-enabled:** Boolean (default = false)
#### 1.4x (and older)
##### Proxy
* **proxy-authentication** String
* **proxy-authentication-required:** Boolean (default = 0)
* **proxy-port:** Number (default = 80)
* **proxy-server:** String
* **proxy-server-enabled:** Boolean (default = 0)
* **proxy-type:** Number (0 = HTTP, 1 = SOCKS4, 2 = SOCKS5, default = 0)
* **proxy-username:** String
##### Peers
* **max-peers-global:** Number (default = 240)
* **max-peers-per-torrent:** Number (default = 60)
#### 1.3x (and older)
##### [[RPC|rpc]]
* **rpc-access-control-list:** String (Comma-delimited list of IP addresses prefixed with "+" or "-". Wildcards allowed using '\*'. Example: "+127.0.0.\*,-192.168.\*.\*", Default: "+127.0.0.1")
## Mac OS X
### Overview
Mac OS X has a standardized way of saving user preferences files using [XML](http://en.wikipedia.org/wiki/XML) format. These files are called [plist](http://en.wikipedia.org/wiki/Plist) (short for property list) files. Usually there is no need to modify these files directly, since Apple provided a [command-line tool](http://developer.apple.com/DOCUMENTATION/Darwin/Reference/ManPages/man1/defaults.1.html) to reliably change settings. You do need to restart Transmission before these have effect.
In short:
* To set a key: `defaults write org.m0k.transmission <key> <value>`
* To reset a key: `defaults delete org.m0k.transmission <key>`
### Options
* **PeerSocketTOS:** Number (Default = 0)
* **RPCHostWhitelist:** String, see "rpc-host-whitelist" above.
* **RPCUseHostWhitelist:** Boolean, see "rpc-host-whitelist-enabled" above.

View File

@ -0,0 +1,28 @@
Users can set environmental variables to override Transmission's default behavior and for debugging.
## Transmission-Specific Variables
* If `TRANSMISSION_HOME` is set, Transmission will look there for its settings instead of in the [[default location|ConfigFiles#Locations]].
* If `TRANSMISSION_WEB_HOME` is set, Transmission will look there for the [[Web Interface|WebInterface]] files, such as the javascript, html, and graphics files.
* If `TR_CURL_VERBOSE` is set, debugging information for libcurl will be enabled. More information about libcurl's debugging mode [is available here](http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTVERBOSE).
* `TR_DEBUG` (undocumented).
* If `TR_DEBUG_FD` is set to an integer, that integer is treated as a [file descriptor](http://en.wikipedia.org/wiki/File_descriptor) and very verbose debugging information is written to it. For example, here is how to turn on debugging and save it to a file named "runlog" when running Transmission from a bash shell:
```console
$ export TR_DEBUG_FD=2
$ transmission 2>runlog
```
* If `TR_DHT_VERBOSE` is set, then Transmission will log all of the DHT's activities in excrutiating detail to standard error.
## Standard Variables Used By Transmission
* If `TRANSMISSION_WEB_HOME` is _not_ set, non-Mac platforms will look for the [[Web Interface|WebInterface]] files in `XDG_DATA_HOME` and in `XDG_DATA_DIRS` as described in [the XDG Base Directory Specification](http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html#variables). `XDG_DATA_HOME` has a default value of `$HOME/.local/share/`.
* If `TRANSMISSION_HOME` is _not_ set, Unix-based versions of Transmission will look for their settings in `$XDG_CONFIG_HOME/transmission/`. `XDG_CONFIG_HOME` has a default value of `$HOME/.config/`.
* If `HOME` is set, it's used in three ways:
1. by the `XDG` variables, as described above
2. If `TRANSMISSION_HOME` is _not_ set, Mac-based versions of Transmission will look for their settings in `$HOME/Library/Application Support/Transmission`
3. `$HOME/Downloads` is the default download directory.
## Standard Variables Used By Other Tools
* Transmission uses the [libcurl](http://curl.haxx.se/libcurl/) library for http- and https-based tracker announces and scrapes. Transmission doesn't support proxies, but libcurl itself honors [a handful of environment variables](http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTPROXY) to customize _its_ proxy behavior.

View File

@ -0,0 +1,17 @@
## Peer-Id
From version 0.80 onward, Transmission's peer-id is formatted Azureus style with one digit for the major version, two digits for the minor version, and one character to denote a stable release (`0`), nightly build (`Z`), or prerelease beta (`X`). For example:
* `-TR1330-` &mdash; Official 1.33 release
* `-TR133Z-` &mdash; Nightly build between 1.33 and 1.34
* `-TR133X-` &mdash; Beta release of 1.34
Rationale: This differentiates between official and unofficial releases in a way easy for trackers to detect with simple string comparison. An official release (`-TR1330-`) is lexigraphically smaller than its post-release unsupported versions (`-TR133Z-` and `-TR133X-`), which in turn are lexigraphically smaller than the next official release (`-TR1340-`).
Before 0.80, versions of Transmission used two digits for the major version and two for the minor. For example, `-TR0072-` was Transmission 0.72.
## User-Agent
Its User-Agent header follows a similar format, plus the VCS revision in parenthesis:
* Transmission/1.30X (6416) &mdash; Beta release leading up to version 1.30
* Transmission/1.32 (6455) &mdash; Official 1.32 release
* Transmission/1.32+ (6499) &mdash; Nightly build between 1.32 and 1.33

16
docs/Peer-Status-Text.md Normal file
View File

@ -0,0 +1,16 @@
The cryptic 'peer status' is shown in transmission-remote's `--peers` argument and in the Peers tab of the GTK+ Client's Details dialog. It's explained in a tooltip if you have GTK+ 2.12 or higher, and here if you don't:
<table>
<tr><td><tt>O</tt></td><td>Optimistic unchoke</td></tr>
<tr><td><tt>D</tt></td><td>Downloading from this peer</td></tr>
<tr><td><tt>d</tt></td><td>We would download from this peer if they'd let us</td></tr>
<tr><td><tt>U</tt></td><td>Uploading to peer</td></tr>
<tr><td><tt>u</tt></td><td>We would upload to this peer if they'd ask</td></tr>
<tr><td><tt>K</tt></td><td>Peer has unchoked us, but we're not interested</td></tr>
<tr><td><tt>?</tt></td><td>We unchoked this peer, but they're not interested</td></tr>
<tr><td><tt>E</tt></td><td>Encrypted Connection</td></tr>
<tr><td><tt>H</tt></td><td>Peer was discovered through Distributed Hash Table (DHT)</td></tr>
<tr><td><tt>X</tt></td><td>Peer was discovered through Peer Exchange (PEX)</td></tr>
<tr><td><tt>I</tt></td><td>Peer is an incoming connection</td></tr>
<tr><td><tt>T</tt></td><td>Peer is connected via uTP</td></tr>
</table>

24
docs/Previous-Releases.md Normal file
View File

@ -0,0 +1,24 @@
**We strongly recommend that you use the [current version](https://github.com/transmission/transmission/releases/latest) of Transmission unless you have a legacy operating system version shown below.**
If you have a legacy operating system version, this table shows the best Transmission version to use:
* **Mac OS X 10.7 (Lion), 10.8 (Mountain Lion), 10.9 (Mavericks)**
Latest version: [Transmission 2.94](https://github.com/transmission/transmission-releases/raw/master/Transmission-2.94.dmg)
SHA256 hash: [`2cae915ae0e37fc5983406ca7fbd53a054a7153d3bfd7a6cef117a8a28d8a78a`](https://www.virustotal.com/gui/file/2cae915ae0e37fc5983406ca7fbd53a054a7153d3bfd7a6cef117a8a28d8a78a/detection)
* **Mac OS X 10.6 Intel (Snow Leopard)**
Latest version: [Transmission 2.84](https://github.com/transmission/transmission-releases/raw/master/Transmission-2.84.dmg)
SHA256 hash: [`53d08a55a5ca55010d409acb10f0285a649b8879085cad83f2cbcb7faa489ad5`](https://www.virustotal.com/en/file/53d08a55a5ca55010d409acb10f0285a649b8879085cad83f2cbcb7faa489ad5/analysis/)
* **Mac OS X 10.5 Intel (Leopard)**
Latest version: [Transmission 2.42](https://github.com/transmission/transmission-releases/raw/master/Transmission-2.42.dmg)
SHA256 hash: [`27f6856dc40137425f3df9b820226d9877043abc7da03b370bec57dd0e316141`](https://www.virustotal.com/en/file/27f6856dc40137425f3df9b820226d9877043abc7da03b370bec57dd0e316141/analysis/)
* **Mac OS X 10.5 PPC (Leopard)**
Latest version: [Transmission 2.22](https://github.com/transmission/transmission-releases/raw/master/Transmission-2.22.dmg)
SHA256 hash: [`33fe8600055fab480ddd62cb9f721a142d22379fac698b9a57f3fdb240b22c3a`](https://www.virustotal.com/en/file/33fe8600055fab480ddd62cb9f721a142d22379fac698b9a57f3fdb240b22c3a/analysis/)
* **Mac OS X 10.4.11 (Tiger)** (with [Security Update 2008-002](https://support.apple.com/kb/HT1249))
Latest version: [Transmission 1.54](https://github.com/transmission/transmission-releases/raw/master/Transmission-1.54.dmg)
SHA256 hash: [`4bedfd776a300feb9713c14348bdea85a98d68da6ab3671d61e0f27214df6ba6`](https://www.virustotal.com/en/file/4bedfd776a300feb9713c14348bdea85a98d68da6ab3671d61e0f27214df6ba6/analysis/)
* **Mac OS X 10.3 (Panther)**
Latest version: [Transmission 0.6.1](https://github.com/transmission/transmission-releases/raw/master/Transmission-0.6.1.dmg)
SHA256 hash: [`1bc2cbdfb3df814e8e4b8e2f74b3063eca55a5b0fb08f6dc6e567dfb449398b8`](https://www.virustotal.com/en/file/1bc2cbdfb3df814e8e4b8e2f74b3063eca55a5b0fb08f6dc6e567dfb449398b8/analysis/)
A complete collection of earlier releases can be found [here](https://github.com/transmission/transmission-releases).

50
docs/README.md Normal file
View File

@ -0,0 +1,50 @@
# 1. General Help #
New to Transmission?
* Try the Help in Transmission's "Help" menu.
* simplehelp.net has an introduction for [Transmission on Macs](http://www.simplehelp.net/2008/07/17/how-to-use-transmission-as-your-bittorrent-client-os-x/).
* Jun Azua has an introduction for [Transmission GUI on Linux](http://www.junauza.com/2009/01/how-to-use-bittorrent-in-linux.html).
* Running Transmission [[without a GUI|HeadlessUsage]]
* Using Transmission [[from a web browser|Web Interface]]
* Also see our [[Frequently Asked Questions|FrequentlyAskedQuestions]].
Want to learn more?
* Visit our [forums](https://forum.transmissionbt.com)
* Visit our [IRC](https://en.wikipedia.org/wiki/IRC) channel: [#transmission on Libera](http://irc.libera.chat/transmission)
* Follow us on [twitter](https://twitter.com/transmissionbt)
# 2. More Documentation #
* [[Configuration Files|Configuration Files]]
* [[Editing Configuration Files|Editing Configuration Files]]
* [[Environment Variables|Environment Variables]]
* [[Extending Transmission using Scripts|Scripts]]
* [[Blocklists]]
* [[How to build Transmission|Building Transmission]]
* [[RPC Protocol Specification|RPC Protocol Specification]]
* [[Transmisson's Peer ID and User-Agent headers|Peer ID and User Agent]]
* [[Peer Status Text explained|Peer Status Text]]
# 3. Report a problem / request a feature #
* If you're having trouble with Transmission, check the Troubleshooting section of our [[Frequently Asked Questions|FrequentlyAskedQuestions]].
* Check whether the problem has already been reported:
* [All open issues](https://github.com/transmission/transmission/issues)
* [Search](https://github.com/transmission/transmission/issues)
* If you don't see a ticket matching your problem or feature, read [this post](https://forum.transmissionbt.com/viewtopic.php?f=1&t=3274) about what to write, then [add a new ticket](https://github.com/transmission/transmission/issues/new).
* If you _do_ see an existing ticket, please add a comment there. The more users interested in a ticket, the higher priority it's given.
# 4. For Contributors #
Transmission is a volunteer project and welcomes help.
Please contact us if you are interested in supporting Transmission in any of the following ways:
* Code contribution
* Testing
* [[Language Translations|Translating]]
* Bug and request management
* Documentation and Wiki Editing
* [Donations](https://transmissionbt.com/donate/)
* If you want to alert us to a security vulnerability, please email security@transmissionbt.com. Please note that general support questions belong on the forum, and will be ignored if sent to this email.

View File

@ -0,0 +1,30 @@
This document explains how to remotely, or locally, connect to a Transmission session programatically using the rpc protocol.
_If you're looking to control a Transmission session non-programatically, you can either use the transmission-remote cli, or the [[Web Interface|Web Interface]]._
## Current
The current and in progress Specification can be found here: [rpc-spec.md](rpc-spec.md).
## Previous
* [Version 2.9x](/transmission/transmission/blob/2.9x/extras/rpc-spec.txt)
* [Version 2.8x](/transmission/transmission/blob/2.8x/extras/rpc-spec.txt)
* [Version 2.7x](/transmission/transmission/blob/2.7x/extras/rpc-spec.txt)
* [Version 2.4x](/transmission/transmission/blob/2.4x/extras/rpc-spec.txt)
* [Version 2.2x](/transmission/transmission/blob/2.2x/extras/rpc-spec.txt)
* [Version 2.1x](/transmission/transmission/blob/2.1x/extras/rpc-spec.txt)
* [Version 2.0x](/transmission/transmission/blob/2.0x/doc/rpc-spec.txt)
* [Version 1.9x](/transmission/transmission/blob/1.9x/doc/rpc-spec.txt)
* [Version 1.8x](/transmission/transmission/blob/1.8x/doc/rpc-spec.txt)
* [Version 1.7x](/transmission/transmission/blob/1.7x/doc/rpc-spec.txt)
* [Version 1.6x](/transmission/transmission/blob/1.6x/doc/rpc-spec.txt)
* [Version 1.5x](/transmission/transmission/blob/1.5x/doc/rpc-spec.txt)
* [Version 1.4x](/transmission/transmission/blob/1.4x/doc/rpc-spec.txt)
* [Version 1.3x](/transmission/transmission/blob/1.3x/doc/rpc-spec.txt)
## Deprecated
Versions before 1.30 used to connect to a Transmission session by writing directly into a socket file. Many not-so-up to date articles on setting up Transmission with a Web Interface (Clutch) may still refer to this technique.
* [Version 1.2x](/transmission/transmission/blob/1.2x/doc/ipcproto.txt)
* [Version 1.1x](/transmission/transmission/blob/1.1x/doc/ipcproto.txt)
* [Version 1.0x](/transmission/transmission/blob/1.0x/doc/ipcproto.txt)
* [Version 0.9x](/transmission/transmission/blob/0.9x/doc/ipcproto.txt)
* [Version 0.8x](/transmission/transmission/blob/0.8x/misc/ipcproto.txt)

1910
docs/Release-Notes.md Normal file

File diff suppressed because it is too large Load Diff

15
docs/Translating.md Normal file
View File

@ -0,0 +1,15 @@
Thank you for taking part in translating Transmission!
As with any other project, we expect you to be familiar with particular Transmission client you are about to localize, and localization practices and guidelines related to specific UI toolkit (GTK+, Qt) and/or operating system (*NIX, Mac, Windows), let alone the terminology used by your audience / our users. We expect some level of commitment in that you not just blindly translate the phrases but also hopefully check your work by running the particular program to see if phrasing matches the context and layout isn't broken as a result of your changes.
General rule is that new localizations are only included in next release if they are at least 95% complete. Transifex (see below) offers a review functionality, so if you feel like it and are not afraid of responsibility — don't hesitate to ask and we could then have a different deal based on reviewed percentage instead (nothing is set in stone as of now).
## Qt and GTK+ Clients
Translations for Qt and GTK+ clients are managed on Transifex. To help localize, or add your new localization, you'll need to [register on Transifex and join the translation team](https://docs.transifex.com/getting-started/translators) for [Transmission project](https://www.transifex.com/transmissionbt/transmissionbt).
_GTK+ client translations were previously managed on [Launchpad](https://translations.launchpad.net/transmission/trunk/+pots/transmission), but this is no longer the case. No phrases will be updated there, and none of your translations made there will be integrated back into Transmission._
## Mac Client
Parts of Mac client translations have been recently uploaded to Transifex as well. We are still in the process of making all of the translations accessible there, including plural forms support and phrases currently only present in .xib files. It will all be there prior to next major release, so stay tuned. You could start localizing now (follow the same steps as above), but be prepared for some inconveniences along the way.

View File

@ -0,0 +1,27 @@
Transmission is fundamentally a Bit Torrent client and communicates with other Bit Torrent peers.
In addition to this Transmission supports network-based remote control, whereby an authorised user may control the Transmission core from another machine via the [[Transmission JSON RPC protocol|rpc]].
To make remote control easier from an arbitrary machine, Transmission Core can also serve a javascript web application to any browser and which in turn makes JSON RPC calls back to the Transmission core.
The Core components and methods of control are shown below:
![Architecture](https://transmission.github.io/wiki-images/Transmission_Architecture.gif)
From the above diagram it can be seen that a Transmission Core may be controlled by the following:
* _Local_ directly linked GUI (OS X, GTK+)
* _Local_ or _Remote_ Qt GUI
* _Local_ or _Remote_ Command Line Utility
* _Local_ or _Remote_ Transmission Web Application running in a web browser
The multiple methods of controlling Transmission and the various native GUIs available result in several different Transmission products as shown in the figure below:
![Products](https://transmission.github.io/wiki-images/Transmission_Products.gif)
The products are:
* Transmission Desktop - OS X
* Transmission Desktop - Linux/GTK+
* Transmission Desktop - Un*x/Qt
* Transmission Daemon (headless)
* Transmission Command Line
The Transmission packages available on various distributions may include one or more of these components.
Note. Although the diagram shows "Transmission Desktop Qt" as being Qt GUI + Transmission Core, the Qt component may be packaged on its own as a purely remote tool.

View File

@ -0,0 +1,45 @@
Transmission keeps working information on each torrent in a "resume" file. This file is stored in the 'resume' directory.
Filename: `<torrent file name>.<hash?>.resume`
The file contains the following **per-torrent** properties:
<table>
<tr><th>Property</th><th>Description</th></tr>
<tr><td><tt>activity-date</tt></td><td>Date we last uploaded/downloaded a piece of data</td></tr>
<tr><td><tt>added-date</tt></td><td>Date torrent was added</td></tr>
<tr><td><tt>corrupt</tt></td><td>total number of corrupt bytes downloaded</td></tr>
<tr><td><tt>done-date</tt></td><td>Date torrent finished downloading</td></tr>
<tr><td><tt>destination</tt></td><td>Download directory</td></tr>
<tr><td><tt>dnd</tt></td><td>Do not download file integer list (one item per file in torrent) 0=download, 1=dnd</td></tr>
<tr><td><tt>downloaded</tt></td><td>Total non-corrupt bytes downloaded</td></tr>
<tr><td><tt>incomplete-dir</tt></td><td>Location of incomplete torrent files</td></tr>
<tr><td><tt>max-peers</tt></td><td>Maximum number of connected peers</td></tr>
<tr><td><tt>paused</tt></td><td>true if torrent is paused</td></tr>
<tr><td><tt>peers2</tt></td><td>IPv4 peers</td></tr>
<tr><td><tt>peers2-6</tt></td><td>IPv6 peers</td></tr>
<tr><td><tt>priority</tt></td><td>list of file download priorities (one item per file in torrent),<br/>each value is -1 (low), 0 (std), +1 (high)</td></tr>
<tr><td><tt>bandwidth-priority</tt></td><td></td></tr>
<tr><td><tt>progress</tt></td><td></td></tr>
<tr><td><tt>speed-limit</tt></td><td></td></tr>
<tr><td><tt>speed-limit-up</tt></td><td>Torrent upload speed limit</td></tr>
<tr><td><tt>speed-limit-down</tt></td><td>Torrent download speed limit</td></tr>
<tr><td><tt>ratio-limit</tt></td><td>Torrent file limit</td></tr>
<tr><td><tt>uploaded</tt></td><td></td></tr>
<tr><td><tt>speed</tt></td><td></td></tr>
<tr><td><tt>use-global-speed-limit</tt></td><td></td></tr>
<tr><td><tt>use-speed-limit</tt></td><td></td></tr>
<tr><td><tt>down-speed</tt></td><td></td></tr>
<tr><td><tt>down-mode</tt></td><td></td></tr>
<tr><td><tt>up-speed</tt></td><td></td></tr>
<tr><td><tt>up-mode</tt></td><td></td></tr>
<tr><td><tt>ratio-mode</tt></td><td></td></tr>
<tr><td><tt>mtimes</tt></td><td></td></tr>
<tr><td><tt>bitfield</tt></td><td></td></tr>
</table>
## Constants
<table>
<tr><td>Maximum number of remembered peers</td><td><tt>MAX_REMEMBERED_PEERS</tt></td><td>200</td></tr>
</table>

View File

@ -0,0 +1,11 @@
## Summary ##
BitTorrent content is grouped into pieces that are typically somewhere between 64 KiB and 1 MiB in size. The .torrent file comes with a checksum for each piece, and every byte in that piece needs to be downloaded before the checksum can be compared for correctness.
So the problem arises when a piece overlaps two (or more) files, one of which you've flagged for download and the other you've flagged to ''not'' download. In order to run verify the checksum for the file you want, Transmission has to download the fragment of the other file where the piece overlaps.
This is what causes chunks of unwanted files to show up sometimes. Transmission only downloads the chunks needed to complete the piece and run the checksum tests.
## Future ##
There is a [http://trac.transmissionbt.com/ticket/532 trac ticket] for this to collect all the unwanted fragments into a single file to avoid clutter.

10
docs/Web-Interface.md Normal file
View File

@ -0,0 +1,10 @@
A Web Interface is built into all Transmission flavours, enabling them to be controlled remotely.
## Enabling the Web Interface ##
Refer to the **Remote Management** links in the [[User Documentation|User-Documentation]] for your client to find out how to enable the Web Interface.
## Accessing the Web Interface ##
Once enabled, open a web browser and direct it to http://ip_address_of_machine_running_transmission:9091/
If web browser and Transmission Daemon are on the machine you can use http\://127.0.0.1:9091/
9091 is the default remote control port specified in [[Transmission configuration|Editing-Configuration-Files]].

View File

@ -0,0 +1,61 @@
This checklist helps to diagnose the most common reasons for bad speeds &mdash; or no speed at all &mdash; and tells where to find more help if the checklist doesn't find the problem.
Please go through the _entire checklist_ before asking for more help! Otherwise the forum helpers will likely just point you back here. ;)
## 1. Is it your network?
If you're not sure whether the problem is a specific torrent or your network, it's easy to get a point of reference &mdash; add a fast torrent for benchmarking. Many users visit [the Ubuntu torrent page](http://torrent.ubuntu.com:6969/), scan down the page for the line with the most seeders and downloaders, and join the swarm for a few minutes to see what speeds they'll reach.
More generally, you can also measure your bandwidth at [speedtest.net](http://www.speedtest.net/). However, this is not as good a Bittorrent benchmark as the previous approach.
## 2. Is your tracker responding?
Trackers are the primary source of finding other peers. When your tracker goes down, finding peers to share with is slower.
Look at the Tracker tab of the torrent dialog and see what it says about the last announce. Did the tracker respond "OK" or was there an error message?
## 3. Are there too many (or not enough) seeders?
In the inspector's tracker tab, you'll see how many seeders and downloaders each tracker knows of.
If you're seeding and so are most of the other participants, your speeds will be slow because all the seeds are competing for the downloaders' limited bandwidth.
If you're downloading, things are a little better because you can download from everyone, not just seeds. But even so, it will still be slow if there aren't enough seeds in the swarm. All the downloaders will get stuck at the same completeness percentage as each other as they wait for more data to trickle down from the seeds. In practice this often looks like near-zero download speeds punctuated by bursts of fast downloading.
## 4. Is it your speed limits?
This falls into the are-you-sure-it-is-plugged-in category, but don't be embarassed: lots of people have been bitten by this. Note: remember that there are both per-torrent and overall speed limits. :)
## 5. Is it a small swarm?
Even if you're the only downloader and there are four or five seeds ready to send you information, things can still be slow sometimes. Often what happens is the seeds' upload bandwidth is being shared between you and other peers in another torrent.
## 6. Are you uploading too fast?
If you try to upload to the limit of your connection bandwidth you may block your own downloads (which also use a little bit of upload bandwidth). It's best to limit uploads to no more than around 80% of nominal upload bandwidth. Remember many network connections are asymmetric &mdash; which in practice means that upload speeds may only be a fraction of download speeds. If your upload bandwidth is say 25KBytes/sec then a good value for torrent upload limits might be 20KBytes/sec.
## 7. Is it your ISP?
If your ISP is one of those that manipulates Bittorrent packets &mdash; and even if it isn't &mdash; it's often a good idea to enable the [[Blocklist]] and also to tell Transmission to "Ignore Unencrypted Peers" to give your sessions slightly better privacy.
Update: Google now has [a free online tool](http://broadband.mpi-sws.org/transparency/bttest.php) to test what your ISP is doing. Follow that link and go down to the "Start testing" button.
## 8. Is it an old version of Transmission?
Work is constantly being done to improve performance and behavior. If you're using an old version, consider upgrading.
## 9. Is it your router or firewall making your "port closed"?
Connecting to a peer is like telephone calls: either you call up the peer, or the peer calls you. When Transmission says your "Port is Closed" it's like having a phone that doesn't allow incoming calls: you can still call peers, but they can't call you.
Many people don't want to mess with their firewall and/or router, so they decide that dialing out is good enough and leave their port closed. Other people panic and worry too much about getting their port open even if they have a troublesome router. The truth is in the middle &mdash; you _can_ get by with a closed port, but on average you'll get much faster speeds if peers can connect to you.
Opening a closed port is often the most frustrating task in Bittorrent. The good news is that the Transmission wiki has two pages dedicated to this topic: the [[Port Forwarding Guide|PortForwardingGuide]] and the [[Why is my port closed|PortClosed]] page.
You can also test your port status at [canyouseeme.org](http://www.canyouseeme.org/).
## 10. Is it a Transmission Bug?
If you've looked at all the reasons above and none of them fit &mdash; Ubuntu downloaded quickly, and you've got the latest version of Transmission, and there are plenty of seeds _and_ downloaders in your torrent, yet things are _still_ slow &mdash; then maybe you've found a Transmission bug. Go [read this post](http://forum.transmissionbt.com/viewtopic.php?f=1&t=3274) about what information the developers need to diagnose the problem, and then post a message describing your situation.
Make sure to give enough information! Vague bug reports waste everyone's time and will probably just get you referred back to this page. :)

View File

@ -0,0 +1,48 @@
Transmission needs an open port to communicate. You can open one manually or let transmission try to aquire one using NAT PMP or UPnP. If both automatic port mapping and manual forwarding failed
## Open ports & forwarding
For guide on how to open and forward your Transmission port, read the [[Port Forwarding|PortForwardingGuide]] guide.
## Possible Problems
If you get the Message 'Port is closed'/'Port is Stealth' in the 'Ports' section of Transmission's preferences.
### Port check website is down
Transmission needs an external site to check wether the port is open. However, if that site is down, Transmission has no way to check wether the port is open or not. If you suspect this is the case, go to [CanYouSeeMe.org](http://www.canyouseeme.org/).
### UPnP / NAT-PMP
For UPnP/NAT-PMP compatible routers, make sure:
* UPnP/NAT-PMP is enabled. Consult your router's documentation for instructions. If your router doesn't support UPnP/NAT-PMP, you will have to forward manually.
* DMZ mode is disabled.
* The port has not already been forwarded manually.
* The port is not taken by another application
* The port has been released properly by Transmission. In some rare situations Transmission won't be able to release the port so it can't be aquired by Transmission afterwards.
Note: NAT-PMP is only for Apple Airport routers.
### Double NAT
Another possible reason your port remains closed could be because your router is not the only device on the network which needs to be configured.
For example, your network might resemble the following: ADSL modem/router &rarr; Netgear Router &rarr; Laptop.
If you have multiple routers in your home network (such as in the example above), you have two options. The easiest way is to turn one of the routers into 'Bridge mode' which means you then only have to configure one device rather than all of them. So, in our above example, we would set the Netgear router to 'Bridge'. See your router's help documentation for instructions.
The second way is to map Transmission's port on all of the devices on your network. Transmission can only automatically port map the router the computer is directly connected to. Any others in between this router and your modem will have to be forwarded manually. For detailed instructions, visit [portforward.com](http://www.portforward.com/help/doublerouterportforwarding.htm).
Finally make sure your firewall is either disabled, or you have allowed Transmission's port. The firewall can cause the port to remain closed, even if it has been successfully mapped by the router(s).
### ISP Blocking Port
Though initially this was done to "combat viruses and spam", it is sometimes used to keep out "bandwidth hogs". Normally the default (51413) port is fine. However, it might be that an ISP does decide to block that port. In such a case it is recommended to pick a random number between 49152 and 65535. If you can't find a port that's open (check with [CanYouSeeMe.org](http://www.canyouseeme.org/)), you have a different issue.
### LAN ISP
eg. Universities, Wifi hotspots, RV parks and some 'true' ISPs (common in Rome, Italy).
Though these ISPs are often very interesting, offering high speeds, unlimited bandwidth (sometimes) and low prizes. This because they don't buy IP adresses for their clients and provide the (local) network themselves.
Basically the only thing you can do, is to ''politely'' ask for them to open (forward) a port for you.