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 -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
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.

