Aunque los enlaces magnet se pueden utilizar en diversos contextos, son especialmente útiles en redes de intercambio de archivos entre pares porque permiten hacer referencia a recursos sin necesidad de un host disponible de forma continua y pueden ser generados por cualquiera que ya tenga el archivo, sin necesidad de que una autoridad central los emita. Esto hace que sean populares para su uso como términos de búsqueda "garantizados" dentro de la comunidad de intercambio de archivos , donde cualquiera puede distribuir un enlace magnet para garantizar que el recurso recuperado por ese enlace sea el deseado, independientemente de cómo se recupere.
Historia
El estándar para las URI Magnet fue desarrollado por Bitzi en 2002, en parte como una "generalización neutral respecto de proveedores y proyectos" de los esquemas URI ed2k:y freenet:utilizados por eDonkey2000 y Freenet , respectivamente, e intenta seguir los estándares URI oficiales de la IETF lo más fielmente posible. BitTorrent introdujo el protocolo en 2020 como parte de sus cambios en BitTorrent v2. [1]btmh:
Formato
Las URI magnéticas constan de una serie de uno o más parámetros, cuyo orden no es significativo, formateados de la misma manera que las cadenas de consulta que normalmente terminan las URL HTTP .
Se admiten los siguientes parámetros: [2] [3]
La norma también permite parámetros experimentales específicos de la aplicación, que deben comenzar con "x". [ cita requerida ]
Tema exacto (xt)
El parámetro xt especifica el URN para un protocolo p2p determinado. Su propósito es proporcionar un parámetro de búsqueda para encontrar los metadatos del torrent. Esto actúa efectivamente como un reemplazo de un archivo .torrent, que contiene los metadatos del torrent, al buscar en la red p2p (usando el URN) esos metadatos. Cada protocolo maneja un URN de manera única; por ejemplo, xt=urn:btih:FFC7E738EAA4CD4ECF51EC6FD669C6CDE2C281A8usa el btih (protocolo BitTorrent v1), por lo que un cliente BitTorrent puede tomar el hash y buscar los metadatos del torrent en el DHT de BitTorrent. [6] En el caso del DHT, el cliente busca a través de un conjunto de nodos conocidos previamente y solicita los metadatos para un infohash; esos nodos harán la misma solicitud a otros nodos conocidos hasta que finalmente se encuentre un enjambre y se devuelva.
xt también permite una configuración de grupo. Se pueden incluir varios archivos agregando un número de conteo precedido por un punto (".") a cada parámetro de enlace. [ cita requerida ]
magnet:?xt.1=[ URN of the first file]&xt.2=[ URN of the second file]
No son URN formales para enlaces Magnet, dichas sumas hash son utilizadas por eDonkey2000 para restaurar y controlar la integridad de los archivos descargados y ya descargados.
Se trata de sumas hash SHA-1 codificadas en hexadecimal de las secciones "info" de los metarchivos de BitTorrent, tal como las utiliza BitTorrent para identificar archivos o conjuntos de archivos descargables. Para lograr compatibilidad con versiones anteriores de los enlaces existentes, los clientes también deben admitir la versión codificada en Base32 del hash. [3]
Algunos clientes requieren Base32 de info_hash (por ejemplo, Vuze ).
Hash de información de BitTorrent v2 (BTMH)
BitTorrent v2 reemplaza el hash SHA-1 obsoleto por un hash de información SHA-256 . El hash de información v2 tiene un nuevo prefijo ( btmh) para permitir que los torrents puedan participar en enjambres tanto v1 como v2 [7]
xt=urn:btmh:[1220: (v2 prefix) BitTorrent Info Hash (Hex) ]
Hay dos tipos de enlaces de descarga que un enlace Magnet puede incluir como fuente directa o de respaldo.
"como" ("fuente aceptable")
La mayoría de los clientes tratan "as" como igual al token "xs" cuando se trata de prioridad, e ignoran el tiempo de espera antes de contactar las fuentes "as" indicadas por las especificaciones.
URL web direccionable por contenido
Este tipo de enlace basado en RFC 2168 lo utilizan tanto gnutella como aplicaciones G2 . [8]
xs=http://[Client Address]:[Port of client]/uri-res/N2R?[ URN containing a file hash ]
Enlace a un centro DirectConnect para buscar fuentes para un archivo
Este tipo de enlace conecta a un cliente DirectConnect inmediatamente al concentrador en cuestión.
xs=dchub://[hub address]:[hub port]
Referencia a un caché de origen basado en web para un archivo en Gnutella2
En este caso, el enlace incluido no apunta a una dirección IP de cliente o a una fuente directa, sino a un caché de origen que almacena las direcciones IP de otros clientes que se ponen en contacto con él para descargar el mismo archivo. Una vez que un cliente se conecta al caché, se le proporcionan direcciones IP de fuentes alternativas, mientras que su propia dirección IP se almacena dentro del caché y se reenvía al siguiente que se conecta al caché. Este sistema funciona de forma similar a un rastreador de BitTorrent .
Para opciones informales experimentales y autocomplementarias, x.se puede utilizar el prefijo seguido de una letra de sufijo elegida. Se garantiza que estos nombres nunca se estandarizarán.
x.[name of the new parameter]=[data of the new parameter (URL encoded)][ cita requerida ]
^ "BitTorrent v2". BitTorrent. Archivado desde el original el 30 de octubre de 2020. Consultado el 7 de septiembre de 2020 .
^ ab "magnet-test.c en trunk/libtransmission; Revisión 9531". Transmisión. Archivado desde el original el 17 de febrero de 2012. Consultado el 4 de febrero de 2012 .
^ abcd "Propuesta de mejora de BitTorrent 9: extensión para que los pares envíen archivos de metadatos". bittorrent.org (publicado el 31 de enero de 2008). 26 de marzo de 2017. Archivado desde el original el 10 de octubre de 2022. Consultado el 4 de noviembre de 2022 .
^ "libtorrent/magnet_uri.cpp en 64817e0e8793d0875fc10245de52ffb2540a223d · arvidn/libtorrent". libtorrent . Archivado desde el original el 2022-11-04 . Consultado el 2022-11-04 – a través de GitHub .
^ "Propuesta de mejora de BitTorrent n.º 53: extensión URI Magnet: seleccione índices de archivos específicos para descargar". BitTorrent.org . 2017-06-06. Archivado desde el original el 2022-10-10 . Consultado el 2022-11-04 .
^ "bep_0005.rst_post". bittorrent.org . Consultado el 12 de mayo de 2022 .
^ "BitTorrent v2". libbittorrent.org . libbittorrent. 2020-09-07. Archivado desde el original el 2022-10-22 . Consultado el 2022-11-05 .
^ Chapweske, Justin (29 de noviembre de 2001). "Extensiones HTTP para una Web direccionable por contenido". www-talk . W3C. Archivado desde el original el 28 de julio de 2011 . Consultado el 7 de noviembre de 2010 .
^ "v1.74 Core Improve: support ws parameter in Magnet URI, to add web seed" (Mejora del núcleo v1.74: compatibilidad con el parámetro ws en la URI de Magnet para agregar una semilla web). bitcomet . Archivado desde el original el 2021-04-10 . Consultado el 2021-04-07 .
^ "magnet.c en trunk/libtransmission; Revisión 9979". Transmisión. Archivado desde el original el 17 de febrero de 2012. Consultado el 4 de febrero de 2012 .
^ "magnet.c en libtransmission: Commit 5c3fd1b5ccc3a8c4ab68e2c56861df31dd1c720a". Transmisión. Archivado desde el original el 4 de septiembre de 2021. Consultado el 4 de septiembre de 2021 .
Enlaces externos
Proyecto Magnet-URI en SourceForge , una definición temprana del formato (última actualización en 2002)
Utilidad de suma de comprobación CHK Freeware con soporte para SHA1-Base32 y ED2K
RHash en SourceForge , una herramienta de línea de comandos de código abierto que puede calcular enlaces magnéticos