All Projects → felix → Dhtsearch

felix / Dhtsearch

Licence: mit
[mirror] Standalone DHT search

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Dhtsearch

Magnetico
Autonomous (self-hosted) BitTorrent DHT search engine suite.
Stars: ✭ 2,626 (+8106.25%)
Mutual labels:  self-hosted, dht, bittorrent
dhtrobot
A kademila DHT implement in go
Stars: ✭ 40 (+25%)
Mutual labels:  bittorrent, dht
Magnetissimo
Web application that indexes all popular torrent sites, and saves it to the local database.
Stars: ✭ 2,551 (+7871.88%)
Mutual labels:  self-hosted, bittorrent
bthello
Python3 DHT 磁力种子爬虫 种子解析 种子搜索 演示地址
Stars: ✭ 43 (+34.38%)
Mutual labels:  bittorrent, dht
Xsrv
[mirror] Install and manage self-hosted services/applications, on your own server(s) - ansible collection and utilities
Stars: ✭ 89 (+178.13%)
Mutual labels:  self-hosted, bittorrent
Torrentinim
A very low memory-footprint, self hosted API-only torrent search engine. Sonarr + Radarr Compatible, native support for Linux, Mac and Windows.
Stars: ✭ 123 (+284.38%)
Mutual labels:  self-hosted, bittorrent
exatorrent
Easy to Use Torrent Client. Can be hosted in Cloud. Files can be streamed in Browser/Media Player.
Stars: ✭ 1,557 (+4765.63%)
Mutual labels:  bittorrent, self-hosted
Bt
BitTorrent library and client with DHT, magnet links, encryption and more
Stars: ✭ 2,011 (+6184.38%)
Mutual labels:  dht, bittorrent
autobrr
Automation for downloads.
Stars: ✭ 288 (+800%)
Mutual labels:  bittorrent, self-hosted
torrent-spider
基于DHT的p2p网络资源爬虫
Stars: ✭ 65 (+103.13%)
Mutual labels:  bittorrent, dht
Bluntly
serverless, encrypted, NAT-breaking p2p connections - DEPRECATED
Stars: ✭ 270 (+743.75%)
Mutual labels:  dht, bittorrent
Zx Bt
一个基于BitTorrent协议的DHT磁力嗅探器,并基于Elasticsearch存储/检索Torrent的Metadata信息
Stars: ✭ 244 (+662.5%)
Mutual labels:  dht, bittorrent
Dht
dht is used by anacrolix/torrent, and is intended for use as a library in other projects both torrent related and otherwise
Stars: ✭ 184 (+475%)
Mutual labels:  dht, bittorrent
Aria2.js
JavaScript library for aria2, "The next generation download utility."
Stars: ✭ 471 (+1371.88%)
Mutual labels:  dht, bittorrent
Torrent Discovery
Discover BitTorrent and WebTorrent peers
Stars: ✭ 177 (+453.13%)
Mutual labels:  dht, bittorrent
tinyBT
Implementation of the Bittorrent and Mainline DHT protocol for Distributed Computing applications
Stars: ✭ 30 (-6.25%)
Mutual labels:  bittorrent, dht
Antcolony
Nodejs实现的一个磁力链接爬虫 http://findit.keenwon.com (原域名http://findit.so )
Stars: ✭ 1,151 (+3496.88%)
Mutual labels:  dht, bittorrent
Snail
基于Java、JavaFX开发的下载工具,支持下载协议:BT(BitTorrent、磁力链接、种子文件)、HLS(M3U8)、FTP、HTTP。人家才不要你的⭐⭐呢,哼
Stars: ✭ 102 (+218.75%)
Mutual labels:  dht, bittorrent
MlDHT
MLDHT is an elixir package that provides a mainline DHT implementation according to BEP 05.
Stars: ✭ 88 (+175%)
Mutual labels:  bittorrent, dht
Dhtspider
Bittorrent dht network spider
Stars: ✭ 302 (+843.75%)
Mutual labels:  dht, bittorrent

DHT Search

This is a Mainline DHT crawler and BitTorrent client which also provides an HTTP interface to query the indexed data.

Distributed Hash Table (DHT) is a distributed system storing key/value pairs, in this case it is specifically Mainline DHT, the type used by BitTorrent clients. The crawler also implements a number of extensions which enable it to get the metadata for the torrent enabling indexing and later searching.

The crawler joins the DHT network and listens to the conversations between nodes, keeping track of interesting packets. The most interesting packets are those where another node announces they have a torrent available.

This BitTorrent client only downloads the torrent metadata. The actual files hosted by the remote nodes are not retrieved.

Features

  • Tagging of torrents metadata is fetched. The torrent is tagged using a set of regular expressions matched against the torrent name and the files in the torrent.

  • Filtering can be done by tags. By default all torrents tagged 'adult' are not indexed. See the SkipTags option in the configuration file.

  • Full Text Search using PostgreSQL's or Sqlite's text search vectors. Torrent names are weighted more than file names.

  • Statistics for the crawler process are available when the HTTP server is enabled. Fetch the JSON from the /status endpoint.

  • Custom tags can be defined in the configuration file.

  • Cross-platform builds for Windows, Macos, Linux, FreeBSD, and OpenBSD

Installation

There is a Makefile for GNU make:

$ make build

Usage

You are going to need to sort out any port forwarding if you are behind NAT so remote nodes can get to yours.

Configuration is done via a TOML formatted file or via flags passed to the daemon.

The following command line flags are available:

  -base-port int
        listen port (and first of multiple ports) (default 6881)
  -debug
        provide debug output
  -dsn string
        Database DSN (default "postgres://dht:[email protected]/dht?sslmode=disable")
  -http-address string
        HTTP listen address:port (default "localhost:6880")
  -no-http
        no HTTP service
  -num-nodes int
        number of nodes to start (default 1)
  -quiet
        log only errors

and the following "advanced" options:

  -max-bt-workers int
        max number of BT workers (default 256)
  -max-dht-workers int
        max number of DHT workers (default 256)
  -peer-cache-size int
        memory cache of seen peers (default 200)
  -routing-table-size int
        number of remote nodes in routing table (default 1000)
  -tcp-timeout int
        TCP timeout in seconds (default 10)
  -udp-timeout int
        UDP timeout in seconds (default 10)

These options enable you to start a number of DHT nodes thus implementing a small scale Sybil attack. The first DHT node will take the port specified and each subsequent port is for the following nodes.

TODO

  • Enable rate limiting.
  • Improve our manners on the DHT network (replies etc.).
  • Improve the routing table implementation.
  • Add results pagination.
  • Add tests!
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].