Distribución de Software a través de P2P

Intentando actualizar mi versión de EasyPHP, me encontré con el problema de que sus servidores de descarga no estaban funcionando correctamente, por lo que envié un mensaje en sus foros de soporte, donde además sugería la posibilidad de distribuir el programa a través de una red P2P como la red de eDonkey, frente a lo cual recibí, en primer lugar, una respuesta bastante cortante:

No, it’s NEVER a good idea to distribute executables throuht (sic) any p2p.

¿Es en verdad tan mala idea distribuir programas a través de redes P2P? En lo personal, creo que no es de ninguna manera una alternativa que debería ser descartada con tanta determinación, y que la respuesta depende en gran medida del cliente o de la red que consideremos para la distribución. En general, creo que siempre existirán algunos puntos a favor que deben ser considerados, como el ahorro de espacio de almacenamiento, y principalmente, el ahorro de ancho de banda, el que en vez de correr por parte de los desarrolladores, vendría por parte de los mismos consumidores (es, de hecho, la razón por la cual BitTorrent manifiesta haber sido desarrollado). Junto a esto, siempre también existe un punto en contra muy importante, el cual es el riesgo de convertirse en propagadores de virus informáticos, como de hecho ha sucedido con la red FastTrack (la de KaZaA, iMesh y el desaparecido KaZaA Lite o K++), que se han convertido en un caldo de cultivo para virus. Sin embargo, la solución viene de la mano de las redes que utilizan el hash para identificar a los archivos. Un hash es, según una definición de Google:

Una fórmula matemática que convierte un mensaje de cualquier longitud en una cadena única de longitud fija de digitos (típicamente 160 bits) conocido como “message digest” que representa al mensaje original. Un hash es una función de una vía – esto es, es imposible revertir el proceso para determinar el mensaje original. También, una función de hash no producirá el mismo “message digest” desde dos inputs diferentes (traducido de A Glossary of common PKI terms)

En otras palabras, un hash es una representación única de un archivo. La importancia de esto, es que en definitiva permite comprobar que el archivo que se transmite sea realmente el que se pretende transmitir. Las redes eDonkey (la de eMule) y Gnutella2 (de Shareaza) usan hash para comprobar la integridad de los archivos transferidos, o sea, para asegurar la calidad de la transmisión, asegurando a la vez que el archivo que descargamos es una copia exacta del original. Otra de las funcionalidades del hash es que se convierte entonces en una excelente forma de buscar un archivo exacto. Con estas propiedades, creo que las redes P2P se convierten en una excelente alternativa para la distribución de archivos, o al menos, una opción a considerar (sobre todo para el software libre).

Originalmente posteado el 18 de diciembre del 2003