README.md - libdht - A simple helper library for distributed hash tables.
(HTM) git clone git://r-36.net/libdht
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
README.md (1083B)
---
1 # libdht - a kadmelia helper function library
2
3 The algorithm was taken from [here](https://gist.github.com/240988).
4
5 ## Kadmelia protocol
6
7 * [good description](http://xlattice.sourceforge.net/components/protocol/kademlia/specs.html)
8 * [original paper](http://xlattice.sourceforge.net/components/protocol/kademlia/references.html#maymo02)
9
10 ## Installation
11
12 make
13 make install
14
15 ## How to use it
16
17 #include <dht.h>
18
19 dht_t *dht;
20 dhtnode_t *node;
21 char id[IDLENGTH];
22 llist_t *llist;
23
24 dht = dht_new("localhost");
25
26 /*
27 * Set some node, which appeared on the network.
28 */
29 node = dhtnode_new();
30 dhtnode_setid(node);
31 dhtnode_setaddr("127.0.0.1:7689");
32 dht_update(dht, node);
33 dhtnode_free(node);
34
35 /*
36 * Get at maximum five nodes next to the target node
37 */
38 dhtnode_setid(node);
39 dhtnode_setaddr("8.8.8.8:6669");
40 llist = dht_getclosest(dht, node, 5);
41 forllist(llist, elem)
42 dosomething(((dhtnode_t *)elem->data)->addr);
43 dhtnode_free(node);
44
45 /*
46 * Cleanup.
47 */
48 dht_free(dht);
49
50 ## Thread safety
51
52 This library is not thread safe. The critical part is the list hand-
53 ling.
54