Net::BitTorrent::Protocol::BEP09 - Packet Utilities for BEP09: The Extention for Peers to Send Metadata Files
The purpose of this extension is to allow clients to join a swarm and complete a download without the need of downloading a .torrent file first. This extension instead allows clients to download the metadata from peers. It makes it possible to support magnet links, a link on a web page only containing enough information to join the swarm (the info hash).
This metadata extiontion uses the extention protocol to advertise its existence. It adds the ut_metadata entry to the m dictionary in the extention header handshake message. It also adds metadata_size to the handshake message (not the m dictionary) specifiying an integer value of the number of bytes of the metadata.
ut_metadata
m
metadata_size
By default, nothing is exported.
You may import any of the following or use one or more of these tag:
:all
Imports everything. If you're importing anything, this is probably what you want.
:build
Imports the functions which generate messages.
Note that there are no parser functions as the packets generated for BEP09 are simple bencoded hashes. Use the bedecoder in BEP03.
This extention is very simple; there's a single request packet type and only two possible reply packet types:
build_metadata_request( $index )
Generates an appropriate request for a subpiece of the torrent's metadata.
build_metadata_data( $index, $piece )
Generates an appropriate reply to a request query.
build_metadata_reject( $index, $piece )
Generates an appropriate reply to a request query if the requested piece is not available.
The magnet URI format is:
magnet:?xt=urn:btih:<info-hash>&dn=<name>&tr=<tracker-url>
Where info-hash is the infohash, hex encoded, for a total of 40 characters. For compatability with existing links in the wild, clients should also support the 32 character base32 encoded infohash.
info-hash
40
32
http://bittorrent.org/beps/bep_0009.html
Sanko Robinson <sanko@cpan.org> - http://sankorobinson.com/
CPAN ID: SANKO
Copyright (C) 2010-2014 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 notes on the Artistic License 2.0 for clarification.
When separated from the distribution, all original POD documentation is covered by the Creative Commons Attribution-Share Alike 3.0 License. See the clarification of the CCA-SA3.0.
Neither this module nor the Author is affiliated with BitTorrent, Inc.
To install Net::BitTorrent::Protocol, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Net::BitTorrent::Protocol
CPAN shell
perl -MCPAN -e shell install Net::BitTorrent::Protocol
For more information on module installation, please visit the detailed CPAN module installation guide.