All Projects → cit → MlDHT

cit / MlDHT

Licence: MIT license
MLDHT is an elixir package that provides a mainline DHT implementation according to BEP 05.

Programming Languages

elixir
2628 projects

Projects that are alternatives of or similar to MlDHT

Bittorrent Dht
🕸 Simple, robust, BitTorrent DHT implementation
Stars: ✭ 1,004 (+1040.91%)
Mutual labels:  bittorrent, dht
bthello
Python3 DHT 磁力种子爬虫 种子解析 种子搜索 演示地址
Stars: ✭ 43 (-51.14%)
Mutual labels:  bittorrent, dht
Phpspidermagnetbittorrent
php实现p2p中DHT网络爬虫,并提供搜索下载
Stars: ✭ 64 (-27.27%)
Mutual labels:  bittorrent, dht
Aria2.js
JavaScript library for aria2, "The next generation download utility."
Stars: ✭ 471 (+435.23%)
Mutual labels:  bittorrent, dht
Magnetico
Autonomous (self-hosted) BitTorrent DHT search engine suite.
Stars: ✭ 2,626 (+2884.09%)
Mutual labels:  bittorrent, dht
Lbry Sdk
The LBRY SDK for building decentralized, censorship resistant, monetized, digital content apps.
Stars: ✭ 7,169 (+8046.59%)
Mutual labels:  bittorrent, dht
Snail
基于Java、JavaFX开发的下载工具,支持下载协议:BT(BitTorrent、磁力链接、种子文件)、HLS(M3U8)、FTP、HTTP。人家才不要你的⭐⭐呢,哼
Stars: ✭ 102 (+15.91%)
Mutual labels:  bittorrent, dht
Antcolony
Nodejs实现的一个磁力链接爬虫 http://findit.keenwon.com (原域名http://findit.so )
Stars: ✭ 1,151 (+1207.95%)
Mutual labels:  bittorrent, dht
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 (+109.09%)
Mutual labels:  bittorrent, dht
Torrent Discovery
Discover BitTorrent and WebTorrent peers
Stars: ✭ 177 (+101.14%)
Mutual labels:  bittorrent, dht
Dhtspider
Bittorrent dht network spider
Stars: ✭ 302 (+243.18%)
Mutual labels:  bittorrent, dht
dhtrobot
A kademila DHT implement in go
Stars: ✭ 40 (-54.55%)
Mutual labels:  bittorrent, dht
Bluntly
serverless, encrypted, NAT-breaking p2p connections - DEPRECATED
Stars: ✭ 270 (+206.82%)
Mutual labels:  bittorrent, dht
Dhtsearch
[mirror] Standalone DHT search
Stars: ✭ 32 (-63.64%)
Mutual labels:  bittorrent, dht
torrent-spider
基于DHT的p2p网络资源爬虫
Stars: ✭ 65 (-26.14%)
Mutual labels:  bittorrent, dht
Bt
BitTorrent library and client with DHT, magnet links, encryption and more
Stars: ✭ 2,011 (+2185.23%)
Mutual labels:  bittorrent, dht
Zx Bt
一个基于BitTorrent协议的DHT磁力嗅探器,并基于Elasticsearch存储/检索Torrent的Metadata信息
Stars: ✭ 244 (+177.27%)
Mutual labels:  bittorrent, dht
tinyBT
Implementation of the Bittorrent and Mainline DHT protocol for Distributed Computing applications
Stars: ✭ 30 (-65.91%)
Mutual labels:  bittorrent, dht
IMDb-Scout-Mod
Auto search for movie/series on torrent, usenet, ddl, subtitles, streaming, predb and other sites. Adds links to IMDb pages from hundreds various sites. Adds movies/series to Radarr/Sonarr. Adds external ratings from Metacritic, Rotten Tomatoes, Letterboxd, Douban, Allocine. Media Server indicators for Plex, Jellyfin, Emby. Dark theme/style for …
Stars: ✭ 177 (+101.14%)
Mutual labels:  bittorrent
CombinedPrivacyBlockLists
Ad-blocking hosts files, IP block lists, PAC filters, and ABP / uBO subscriptions, all merged from multiple reputable sources, combined with my own research. Also, script-based utilities to help you create such things yourself. Updated at least once a week, often more frequently.
Stars: ✭ 131 (+48.86%)
Mutual labels:  bittorrent

MlDHT - Mainline Distributed Hash Table

Build Status

A Distributed Hash Table (DHT) is a storage and lookup system that is based on a peer-to-peer (P2P) system. The file sharing protocol BitTorrent makes use of a DHT to find new peers without using a central tracker. There are three popular DHT-based protocols: KAD, Vuze DHT and Mainline DHT. All protocols are based on Kademlia but are not compatible with each other. The mainline DHT is by far the biggest overlay network with around 15-27 million users per day.

MlDHT, in particular, is an elixir package that provides a mainline DHT implementation according to BEP 05. It is build on the following modules:

  • DHTServer - main interface, receives all incoming messages;
  • RoutingTable - maintains contact information of close nodes.

Getting Started

Learn how to add MlDHT to your Elixir project and start using it.

Adding MlDHT To Your Project

To use MlDHT with your projects, edit your mix.exs file and add it as a dependency:

defp application do
  [applications: [:mldht]]
end

defp deps do
  [{:mldht, "~> 0.0.3"}]
end

Basic Usage

If the application is loaded it automatically bootstraps itself into the overlay network. It does this by starting a find_node search for a node that belongs to the same bucket as our own node id. In mix.exs you will find the boostrapping nodes that will be used for that first search. By doing this, we will quickly collect nodes that are close to us.

You can use the following function to find nodes for a specific BitTorrent infohash (e.g. Ubuntu 19.04):

iex> "D540FC48EB12F2833163EED6421D449DD8F1CE1F"
     |> Base.decode16!
     |> MlDHT.search(fn(node) -> IO.puts "#{inspect node}" end)

If you would like to search for nodes and announce yourself to the DHT network use the following function:

iex> "D540FC48EB12F2833163EED6421D449DD8F1CE1F"
     |> Base.decode16!
     |> MlDHT.search_announce(6881, fn(node) -> IO.puts "#{inspect node}" end)

It is also possible search and announce yourself to the DHT network without a TCP port. By doing this, the source port of the UDP packet should be used instead.

iex> "D540FC48EB12F2833163EED6421D449DD8F1CE1F"
     |> Base.decode16!
     |> MlDHT.search_announce(fn(node) -> IO.puts "#{inspect node}" end)

License

MlDHT source code is released under MIT License. Check LICENSE file for more information.

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].