bittorrent-tracker

A Node.js implementation of a BitTorrent tracker providing both client and server functionality for peer swarms.

bittorrent-tracker screenshot 1

bittorrent-tracker is an open-source Node.js implementation of a BitTorrent tracker that provides both client and server functionality for peer swarms. It acts as a web service that responds to requests from BitTorrent clients, maintaining statistics about torrents and providing peer lists to help clients participate in a swarm. By coordinating these requests, the software enables the discovery of other peers who are sharing the same files.

The software can be deployed as a standalone server to track peer swarms or integrated as a module into other JavaScript applications. It supports various communication protocols to ensure compatibility across different environments, including browser-based implementations and server-side Node.js applications. The client implementation allows applications to announce their presence to trackers, receive updates on the number of seeders and leechers, and discover peer addresses to begin data transfer.

Key features

  • Includes both client and server implementations
  • Supports HTTP, UDP (BEP 15), and WebTorrent tracker types
  • Compatible with both IPv4 and IPv6
  • Supports the tracker scrape extension for swarm statistics
  • Provides tracker statistics via a web interface at /stats
  • Exports statistics as JSON data via /stats.json
  • Includes a filtering system to whitelist or blacklist specific torrents

The architecture is designed for integration into larger peer-to-peer ecosystems and is used by projects such as WebTorrent, peerflix, and playback. The server implementation allows for the customization of allowed torrents through an asynchronous filter function, which can be interfaced with external databases to manage access or implement private tracker logic. It supports WebSocket servers for browser-based peer discovery and provides specific event hooks for monitoring start, update, and stop messages from peers. The client side supports proxy options for both HTTP and SOCKS connections, ensuring connectivity across different network configurations.

This tool is intended for developers building peer-to-peer file sharing applications or those needing to host their own tracker infrastructure for distributed storage.

Last Modified
Software TypeDesktop App
Platform
Last Activity16 days ago
Repository Age12 years
LicenseMIT
Open Source Software.io

Join our newsletter to get shiny new open source software delivered to your inbox. Unsubscribe anytime.