Elixir로 작성한 새로운 BitTorrent 트래커 구현
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발, DevOps
대상자
BitTorrent 트래커 개발자, Elixir 사용자, DevOps 엔지니어
핵심 요약
- ExTracker는 Elixir 기반의 BitTorrent 트래커로, 멀티코어 최적화와 낮은 메모리 사용을 특징으로 함
- BEP 0~48 등 BitTorrent 프로토콜 확장 제안서를 지원하며 HTTPS, 디스크 백업 기능을 포함함
- 제로 셋업 환경 제공 및 Docker 지원으로 빠른 배포가 가능함
섹션별 세부 요약
1. 프로젝트 개요
- ExTracker는 Elixir로 작성된 BitTorrent 트래커로, 고성능 및 메모리 최적화를 목표로 함
- BEP 0~48 중 일부는 미구현 또는 계획 중이며, BEP 8은 지원하지 않음
- HTTPS, 디스크 백업 기능을 포함하며, WebTorrent은 지원 계획 없음
2. 기술적 특징
- Elixir 기반의 OTP 설계는 미흡하며, ETS 기반의 절차적 구현이 많음
- 메모리 사용량은 1백만 피어당 약 200MB로 낮은 메모리 사용이 가능함
- 패턴 매칭과 'Let it crash' 철학을 통해 예외 처리가 용이하며, 10년간의 운영 경험에 기반한 고가용성을 자랑함
3. 설치 및 실행
- Elixir 및 Erlang이 필요하며, 릴리스 파일 복사 및 환경 설정 후 실행 가능
- Docker 지원으로 컨테이너 이미지 사용 가능하며, docker-compose 예시 파일 제공
- HTTPS는 :https_keyfile에 인증서 경로를 지정해야 하며, Caddy 또는 Nginx를 앞단에 배치하는 것이 권장됨
4. 기능 제한 및 향후 계획
- BEP 21은 미지원이며, HTTP 통계는 ToDo 상태
- 메트릭/지표 관리, Infohash 화이트리스트/블랙리스트, GeoIP 활용 등의 기능은 예정
- WebTorrent 지원 계획은 없음이며, private tracker 구현 이유는 미공개
결론
- ExTracker는 Elixir의 고성능과 메모리 최적화를 활용한 BitTorrent 트래커로, Docker 및 HTTPS 지원으로 빠른 배포가 가능함
- BEP 21 미지원 및 HTTP 통계 미구현 등의 기능 제한에 주의해야 하며, OTP 기반 설계는 향후 개선이 필요함
- Elixir 생태계에서 고가용성 서비스 개발에 적합하며, DevOps 및 트래커 개발자에게 강력한 선택지로 추천됨