BT9G LABS / DHT chuyên sâu #13

Seeder Và Leecher: Con Số Có Nghĩa Gì Và Được Đo Như Thế Nào

Hiểu định nghĩa Seeder/Leecher, cách Tracker scrape đếm complete/incomplete và vì sao DHT không cho số toàn cầu chính xác.

BT9G Labs / DHT Deep Dive #13. Các con số Seeder và Leecher trông đơn giản nhưng ý nghĩa phụ thuộc mạnh vào nguồn dữ liệu và thời điểm đo.

Seeder Và Leecher: Con Số Có Nghĩa Gì Và Được Đo Như Thế Nào

Tóm tắt nhanh

  • Chủ đề: Seeder Và Leecher: Con Số Có Nghĩa Gì Và Được Đo Như Thế Nào
  • Từ khóa chính: Seeder, Leecher, Tracker scrape, DHT, Torrent statistics
  • Đối tượng đọc: kỹ sư backend, người nghiên cứu giao thức, search engineer và nhà phát triển BitTorrent
  • Mục tiêu: Giải thích giao thức và thiết kế hệ thống đủ chính xác để áp dụng vào pipeline discovery, metadata, indexing và search trong thực tế.

Góc nhìn hệ thống

Bắt đầu từ định nghĩa

Seeder thường là Peer đã có toàn bộ nội dung và tiếp tục chia sẻ, còn Leecher chưa hoàn tất toàn bộ nội dung. Trong thực tế Peer có thể dừng, đổi network hoặc report không hoàn hảo.

Vì vậy con số trên một website là snapshot hoặc estimate theo một cơ chế đo cụ thể, không phải sự thật toàn cầu vĩnh viễn.

Counter từ Tracker scrape

Tracker hỗ trợ scrape có thể trả complete, incomplete và đôi khi downloaded cho một InfoHash. Đây là nguồn trực tiếp nhất cho label Seeder/Leecher, nhưng chỉ bao phủ population mà tracker đó nhìn thấy.

Nếu Torrent dùng nhiều tracker, không thể cộng thẳng các số vì cùng một Peer có thể xuất hiện ở nhiều nơi.

Vì sao DHT không cho exact seeder count

BEP 5 get_peers trả Peer endpoint hoặc node gần target hơn. Nó không có field toàn cầu về số Peer complete/incomplete trong toàn Swarm. Một crawler cũng chỉ quan sát một phần network.

Phân loại Seeder từ DHT cần thêm kết nối và state, vẫn không đảm bảo coverage đầy đủ.

Semantics sản phẩm nên trung thực hơn

Nếu số liệu đến từ Tracker, UI nên hiển thị timestamp và source. Nếu chỉ có DHT activity, dùng label như 'recent peers observed' hoặc 'recent activity' sẽ chính xác hơn 'global seeders'.

Nguồn dữ liệu rõ ràng giúp người dùng hiểu đây là operational signal chứ không phải census toàn Internet.

Phác thảo triển khai

{
  "source": "tracker_scrape",
  "infohash": "...",
  "complete": 142,
  "incomplete": 37,
  "observed_at": "2026-09-16T03:00:00Z"
}

Ghi chú kỹ thuật từ BT9G Labs

Với một hệ thống lập chỉ mục như BT9G, số lượng packet hoặc InfoHash nhìn thấy không phải là thước đo quan trọng duy nhất. Nên tách rõ danh tính nội dung, quan sát mạng, trạng thái thu thập, metadata đã xác minh và search document thành các lớp dữ liệu riêng. Mọi dữ liệu đến từ DHT hoặc Peer nên có nguồn và timestamp. Khi đó có thể theo dõi bottleneck ở từng giai đoạn: discovery, kết nối, handshake, extension negotiation, metadata transfer, verification, lưu trữ và indexing.

Sai lầm thường gặp

  • Hiển thị Seeder/Leecher mà không ghi source hoặc timestamp.
  • Cộng số từ nhiều Tracker mà không dedup.
  • Cho rằng DHT có exact seeder count.
  • Dùng activity count thay cho số Seeder.

Bài viết BT9G Labs liên quan

Tài liệu tham khảo


Bài tiếp theo: Vì Sao Lấy Torrent Metadata Thất Bại: 10 Nguyên Nhân Thực Tế Và Mô Hình Retry Tốt Hơn →

Bài viết này nhằm giải thích các giao thức BitTorrent công khai và mô hình kỹ thuật. Việc quan sát một Swarm không đồng nghĩa nội dung đó đang khả dụng, hợp lệ hoặc được phép phân phối.