Torrents

torrent notes

  • use magnet links that reference public tracker dht hashes
  • crawl dht or peer exchange for discovery
  • supports private torrents
  • invented by Bram Cohen
  • used for linux isos, game updates, etc
  • bencoded for .torrent file format
  • v2 standard
    • file hashes for cross swarm seeding are sha256 (32 bytes) instead of sha1 (20 bytes)
    • urn:btmh is v2 magent uri
      • urn:btih is v1
  • clients
    • transmission
      • single threaded io
      • set env var TR_CURL_SSL_NO_VERIFY=1 to disable invalid SSL cert checking
  • magent link can have ws for webseed
    • needs xs linked torrent or non ws peer for metadata
  • min request size 16 KiB

transmission notes

  • settings.json set "start-added-torrents": false, to start torrents paused

deluge notes

  • webui is 8112 by default with pass of deluge
  • supports BEP55 for hole punching with utp(w/udp)
  • install config plugin https://github.com/ratanakvlun/deluge-ltconfig/releases
    • set performance default profile
    • set "validate_https_trackers": false
    • set "use_write_cache": false for ssd
    • peerturnover to 0
    • max concurrent http announces to 15
    • coalesce reads/writes
    • checking mem usage to 2048
    • announce to all trackers
    • lower connections to 50 so NAT tables do not get overwhelmed
  • ltconfig (replace IP and PORT and connectionspeed)
{
    "file": 1,
    "format": 1
}{
    "apply_on_start": true,
    "settings": {
        "active_limit": 9001,
        "active_seeds": 9001,
        "active_tracker_limit": 9001,
        "aio_threads": 8,
        "allow_multiple_connections_per_ip": true,
        "announce_to_all_tiers": false,
        "announce_to_all_trackers": false,
        "ban_web_seeds": false,
        "broadcast_lsd": false,
        "cache_expiry": 30,
        "cache_size": 65536,
        "checking_mem_usage": 2048,
        "coalesce_reads": true,
        "coalesce_writes": true,
        "connection_speed": 500,
        "connections_limit": 8000,
        "listen_interfaces": "IP:PORT",
        "mixed_mode_algorithm": 1,
        "outgoing_interfaces": "IP",
        "outgoing_port": 0,
        "tracker_backoff": 22,
        "tracker_completion_timeout": 60,
        "unchoke_slots_limit": 2000,
        "validate_https_trackers": true
    }
}