Net::BitTorrent::DHT - Kademlia based Distributed Hash Table
new ( [ARGS] )
Creates a Net::BitTorrent::DHT object. This constructor should not be used directly.
Net::BitTorrent::DHT
add_node ( { [...] } )
Adds a single node to the routing table. Expects a hashref with the following keys:
ip
The hostname/IP address of the remote node.
port
The port the remote node has open for DHT.
This is an advanced method and should not (normally) should not be used.
node_id ( )
Get the Node ID used to identify this client in the DHT swarm.
nodes ( )
Returns a list of nodes from the routing table in a format suitable for handing off to add_node( ) one by one.
as_string ( [ VERBOSE ] )
Returns a 'ready to print' dump of the object's data structure. If called in void context, the structure is printed to STDERR. VERBOSE is a boolean value.
STDERR
VERBOSE
In this alpha, there are a number of places where I break away from the specification. These will all be fixed in a future version.
Eats memory like whoa.
The routing table is flat.
Boots from router.bittorrent.com.
While bandwidth to/from DHT nodes will probably never be limited like other traffic, in the future, it will be taken into account and "drained" from the rate limiter. If there's a burst of DHT traffic, the peer traffic may be limited to avoid the total to exceed the global limit.
I have used a number of references for implementation second opinions:
http://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf
http://www.bittorrent.org/beps/bep_0005.html
http://getright.com/torrentdev.html
Sanko Robinson <sanko@cpan.org> - http://sankorobinson.com/
CPAN ID: SANKO
Copyright (C) 2008 by Sanko Robinson <sanko@cpan.org>
This program is free software; you can redistribute it and/or modify it under the terms of The Artistic License 2.0. See the LICENSE file included with this distribution or http://www.perlfoundation.org/artistic_license_2_0. For clarification, see http://www.perlfoundation.org/artistic_2_0_notes.
When separated from the distribution, all POD documentation is covered by the Creative Commons Attribution-Share Alike 3.0 License. See http://creativecommons.org/licenses/by-sa/3.0/us/legalcode. For clarification, see http://creativecommons.org/licenses/by-sa/3.0/us/.
Neither this module nor the Author is affiliated with BitTorrent, Inc.
To install Net::BitTorrent, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Net::BitTorrent
CPAN shell
perl -MCPAN -e shell install Net::BitTorrent
For more information on module installation, please visit the detailed CPAN module installation guide.