Torrust-Actix Tracker
รายละเอียดโครงการ
Torrust-Actix Tracker เป็น BitTorrent Tracker ที่มีน้ำหนักเบา แต่ทรงพลังอย่างเหลือเชื่อและเต็มไปด้วยฟีเจอร์มากมาย ที่สร้างโดยใช้ Rust
ขณะนี้มีการใช้งานอย่างแข็งขันที่ https://www.gbitt.info/
โปรเจ็กต์นี้มาจากโค้ด Torrust-Tracker ที่พัฒนาโดย Mick van Dijke และได้รับการพัฒนาเพิ่มเติมโดย Power2All เพื่อเป็นทางเลือกสำหรับ OpenTracker และโค้ดติดตามอื่น ๆ ที่มีอยู่บน GitHub
คุณสมบัติ
BEP ที่ดำเนินการแล้ว
- BEP 3: โปรโตคอล BitTorrent
- BEP 7: รองรับ IPv6
- BEP 15: โปรโตคอล UDP Tracker สำหรับ BitTorrent
- BEP 23: Tracker ส่งคืนรายการเพียร์แบบกระชับ
- BEP 41: ส่วนขยายโปรโตคอล UDP Tracker
- BEP 48: ส่วนขยายโปรโตคอล Tracker: Scrape
เริ่มต้นใช้งาน
คุณสามารถรับไบนารีล่าสุดจากรุ่นต่างๆ หรือปฏิบัติตามคำแนะนำในการติดตั้งตั้งแต่เริ่มต้นด้านล่าง
ติดตั้งตั้งแต่เริ่มต้น
- โคลนที่เก็บ:
git clone https://github.com/Power2All/torrust-actix.git
cd torrust-actix
- สร้างซอร์สโค้ดโดยใช้ Rust (ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งสนิมด้วยสาขาที่เสถียร)
การใช้สคริปต์สร้าง
การใช้งาน
รันโค้ดโดยใช้ --help
อาร์กิวเมนต์เพื่อใช้ในสภาพแวดล้อมของคุณ:
./target/release/torrust-actix --help
ก่อนที่คุณจะสามารถเรียกใช้เซิร์ฟเวอร์ได้ คุณจะต้องปิด Persietency และเมื่อเปิดใช้งาน ตรวจสอบให้แน่ใจว่าฐานข้อมูลของคุณถูกสร้างขึ้นและใช้งานได้ ดูข้อโต้แย้งความช่วยเหลือด้านบนวิธีแก้ไขการตั้งค่าของคุณตามที่คุณต้องการ
มีการแนะนำ Swagger UI และเมื่อเปิดใช้งานในการกำหนดค่า จะสามารถเข้าถึงได้ผ่าน API ผ่านทาง /swagger-ui/
มีการแนะนำการรองรับ Sentry.io คุณสามารถเปิดใช้งานได้ในการกำหนดค่าและ URL ที่จะส่งข้อมูลไป
บันทึกการเปลี่ยนแปลง
เวอร์ชัน 4.0.4
- การใช้งาน Sentry เพิ่มเติม (การบันทึกการติดตาม)
เวอร์ชัน 4.0.3
- แก้ไขการประกาศและขูดเส้นทางเนื่องจากเป็นวิธีที่ผิด
- แก้ไขข้อบกพร่องเล็กๆ น้อยๆ ที่ไม่ทำให้แอปเสียหาย แต่ควรได้รับการจัดการให้ดีขึ้น
- เพิ่มการรองรับ Sentry.io SaaS และการตั้งค่าที่โฮสต์เอง
- กำลังเตรียมงานสำหรับเวอร์ชัน v4.1.0 ซึ่งจะแนะนำการรองรับ LUA สำหรับมิดเดิลแวร์
เวอร์ชัน 4.0.2
- เพิ่มตัวเลือกที่ระบบจะลบข้อมูลออกจากฐานข้อมูล
- เพิ่มตัวแปรการอัปเดตสำหรับรายการขาว/ดำและตารางคีย์
- การเปลี่ยนชื่อการตั้งชื่อ "ฐานข้อมูล" ซึ่งควรเป็น "ตาราง"
- การแก้ไขและข้อบกพร่องมากมายที่ฉันพบ
เวอร์ชัน 4.0.0
- สร้างโค้ดติดตามขึ้นมาใหม่ทั้งหมดเพื่อให้อ่านง่าย
- ย้ายไปที่ Actix v4 แล้วจึงเปลี่ยนเวอร์ชันซอฟต์แวร์นี้เป็น v4.0.0 เช่นกัน
- สร้างใหม่และสร้างวิธีสร้างไฟล์การกำหนดค่าใหม่ (คุณต้องให้คำสั่งเป็นอาร์กิวเมนต์สำหรับไฟล์นั้น)
- ทำซ้ำระบบฐานข้อมูลทั้งหมด ได้รับการทดสอบด้วยเวอร์ชันล่าสุดที่มีอยู่ในขณะนี้
- API ได้ผ่านการทำงานและทดสอบมามากมาย
- แนะนำ Swagger UI เพื่อเป็นการทดสอบและจัดทำเอกสาร
- มีการปรับปรุงความเร็วและประสิทธิภาพมากมายเพิ่มเติม
- เพิ่มฟังก์ชันนำเข้าและส่งออก ซึ่งจะถ่ายโอนข้อมูลหรือนำเข้าจากไฟล์ JSON ซึ่งสะดวกสำหรับการสำรองข้อมูลจากฐานข้อมูลที่มีอยู่ของคุณ หรือเมื่อย้ายไปยังกลไกฐานข้อมูลอื่น
- ลบ WebGUI ออกแล้ว ล้าสมัยและไม่มีประโยชน์จริงๆ
เวอร์ชัน 3.2.2
- เวอร์ชันไลบรารี่มีข้อบกพร่องอย่างมาก รวมถึงแพตช์ด้านความปลอดภัย
- แก้ไขการเปลี่ยนแปลงในไลบรารีเพื่อให้ทำงานได้อย่างถูกต้อง
- ปรับโค้ดที่ไม่คงอยู่เพื่อใช้หน่วยความจำน้อยลง
เวอร์ชัน 3.2.1
- เวอร์ชันไลบรารีที่ชนกัน รวมถึงแพตช์ความปลอดภัย
- แก้ไขข้อบกพร่องในตัวจัดการ PostgreSQL
- บางคนลืมการตั้งชื่อตั้งแต่ Torrust-Axum ถึง Torrust-Actix
เวอร์ชัน 3.2.0
- เวอร์ชันไลบรารีที่ชนกัน
- ปรับเปลี่ยนวิธีการตั้งเวลาผ่านเธรด ซึ่งอาจล็อคและทำให้ตัวติดตามสาธารณะช้าลงเนื่องจากมีกิจกรรมที่หนักหน่วง
- ปรับแต่งการใช้งานฐานข้อมูล SQLite3 และการใช้พื้นที่ฐานข้อมูล
- ยกเครื่องใหม่ทั้งหมดเกี่ยวกับวิธีการใช้ทอร์เรนต์และเพียร์ในหน่วยความจำ การใช้ crossbeam crossmap สำหรับการแชร์หน่วยความจำแบบไม่ล็อคเธรดที่ปลอดภัย
- การปรับปรุงประสิทธิภาพการเขียนโค้ด ความสามารถในการอ่าน และการ Linting ไฟล์ต่างๆ
- แทนที่เฟรมเวิร์กเว็บ Tokio Axum สำหรับ Actix สาเหตุ: ขาดสิ่งสำคัญ เช่น การหมดเวลาในการเชื่อมต่อ ยกเลิกการเชื่อมต่อ อ่านและเขียน และการสนับสนุนยังขาดความดแจ่มใส
- เปลี่ยนชื่อที่เก็บ GitHub จาก torrust-axum เป็น torrust-actix
- เพิ่มการสนับสนุนการติดตามผู้ใช้ด้วยรหัสพิเศษ
เวอร์ชัน 3.1.2
- เวอร์ชันไลบรารีที่ชนกัน
- เพิ่มไฟล์หลักจรรยาบรรณ เนื่องจากบางโครงการโอเพ่นซอร์สต้องการสิ่งนี้
- เพิ่มฟังก์ชันสลับการบำรุงรักษาให้กับ API และ WebGUI
- ไฟล์การกำหนดค่าจะไม่ถูกสร้างขึ้นเมื่อไม่มีอยู่ หรือมีข้อมูลที่ไม่ถูกต้อง เว้นแต่จะบังคับด้วยอาร์กิวเมนต์ '--create-config'
- แก้ไขข้อบกพร่องเล็กๆ น้อยๆ ต่างๆ
เวอร์ชัน 3.1.1
- เวอร์ชันไลบรารีที่ชนกัน
- ขณะนี้ฐานข้อมูลสำหรับ SQLite3, MySQL และ PostgreSQL ทำงานอย่างถูกต้องกับตารางทั้งหมด และจะถูกใช้หากเปิดใช้งาน
- UDP มีปัญหาใน IPv4 แก้ไขโค้ดสำหรับการแยกวิเคราะห์อาร์เรย์ไบต์อย่างถูกต้อง
- การล้างข้อมูลและการปรับโครงสร้างโค้ดที่ซ้ำซ้อนบางส่วน
- เพิ่มการตรวจสอบเล็กๆ น้อยๆ ตามที่จำเป็นเพื่อป้องกันข้อผิดพลาด
เวอร์ชัน 3.1.0
- ระบบไวท์ลิสต์: คุณสามารถเปิดใช้งานสิ่งนี้เพื่ออนุญาตให้ใช้เฉพาะแฮชทอร์เรนต์ที่คุณระบุในฐานข้อมูล หรือเพิ่มผ่าน API
- ระบบบัญชีดำ: คุณสามารถเปิดใช้งานสิ่งนี้เพื่อไม่อนุญาตให้ใช้แฮชทอร์เรนต์ที่คุณระบุในฐานข้อมูล หรือเพิ่มผ่าน API
- ระบบคีย์: คุณสามารถเปิดใช้งานสิ่งนี้เพื่ออนุญาตการติดตามเฉพาะเมื่อได้รับแฮช "คีย์" ที่เปิดใช้งานแล้ว (เหมือนกับ info_hash, 20 ไบต์หรือ 40 ตัวอักษรฐานสิบหก) คีย์ที่มีการหมดเวลาเป็นศูนย์ "0" จะเป็นคีย์ถาวรและจะไม่ถูกล้างข้อมูลโดยการล้างข้อมูล
- WebGUI: API มีเว็บอินเทอร์เฟซที่พร้อมใช้งาน ซึ่งสามารถเข้าถึงได้ผ่าน https://your.api:8080/webgui/ และให้คีย์ API ที่ถูกต้อง ซึ่งคุณกำหนดค่าในไฟล์การกำหนดค่า
- โครงสร้างฐานข้อมูลที่ปรับแต่งได้สามารถกำหนดได้ในไฟล์กำหนดค่า
- ขณะนี้ระบบสามารถใช้งานได้ผ่าน Docker Hub ที่ https://hub.docker.com/r/power2all/torrust-axum
เวอร์ชัน 3.0.1
- แก้ไขข้อบกพร่อง
- เพิ่มการสนับสนุน SQLite3 แล้ว
- เพิ่มการรองรับ MySQL แล้ว
- เพิ่มการรองรับ PostgresSQL แล้ว
เวอร์ชัน 3.0.0
Torrust-Axum เวอร์ชันเริ่มต้น
เครดิต
Torrust-Tracker นี้เป็นความพยายามร่วมกันของ Nautilus Cyberneiring GmbH, Dutch Bits และ Power2All ขอขอบคุณ Naim A. และ ape ที่ยิ่งใหญ่ที่สุดสำหรับบางส่วนในโค้ด Torrust-Tracker โปรเจ็กต์นี้ (Torrust-Actix) สร้างขึ้นตั้งแต่เริ่มต้นโดย Power2All