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
3
votes
1 answer

How to find nodes with exact info_hash in Bittorrent DHT?

In the documentation of DHT protocol for bittorrent,it is given that get_peers method is used for finding nodes with given info_hash.It says that if response contains "values" key,the queried node has returned the information about nodes containing…
3
votes
1 answer

Why I reviced Compact node info in find_node response message is not 26 bytes?

In BEP5 said Contact information for nodes is encoded as a 26-byte string. Also known as "Compact node info" the 20-byte Node ID in network byte order has the compact IP-address/port info concatenated to the end. and When a node receives a…
wang ming
  • 199
  • 2
  • 9
3
votes
1 answer

What is BigUp / libtrt?

I've been doing a little DHT scraping to figure out the popularity of various BitTorrent clients. In the results I've collected, some of the most common version strings are from a client identifying itself as "BigUp", but I haven't been able to find…
slang
  • 626
  • 7
  • 26
3
votes
1 answer

Is a DHT (kademlia) able to reliably store chains of values?

I'm looking at implementing a DHT where the data items are chained by having a successor address added to the values stored, if each node can have one of three ordered states: Empty -> Data -> Data and Successor Address will all peers get a…
Baxter
  • 2,416
  • 1
  • 22
  • 29
3
votes
4 answers

Distributed Hashmap in java or distributed information storage

Does someone knows a good java framework for distributed hashmaps (DHT)? Some time ago I worked with Overlay Weaver, but a good documentation is missing here, so I only used it for an prototype with ugly hacks..., but now I need reliable code. Or…
heaphach
  • 1,492
  • 1
  • 20
  • 44
3
votes
1 answer

Algorithms for building a peer to peer search engine with distributed database

I'm looking to build a distributed torrent search engine. I'm aware of Distributed Hash Tables for addressing nodes in peer to peer networks. I don't fully understand how each node acquires a globally unique ID though. What algorithms and…
Tom Busby
  • 1,319
  • 2
  • 12
  • 25
3
votes
2 answers

Easiest way to find the correct kademlia bucket

In the Kademlia protocol node IDs are 160 bit numbers. Nodes are stored in buckets, bucket 0 stores all the nodes which have the same ID as this node except for the very last bit, bucket 1 stores all the nodes which have the same ID as this node…
Martin
  • 12,469
  • 13
  • 64
  • 128
3
votes
3 answers

How p2p search engines could prevent corruption of distributed index by malicious peers?

As a hobby I'm writing simple and primitive distributed web search engine and it occurred to me it currently has no protection against malicious peers trying to skew search results. Current architecture of the project is storing inverse index and…
Moonwalker
  • 2,180
  • 1
  • 29
  • 48
3
votes
3 answers

The token of announce_peer in DHT

In http://www.bittorrent.org/beps/bep_0005.html, the announce_peer query needs a token which has the require ,"the "token" received in response to a previous get_peers query". Does it mean that if node A has never send a get_peer query to node B,…
lgbo
  • 221
  • 3
  • 14
3
votes
2 answers

The most efficient DHT

What is the most efficient DHT? I am looking for name and/or some kind of implementation or related work, but I am not looking for the one that is most used. Efficient in terms of CPU execution cycles, load balance, and memory consumption.
mtasic85
  • 3,905
  • 2
  • 19
  • 28
3
votes
2 answers

Using DHT to lookup stuff. SHA-1. Chord protocol

I'm trying to implement the Chord protocol in order to quickly lookup some nodes and keys in a small network. What I can't figure out is ... Chord cosideres the nodes and keys as being placed on a cirlce. And their placement dictated by the hash…
AndreiBogdan
  • 10,858
  • 13
  • 58
  • 106
3
votes
1 answer

How to get Monotorrents DHT to work?

Iam trying to get the dht implementation of monotorrent to work but i just cant seem to find any peers. ive tried most of the examplecode code availeble on the net like the testclient and dhttest. I have tried with several diffrent…
3
votes
1 answer

Routing table creation at a node in a Pastry P2P network

This question is about the routing table creation at a node in a p2p network based on Pastry. I'm trying to simulate this scheme of routing table creation in a single JVM. I can't seem to understand how these routing tables are created from the…
HungryTux
  • 355
  • 3
  • 14
3
votes
2 answers

How to update entries in a DHT

I know how data is (in theory) stored in a DHT. However, I am uncertain as to how one might go about updating a piece of data associated with a key. Is this possible? Also, how are conflicts handled in a DHT.
nykac
  • 49
  • 3
2
votes
1 answer

Is it possible to create a DHT without any static IPs?

I want to use a distributed hash table in an application but I don't want to have a central server as entry point. Is there a way to implement this?
Lenar Hoyt
  • 5,971
  • 6
  • 49
  • 59