Torrust-Actix 추적기
프로젝트 설명
Torrust-Actix Tracker는 Rust를 사용하여 제작된 가볍지만 놀라울 정도로 강력하고 기능이 풍부한 BitTorrent Tracker입니다.
현재 https://www.gbitt.info/에서 활발히 활용되고 있습니다.
이 프로젝트는 원래 Mick van Dijke가 개발한 Torrust-Tracker 코드에서 시작되었으며, GitHub에서 사용할 수 있는 OpenTracker 및 기타 추적기 코드에 대한 대안으로 Power2All이 추가로 개발했습니다.
특징
BEP 구현
- BEP 3: BitTorrent 프로토콜
- BEP 7: IPv6 지원
- BEP 15: BitTorrent용 UDP 추적기 프로토콜
- BEP 23: 추적기는 소형 피어 목록을 반환합니다.
- BEP 41: UDP 추적기 프로토콜 확장
- BEP 48: 추적기 프로토콜 확장: 스크랩
시작하기
릴리스에서 최신 바이너리를 다운로드하거나 아래의 처음부터 설치 지침을 따를 수 있습니다.
처음부터 설치
- 저장소를 복제합니다.
git clone https://github.com/Power2All/torrust-actix.git
cd torrust-actix
- Rust를 사용하여 소스 코드를 빌드합니다(안정적인 브랜치와 함께 Rustup을 설치했는지 확인하세요).
빌드 스크립트 사용
용법
환경에서 사용하기 위해 --help
인수를 사용하여 코드를 실행합니다.
./target/release/torrust-actix --help
서버를 실행하기 전에 지속성을 꺼야 하며, 활성화되면 데이터베이스가 생성되어 작동하는지 확인해야 합니다. 원하는 대로 설정을 수정하는 방법 위의 도움말 인수를 참조하세요.
Swagger UI가 도입되었으며 구성에서 활성화되면 /swagger-ui/
통해 API를 통해 액세스할 수 있습니다.
Sentry.io 지원이 도입되었습니다. 구성과 데이터를 푸시할 URL에서 이를 활성화할 수 있습니다.
변경 로그
v4.0.4
v4.0.3
- 잘못된 방법이므로 공지 및 스크랩 경로를 수정합니다.
- 앱에 영향을 미치지는 않지만 더 잘 처리되어야 하는 다양한 작은 버그를 수정합니다.
- Sentry.io SaaS 및 자체 호스팅 설정에 대한 지원이 추가되었습니다.
- 미들웨어에 대한 LUA 지원을 도입할 버전 v4.1.0 작업을 준비 중입니다.
v4.0.2
- 시스템이 데이터베이스에서 데이터를 제거하는 옵션이 추가되었습니다.
- 화이트/블랙 목록 및 키 테이블에 대한 업데이트 변수를 추가했습니다.
- "테이블"이어야 하는 "데이터베이스" 이름을 변경합니다.
- 내가 우연히 발견한 많은 수정 사항과 버그.
v4.0.0
- 가독성을 위해 추적기 코드를 완전히 재구축했습니다.
- Actix v4로 이동하여 이 소프트웨어의 버전도 v4.0.0으로 지정되었습니다.
- 구성 파일이 생성되는 방식으로 다시 빌드하고 다시 만들었습니다(명령을 인수로 제공해야 함).
- 전체 데이터베이스 시스템을 다시 실행하고 현재 사용 가능한 최신 버전으로 테스트되었습니다.
- API는 많은 작업과 테스트를 거쳤습니다.
- 테스트 및 문서화로 Swagger UI를 도입했습니다.
- 속도와 성능이 많이 향상되었습니다.
- 가져오기 및 내보내기 기능이 추가되어 JSON 파일에서 덤프하거나 가져오므로 기존 데이터베이스에서 백업을 만들거나 다른 데이터베이스 엔진으로 마이그레이션할 때 편리합니다.
- WebGUI가 제거되었으며 오래되어 실제로 유용하지 않았습니다.
v3.2.2
- 보안 패치를 포함하여 라이브러리 버전이 크게 향상되었습니다.
- 제대로 작동하도록 라이브러리의 변경 사항을 수정했습니다.
- 더 적은 메모리를 사용하도록 비지속성 코드를 조정했습니다.
v3.2.1
- 보안 패치를 포함한 범프된 라이브러리 버전.
- PostgreSQL 핸들러의 버그를 수정했습니다.
- Torrust-Axum에서 Torrust-Actix로 일부 잊혀진 이름이 지정되었습니다.
v3.2.0
- 충돌된 라이브러리 버전.
- 스레드를 통해 예약이 수행되는 방식을 수정하여 활동이 많은 공개 추적기를 잠그고 속도를 늦출 수 있습니다.
- SQLite3 데이터베이스 사용량 및 데이터베이스 공간 소비를 조정합니다.
- 토렌트와 피어가 메모리에서 사용되는 방식에 대한 전체 점검입니다. 스레드 안전 비잠금 메모리 공유를 위해 크로스빔 스킵맵을 사용합니다.
- 코딩 성능, 가독성 및 파일 린팅에 대한 다양한 개선이 이루어졌습니다.
- Actix용 Tokio Axum 웹 프레임워크를 대체했습니다. 이유: 연결, 연결 끊기, 읽기 및 쓰기 시 시간 초과와 같은 중요한 사항이 누락되었으며 지원이 부족했습니다.
- github 저장소의 이름을 torrust-axum에서 torrust-actix로 변경했습니다.
- 추가 키로 사용자 추적 지원을 추가합니다.
v3.1.2
- 충돌된 라이브러리 버전.
- 일부 오픈 소스 프로젝트에 필요하므로 행동 강령 파일을 추가했습니다.
- API 및 WebGUI에 유지 관리 토글 기능을 추가했습니다.
- '--create-config' 인수를 강제로 사용하지 않는 한 구성 파일이 존재하지 않거나 잘못된 데이터가 있는 경우 구성 파일이 생성되지 않습니다.
- 다양한 작은 버그를 수정했습니다.
v3.1.1
- 충돌된 라이브러리 버전.
- SQLite3, MySQL 및 PostgreSQL용 데이터베이스는 이제 모든 테이블에서 제대로 작동하며 활성화된 경우 사용됩니다.
- UDP는 IPv4에서 문제가 있었고 바이트 배열을 올바르게 구문 분석하기 위한 코드를 수정했습니다.
- 일부 중복 코드를 정리하고 리팩토링합니다.
- 오류를 방지하기 위해 필요한 곳에 몇 가지 작은 검사를 추가했습니다.
v3.1.0
- 화이트리스트 시스템: 이를 활성화하여 데이터베이스에 지정한 토렌트 해시만 사용하도록 허용하거나 API를 통해 추가할 수 있습니다.
- 블랙리스트 시스템: 이 기능을 활성화하면 데이터베이스에 지정한 토렌트 해시 사용을 허용하지 않거나 API를 통해 추가할 수 있습니다.
- 키 시스템: 활성화된 "키" 해시(info_hash와 동일, 20바이트 또는 40자의 16진수)가 제공되는 경우에만 추적을 허용하도록 활성화할 수 있습니다. 시간 제한이 "0"인 키는 영구적이며 정리 시 삭제되지 않습니다.
- WebGUI: API에는 https://your.api:8080/webgui/를 통해 액세스할 수 있고 구성 파일에서 구성하는 올바른 API 키를 제공할 수 있는 사용 가능한 웹 인터페이스가 있습니다.
- 사용자 정의 가능한 데이터베이스 구조는 구성 파일에 제공될 수 있습니다.
- 이 시스템은 이제 https://hub.docker.com/r/power2all/torrust-axum의 Docker Hub를 통해서도 사용할 수 있습니다.
v3.0.1
- 버그수정
- SQLite3 지원이 추가되었습니다.
- MySQL 지원이 추가되었습니다.
- PostgresSQL 지원이 추가되었습니다.
v3.0.0
Torrust-Axum의 초기 버전.
크레딧
이 Torrust-Tracker는 Nautilus Cyberneering GmbH, Dutch Bits 및 Power2All의 공동 노력으로 만들어졌습니다. 또한 Torrust-Tracker 코드의 일부 부분을 담당한 Naim A.와 Greatest-ape에게도 감사드립니다. 이 프로젝트(Torrust-Actix)는 Power2All에 의해 처음부터 구축되었습니다.