Quoting Alex <[email protected]> from ml.softs.gtk-gnutella.devel: :Could you please explain what DHT is with respect to gtkg? I'm only :familiar with the acronym from BitTorrent where it refers to the :distributed hash tracker for decentralised trackers (IIRC).
Sure. DHT stands for Distributed Hash Table. In Gnutella, the DHT is used to store alt-locs (keyed by SHA-1) and push-proxies (keyed by the GUID of the firewalled servent). This allows one to resolve source-less magnets. As of today, there are only two vendors supporting the DHT: LimeWire and gtk-gnutella. The current implementation in GTKG is not complete though, in that GTKG can only join the DHT and query it, but it does not publish information yet. Another limitation of the current implementation is that you need to fully join the DHT structure to query it, whereas LimeWire has a degraded implementation for nodes with too little bandwidth. Due to LimeWire's poor choice of timeout constants, there is a fairly high bandwidth price to pay to use the DHT. The forthcoming 0.96.6 release of GTKG will not enable the DHT by default, due to the fact that the implementation is still incomplete. However, all the features that have been implemented are fully functional: * THe DHT implementation is following the LimeWire specifications regarding message structure, table architecture and protocols (Kademlia is the underlying DHT architecture and design). * The DHT auto-bootstraps on the network, thanks to the relatively dense LimeWire network.. * The DHT is capable of storing data locally, if you are not firewalled, and naturally providing this data back to the nodes who ask for it. * The DHT code can look for ALOC (alt-locs), to find other sources sharing a given file, and PROX (push-proxies) to be able to locate current push-proxies for a firewalled servent, considerably raising the chance that you can download from a firewalled (LimeWire) servent. By default data stored in your node is kept in memory, but by setting the property "dht_storage_in_memory" to FALSE, data will be kept on disk. The reason this is not done by default is that the current implementation is not handling disk-full conditions and GTKG is likely to crash if the disk where ~/.gtk-gnutella lies becomes full. Raphael ------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ gtk-gnutella-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/gtk-gnutella-devel
