Trunker
A Tracker which will "chuang" you

Introduction
A high-performance BitTorrent Tracker implemented in Go. Using Hertz from cloudwego, with observability.
For benchmark, please refer to the Benchmark section.
Official Instance
HTTPS https://tracker.ghostchu-services.top/announce
WebSocket (for WebTorrent Protocol) wss://tracker.ghostchu-services.top/announce
UDP udp://utracker.ghostchu-services.top:6969
How to run
make install_tool
make update_idl
./build.sh
cd output
./bootstrap.sh
or
docker run -d --name trunker -e ADMIN_KEY=aabbcc --cap-add=NET_ADMIN --network=host -p 8888:8888 gaojianli2333/trunker:latest
Features
- BEP-0003
- BEP-0007 (IPv6 Tracker Extension)
- BEP-0023 (Compact Peer Lists)
- BEP-0024 (External IP)
- BEP-0031 (Failure Retry Extension)
- BEP-0048 (Scrape)
- BEP-0015 (UDP Tracker Protocol)
- LT-Extension (aka. complete,incomplete)
- Switchable Mode (Memory or MySQL)
- Load and store persist from disk
- Blacklist for info_hash and peer_id
- Eventbus support
- Websocket support
- Prometheus based metrics
- RPC mode to support cluster. Powered by Kitex
- eBPF-based blacklist
Wiki
Trunker provides much config and observability capabilities, if you want to run trunker in production, please see the Wiki.
Benchmark
Trunker has very strong performance. Here's a record of a real peak.
- CPU:
4 Cores AMD EPYC-Milan
- Average response time:
100us when 1267703 torrents and 2406393 peers are online.
- QPS:
2736 (can be higher, but we don't have such many peers connect to our tracker)
- Memory Cost:
2635MB.

