Questions tagged [dht]

A Hash Table is a data structure used to store data in the form of Key=>Value pairs. A Distributed Hash Table (DHT) is basically a hash table distributed across a network of computers(nodes). A DHT uses a Routing Protocol to determine which node to store a piece of data on.

A distributed hash table (DHT) is a class of a decentralized distributed system that provides a lookup service similar to a hash table; (key, value) pairs are stored in a DHT, and any participating node can efficiently retrieve the value associated with a given key. Responsibility for maintaining the mapping from keys to values is distributed among the nodes, in such a way that a change in the set of participants causes a minimal amount of disruption. This allows a DHT to scale to extremely large numbers of nodes and to handle continual node arrivals, departures, and failures.

A DHT uses a Routing Protocol to determine which node(s) a data should be stored on. This routing protocol usually takes care of replicating data and also updating data stores to make sure that the data survives on the DHT for the long term. Some popular routing protocols are Kademlia, Chord and Pastry

275 questions
2
votes
1 answer

kademlia closest good nodes won't intersect enough between two requests

working on bep44 implementation, i use the defined kademlia algorithm to find the closest good node given an hash id. Using my program i do go run main.go -put "Hello World!" -kname mykey -salt foobar2 -b public and get the value stored over a…
user4466350
2
votes
2 answers

P2P for chat and/or broadcasting messages

So basically I want to be write a P2P-software that is able to send text messages to all nodes, kind of like IRC. What kind of network am I adviced to use? I've looked some into DHT Kademlia, and it seems easy enough to implement, but it doesn't…
jondoe
  • 121
  • 7
2
votes
1 answer

How many k-buckets can a Node keep in its routing table in Kademlia DHT?

From Wikipedia Kademlia routing tables consist of a list for each bit of the node ID. If a node ID consists of 128 bits, a node will keep 128 such lists. Given that a keyspace is from 0-2^160 it means maximum nodes can be present in that keyspace…
defalt
  • 242
  • 1
  • 11
2
votes
1 answer

How does ThePirateBay know the number of seeders for its torrents?

How do websites like ThePirateBay.org work? I heard that the age of trackers is pretty much over, so I guess they extract data from DHT. I wrote a simple DHT scraper, but it was pretty slow to query the servers - does TPB have its own DHT nodes they…
d33tah
  • 10,999
  • 13
  • 68
  • 158
2
votes
1 answer

Are there any BitTorrent/DHT extensions for multicast peer discovery?

Does BitTorrent or its mainline DHT has any extension for IPv6 local peer discovery using multicast?
Petr
  • 62,528
  • 13
  • 153
  • 317
2
votes
0 answers

How can I repeatedly use twisted to call a function without running into an infinite recursion issue?

I'm working on a P2P application using twisted. I'm trying to repeatedly search for a specific key in my DHT and add it to a dictionary any time that the value changes. The code is more or less doing what I want to accomplish, except that I still…
jhoward
  • 404
  • 1
  • 6
  • 16
2
votes
5 answers

General information on trackerless bittorrent such as BitTorrent's Mainline DHT

I'm curious as to how trackerless torrents work. I tried to search for information (presentations or something) about the DHT torrent protocol but couldn't find any valuable resources. Could someone please provide a description or a link?
Maxim Veksler
  • 29,272
  • 38
  • 131
  • 151
2
votes
1 answer

How does Kademlia protocol guarantee peers forming a connected graph?

Nodes: Clients on DHT-network. Peers: Clients trying to download a specific resource. Suppose that the DHT-network is a connected graph, but NO nodes can access ALL other nodes (a consumption contrary to the common belief that the Internet, which…
Schezuk
  • 217
  • 2
  • 10
2
votes
1 answer

ping a bittorent dht bootstrap node could not get a answer

when send find_node to router.utorrent.com there is no response code like this import bencode import random import socket # Generate a 160-bit (20-byte) random node ID. my_id = ''.join([chr(random.randint(0, 255)) for _ in range(20)]) ping_query…
clochicine
  • 23
  • 2
2
votes
1 answer

Can somebody shed a light what this strange DHT response means?

Sometimes I receive this strange responses from other nodes. Transaction id match to my request transaction id as well as the remote IP so I tend to believe that node responded with this but it looks like sort of a mix of response and…
alex.49.98
  • 609
  • 5
  • 13
2
votes
1 answer

How do I prevent malicious DHT clients that might want to alter/delete my DHT data?

Okay, so lets say I have a DHT running with 10 clients with a bunch of data in it. Wouldn't it be relatively easy for a malicious client to run an alternate version of my program, that could do potentially destructive actions to my data(such as…
dessalines
  • 6,352
  • 5
  • 42
  • 59
2
votes
1 answer

Is it possible to include peers in trackerless torrent file?

Can I generate torrent file that already has peers inside without using trackers, open trackers, dht and peer exchange? If yes, how can I do that? The reason I want to do that, is that I want to get peers by DHT and pass that peers to another…
POMATu
  • 3,422
  • 7
  • 30
  • 42
2
votes
1 answer

libtorrent python dht example

I am trying to implement a p2p application. I want to use DHT in libtorrent library. I would like to use python for p2p application. Can anyone suggest an example dht libtorrent python implementation or some api that I can use?
Tapan Prakash
  • 773
  • 8
  • 7
2
votes
1 answer

How to connect to the DHT bootstrap nodes?

I'm making a torrent client and I need to include DHT connection to my program. I have found some static DHT nodes, but I cannot get connected to any of them. I'm sending a Ping query with my port and the torrent info hash to this address, but I'm…
woland
  • 157
  • 2
  • 12
2
votes
1 answer

Which DHT algorithm to use (if I want to join two separate DHTs)?

I've been looking into some DHT systems, specially Pastry and Chord. I've read some concerns about Chord's reaction to churn, though I believe that won't be a problem for the task I have at hands. I'm implementing some sort of social network service…
webdreamer
  • 2,359
  • 3
  • 23
  • 30