Archivo torrent | ||
---|---|---|
Información general | ||
Extensión de archivo |
.torrent | |
Tipo de MIME |
application/x-bittorrent | |
Extendido de | Bencode | |
Estándar(es) | BEP-0003[1] | |
Formato abierto | ? | |
Un archivo torrent almacena metadatos sobre archivos y carpetas que se van a distribuir y van a ser usados por un cliente de BitTorrent. Está definido en la especificación de BitTorrent.[1] Simplemente, un torrent es información acerca de un archivo de destino, aunque no contiene información acerca del contenido del archivo. La única información que contiene el torrent es la localización de diferentes piezas del archivo de destino. Los torrents funcionan dividiendo el archivo de destino en pequeños fragmentos de información, localizados en un número ilimitado de hosts diferentes. Por medio de este método, los torrents son capaces de descargar archivos grandes rápidamente. Cuando un cliente (el receptor del archivo de destino) ha iniciado una descarga por torrent, los fragmentos del archivo de destino que son necesitados pueden ser encontrados fácilmente, basado en la información del torrent. Una vez que todos los fragmentos son descargados, el cliente puede ensamblarlos en una forma utilizable. Nota: la descarga debe ser completada antes de que pueda ensamblarse en una forma utilizable.
Un archivo torrent contiene las URL de muchos trackers[2] y la integridad de los metadatos de todos los fragmentos. También puede contener metadatos adicionales definidos en extensiones de la especificación de BitTorrent.[3] Estos son conocidos como propuestas de mejora de BitTorrent. Ejemplos de tales propuestas incluyen metadatos para informar de quién ha creado el torrent y cuándo.
Los archivos torrent utilizan normalmente la extensión .torrent.
Un archivo torrent es un diccionario Bencode con las siguientes claves:
Todas las cadenas deben ser codificadas con UTF-8.
Estas extensiones de la especificación BitTorrent están en consideración para estandarizarse. Los archivos torrent usan la extensión .torrent.
BEP-0005[4] extiende BitTorrent para soportar tablas de hash distribuido.
Un diccionario torrent sin trackers no tiene la clave announce. En lugar de eso, un torrent sin trackers tiene la clave nodes:
{ ... 'nodes': [["<host>", <port>], ["<host>", <port>], ...] ... }
Por ejemplo,
'nodes': [["127.0.0.1", 6881], ["your.router.node", 4804]]
La especificación recomienda que nodes "debería establecerse a los K nodos más cercanos en la tabla de ruta del cliente generada por el torrent. Alternativamente. la clave se podría establecer a un buen nodo conocido como uno operado por la persona que generó el torrent."
BEP-0012[5] extiende el soporte de BitTorrent a múltiples trackers.
Una nueva clave, announce-list, es ubicada en la parte superior de la lista (por ejemplo con announce y info)
... }
BEP-0017[6] extiende el soporte de BitTorrent a HTTP seeds.
Una nueva clave, httpseeds, es ubicada en la parte superior de la lista (por ejemplo con announce y info). El valor de esta clave es una lista de las direcciones web donde el torrent puede ser recuperado:
{ ... 'httpseeds': ['http://www.site1.com/source1.php', 'http://www.site2.com/source2.php'] ... }
BEP-0027[7] extiende el soporte de BitTorrent a torrents privados.
Una nueva clave, private, es ubicada en el diccionario de info. El valor de esta clave es 1 si el torrent es privado:
{ ... 'private': 1 ... }
BEP-0030[8] extiende el soporte de BitTorrent a árboles de hash.
Un archivo torrent que use árboles hash no tiene la clave pieces en la lista info. En lugar de eso, tal archivo torrent tiene la clave root hash en la lista info. El valor de esta clave es el hash raíz del árbol de hash:
{ ... 'info': { ... 'root hash': e6bdebcc5d55da0a77f4bb1b57d88de794838577 ... } ... }
ARCHIVOS MÚLTIPLES, aquellos archivos que conservan los documentos de varias instituciones
Así es como un archivo torrent sin Bencode (con piece length 256KiB = 262144) para dos archivos, 111.txt & 222.txt, podría verse:
{'announce': 'http://tracker.site1.com/announce' (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última)., 'info: { 'name': 'directoryName', 'piece length': 262144, 'files': [ {'path': '111.txt', 'length': 111}, {'path': '222.txt', 'length': 222} ], 'pieces': '6a8af7eda90ba9f851831073c48ea6b7b7e9feeb...8a43d9d965a47f75488d3fb47d2c586337a20b9f' } }