mirror of
https://github.com/YGGverse/aquatic.git
synced 2026-04-01 02:05:30 +00:00
45 lines
1.6 KiB
Markdown
45 lines
1.6 KiB
Markdown
# aquatic
|
||
|
||
Fast, multi-threaded UDP BitTorrent tracker written in Rust.
|
||
|
||
Aims to implements the [UDP BitTorrent protocol](https://libtorrent.org/udp_tracker_protocol.html), except that it:
|
||
|
||
* Doesn't care about IP addresses sent in announce requests. The packet
|
||
source IP is always used.
|
||
* Doesn't track of the number of torrent downloads (0 is always sent).
|
||
|
||
Supports IPv4 and IPv6.
|
||
|
||
There is currently no support for a info hash black- or whilelist.
|
||
|
||
## Benchmarks
|
||
|
||
Performance was compared to [opentracker](http://erdgeist.org/arts/software/opentracker/) using `aquatic_load_test`.
|
||
|
||
Server responses per second, best result in bold:
|
||
|
||
| workers | aquatic | opentracker |
|
||
| ------- | ----------- | ----------- |
|
||
| 1 | n/a | __177k__ |
|
||
| 2 | __168k__ | 98k |
|
||
| 3 | __187k__ | 118k |
|
||
| 4 | __216k__ | 127k |
|
||
| 6 | __309k__ | 109k |
|
||
| 8 | __408k__ | 96k |
|
||
|
||
### Details
|
||
|
||
- System: Hetzner CCX41 VPS (16 dedicated vCPUs, Skylake)
|
||
- OS: Debian 10, kernel 4.19.0-8-amd64
|
||
- aquatic commit: 61841fff
|
||
- opentracker also has a single threaded event mode. It didn't perform as well (143k responses/second) as blocking single-threaded mode.
|
||
|
||
Default settings were used, except that:
|
||
- load test duration = 120 seconds
|
||
- load test multiple_client_ips = true
|
||
- load test worker settings were tuned for best results for each trackers
|
||
- aquatic request_workers was always = 1, only socket_workers setting was raised. Number in table corresponds to sum of both values
|
||
|
||
## Trivia
|
||
|
||
The tracker is called aquatic because it thrives under a torrent of bits ;-)
|