this is the client identification to the tracker. The recommendedformat of this string is: "client-name/client-versionlibtorrent/libtorrent-version". This name will not only be used whenmaking HTTP requests, but also when sending extended headers topeers that support that extension. It may not contain r or n
close_redundant_connections specifies whether libtorrent shouldclose connections where both ends have no utility in keeping theconnection open. For instance if both ends have completed theirdownloads, there's no point in keeping it open.
incoming_starts_queued_torrents. If a torrenthas been paused by the auto managed feature in libtorrent, i.e. thetorrent is paused and auto managed, this feature affects whether ornot it is automatically started on an incoming connection. The mainreason to queue torrents, is not to make them unavailable, but tosave on the overhead of announcing to the trackers, the DHT and toavoid spreading one's unchoke slots too thin. If a peer managed tofind us, even though we're no in the torrent anymore, this settingcan make us start the torrent and serve it.
strict_end_game_mode controls when ablock may be requested twice. If this is true, a block may onlybe requested twice when there's at least one request to every piecethat's left to download in the torrent. This may slow down progresson some pieces sometimes, but it may also avoid downloading a lotof redundant bytes. If this is false, libtorrent attempts touse each peer connection to its max, by always requestingsomething, even if it means requesting something that has beenrequested from another peer already.
Enables incoming and outgoing, TCP and uTP peer connections.false is disabled and true is enabled. When outgoingconnections are disabled, libtorrent will simply not makeoutgoing peer connections with the specific transport protocol.Disabled incoming peer connections will simply be rejected.These options only apply to peer connections, not tracker- or anyother kinds of connections.
udp_tracker_token_expiry is the number of seconds libtorrentwill keep UDP tracker connection tokens around for. This isspecified to be 60 seconds. The higher thisvalue is, the fewer packets have to be sent to the UDP tracker. Inorder for higher values to work, the tracker needs to be configuredto match the expiration time for tokens.
num_optimistic_unchoke_slots is the number of optimisticunchoke slots to use.Having a higher number of optimistic unchoke slots mean you willfind the good peers faster but with the trade-off to use up morebandwidth. 0 means automatic, where libtorrent opens up 20% of yourallowed upload slots as optimistic unchoke slots.
this setting controls the priority of downloading torrents overseeding or finished torrents when it comes to making peerconnections. Peer connections are throttled by the connection_speedand the half-open connection limit. This makes peer connections alimited resource. Torrents that still have pieces to download areprioritized by default, to avoid having many seeding torrents usemost of the connection attempts and only give one peer every nowand then to the downloading torrent. libtorrent will loop over thedownloading torrents to connect a peer each, and every n:thconnection attempt, a finished torrent is picked to be allowed toconnect to a peer. This setting controls n.
The maximum request range of an url seed in bytes. This valuedefines the largest possible sequential web seed request. Lower valuesare possible but will be ignored if they are lower then piece size.This value should be related to your download speed to preventlibtorrent from creating too many expensive http requests persecond. You can select a value as high as you want but keep in mindthat libtorrent can't create parallel requests if the first requestdid already select the whole file.If you combine bittorrent seeds with web seeds and pick strategieslike rarest first you may find your web seed requests split intosmaller parts because we don't download already picked piecestwice.
WebTorrent support in libtorrent opens the door for many more torrent clients to connect to browser peers. Browser peers (which must use WebRTC) will now be able to access a huge trove of torrents currently only available to TCP/UDP peers.
Is helpful if you need to have all the required stack locally on your OS.You need to specify CROSS_TRIPLE - you can find possible values here.Everything is installed in libtorrent-go/local-env/ directory.
Other build options are:
BUILD_SHARED_LIBSDefaults ON. Builds libtorrent as a shared library.
static_runtimeDefaults OFF. Link libtorrent statically against the runtime libraries.
build_testsDefaults OFF. Also build the libtorrent tests.
build_examplesDefaults OFF. Also build the examples in the examples directory.
build_toolsDefaults OFF. Also build the tools in the tools directory.
python-bindingsDefaults OFF. Also build the python bindings in bindings/python directory.
encryptionDefaults ON. Support trackers and bittorrent over TLS, and obfuscated bittorrent connections.
Options are set on the cmake command line with the -D option or later on using ccmake or cmake-gui applications. cmake run outputs a summary of all available options and their current values.