New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

peer-tracker

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

peer-tracker

Lightweight BitTorrent Tracker Client & Server Implementation

  • 1.1.5
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
9
decreased by-57.14%
Maintainers
1
Weekly downloads
 
Created
Source

peer-tracker travis npm downloads Greenkeeper badge

Lightweight BitTorrent Tracker Client & (Persistent) Server Implementation






### About

OFFICIALLY VERSION 1!

Example Use

See a working example HERE

Tutorial to use on a Digital Ocean server here:

START USING DIGITAL OCEAN AND GET $10 FREE CLICK HERE

Docker images:

  • REDIS oconnorct1/redis:latest
  • NGINX oconnorct1/nginx:latest
  • NODE oconnorct1/peer-tracker:latest
Ingenuity

The first of it's kind! A smart persistent Bittorent tracker.

If one server crashes, the system will not fail.

Nginx will handle distributing the load.

Using a Redis server, memory will be stored intermittently to ensure speed and efficiency over memory, as some loss in peers is ok.

Paired with client software, this package is ready to go.

Functionality
  • Scrape support
  • NEW Multi-Scrape support!!!!
  • WebSocket support
  • Multi-server support
  • Docker compatible
  • NGinX ready

Install

npm install peer-tracker

Usage

Server

new Server();

Yep, literally that simple. (Be sure to have a Redis instance running)

The server does take options, however:


let opts = {
  port:    80    // Default
  udpPort: 1337  // Default
  docker:  false // Default
}

new Server(opts);

Client

// Scrape one hash
let client = Client.udp("scrape", "0.0.0.0", 1337, 6688, "0123456789012345678901234567890123456789", 0, 0, 0);
// OR ws:
// Scrape multiple hashes:
let client = Client.ws("scrape", "0.0.0.0", 80, 6688, ["0123456789012345678901234567890123456789", "0123456789012345678901234567890123456789"], 0, 0, 0);


client.on("announce", (interval, leechers, seeders, addresses) => {
console.log("interval:", interval);
console.log("leechers:", leechers);
console.log("seeders:", seeders);
console.log("addresses:", addresses);
});

client.on("scrape", (seeders, completed, leechers) => {
console.log("seeders", seeders);
console.log("completed", completed);
console.log("leechers", leechers);
});

client.on("error", (err) => {
console.log("error:", err);
})

Client will auto-self-destruct upon completion.

SERVER

Server(opts);

  • opts: Options
interface Options {
  port:    number;
  udpPort: number;
  docker:  Boolean
}

UDP CLIENT:

udp(announcement, trackerHost, port, myPort, infoHash, left, uploaded, downloaded)

  • announcement type: string
    • scrape
    • complete
    • start
    • stop
    • update
  • trackerHost: string
    • UDP: 0.0.0.0
  • port: number
  • myPort: number
  • infoHash: string
  • left: number
  • uploaded: number
  • downloaded: number

WS CLIENT:

ws(announcement, trackerHost, port, myPort, infoHash, left, uploaded, downloaded)

  • announcement type: string
    • scrape
    • complete
    • start
    • stop
    • update
  • trackerHost: string
    • WSS: 0.0.0.0
  • port: number
  • myPort: number
  • infoHash: string
  • left: number
  • uploaded: number
  • downloaded: number

license

ISC License (Open Source Initiative)

ISC License (ISC) Copyright <2017>

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Craig OConnor.

FAQs

Package last updated on 19 Feb 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc