Radiance

High-Performance BitTorrent Tracker written in C++

60
23
C++

Radiance

Radiance is a BitTorrent tracker written in C++ for the Luminance project. It supports requests over TCP and can track both IPv4 and IPv6 peers in a dual-stack mixed swarm.

Radiance Compile-time Dependencies

  • GCC/G++ (4.7+ required; 4.8.1+ recommended)
  • LLVM/clang++ (3.3+ required; 3.4+ recommended) (alternative to GCC/G++)
  • Boost (1.55.0+ required)
  • libev (required)
  • MySQL++ (3.2.0+ required)
  • jemalloc (optional, but highly recommended - preferred over tcmalloc)
  • TCMalloc (optional)

Also required for debug builds:

Standalone Installation

  • Create the following tables (see install/radiance.sql):
  • options
  • torrents
  • users
  • users_main
  • users_slots
  • users_freeleeches
  • xbt_client_blacklist
  • xbt_files_users
  • xbt_peers_history
  • xbt_snatched
  • Edit radiance.conf to your liking.

  • Build Radiance:

autoreconf -i
./configure
make
sudo make install
  • On FreeBSD:
pkg update
pkg install autoconf automake autotools boost-libs clang35 gcc8 git gmake libev llvm35 mysql++-mysql56 google-perftools
git clone https://github.com/Empornium/Radiance.git
cd Radiance/ && autoreconf -i && ./configure --with-tcmalloc && make && make install

Configure options:

--with-jemalloc is recommended

--with-tcmalloc is a good alternative to jemalloc

--enable-debug can help to find the source of crashes

Obs: Configure flags --with-jemalloc and --enable-debug doesn’t work on FreeBSD, --with-jemalloc work’s since you have google-perftools installed.

Running Radiance

Run-time options:

  • -c <path/to/radiance.conf> - Path to config file. If unspecified, the current working directory is used.
  • -d - Fork to the background and run as a service daemon.
  • -v - Print version string and exit.

Signals

  • SIGHUP - Reload config
  • SIGUSR1 - Reload torrent list, user list and client blacklist