Elixir로 작성한 새로운 BitTorrent 트래커 구현

4 hours ago 1

  • ExTracker는 Elixir 기반의 새로운 BitTorrent 트래커 프로젝트
  • 높은 성능낮은 메모리 사용량을 기반으로 설계되었으며, 사실상 제로 셋업으로 바로 사용 가능함
  • BitTorrent 프로토콜(BEP) 의 여러 확장 제안서 지원으로 다양성과 호환성 제공함
  • HTTPS 지원, 디스크 백업, 운영 관리 기능 등 실무에 필요한 주요 기능을 포함함
  • 현재는 산업적 사용에는 미완성 단계이지만 테스트 인스턴스가 실제 운영 중임

개요 및 프로젝트 중요성

ExTracker는 Elixir로 구현된 새로운 BitTorrent 트래커 오픈 소스 프로젝트로, 기존 트래커들에 비해 다음과 같은 이점을 제공함

  • 최신 Erlang/Elixir 런타임 기반으로, 멀티코어를 모두 활용하는 고성능 구조를 가짐
  • 대규모 피어 환경(약 1백만 피어당 200MB RAM)에서 낮은 메모리 사용량을 보장함
  • 복잡한 사전 설정 없이 즉시 작동하는 제로 셋업 환경 제공
  • 여러 BitTorrent Enhancement Proposal(BEP) 지원으로 최신 트래커 표준과 호환성 유지함

기존 트래커 대비 가볍고 효율적이며, Elixir 고유의 동시성 및 분산 환경 지원을 최대한 활용하여 동급 오픈 소스 프로젝트와 차별화됨

주요 기능 (Features)

  • 고성능: 모든 CPU 코어 활용, 인메모리 저장소 사용
  • 메모리 최적화: 피어 1백만 명당 약 200MB RAM 사용
  • 제로 셋업: 아무런 추가 설정 없이 바로 실행 가능

지원하는 BitTorrent Enhancement Proposals (BEP)

  • BEP 0: BitTorrent 프로토콜 명세 준수
  • BEP 15: UDP 트래커 프로토콜 지원
  • BEP 23: 압축된 피어 리스트 반환
  • BEP 7: IPv6 트래커 확장
  • BEP 24: 외부 IP 반환
  • BEP 41: UDP 트래커 프로토콜 확장
  • BEP 48: Scrape 트래커 확장 (부분 지원)
  • BEP 52: BitTorrent 프로토콜 v2
  • 일부 기능(BEP 27, 21, 31 등)은 미구현이거나, 계획 중임
  • BEP 8(트래커 피어 난독화)은 지원하지 않음

기타 기능

  • HTTPS 연결 지원
  • 디스크 백업 (데이터 안전성 강화)
  • (예정) Infohash 화이트리스트/블랙리스트 관리
  • (예정) 피어 관리: 권한, 정기 정리, 퇴출 등
  • (예정) 메트릭/지표 관리 및 GeoIP 활용
  • WebTorrent는 지원 계획 없음

사용자/개발자의 제안사항을 Issue로 접수받음

실행 방법

  • 소스 코드 직접 실행
    • Erlang 및 Elixir 필요
    • 저장소 클론 후 환경설정, 실행
  • 릴리즈 방식
    • 공식 릴리즈는 없지만 직접 빌드 및 배포 방식 지원
    • 릴리즈 파일 복사, 환경설정 후 실행
  • Docker
    • 공식 컨테이너 이미지 사용 가능
    • docker-compose 예시 파일 제공
    • 컨테이너 내부 설정은 환경 변수 이용 권장

저작권 및 라이선스

  • Copyright (c) Dahrkael <dahrkael at outlook dot com>
  • Apache License 2.0 하에 배포
  • 라이선스 상세 내용은 저장소의 LICENSE 파일 참고

Read Entire Article