Para empezar, un proyecto relacionado con las redes de distribución P2P (peer-to-peer). Los actuales sistemas de distribución P2P presentan varios problemas:

Sistema p2p tradicional.

  • Hay demasiada dependencia de los seeds.
  • Si la semilla se desconecta antes de compartir completamente el fichero, los clientes nunca podrán completarlo.
  • La llegada de nuevos clientes ralentiza la descarga de los clientes más antiguos.
  • Los nodos heterogéneos no interactúan bien entre sí
  • Aquellos bloques del fichero que no se hayan compartido lo suficiente, son difíciles de obtener.

El proyecto Avalanche surge con el objetivo de proporcionar un sistema rápido y robusto de distribución P2P, que solucione los anteriores problemas. Para ello, Avalanche se sirve de algoritmos de codificación, de tal forma que cada pieza (bloque) codificada posea el “ADN” de todas las piezas que forman el fichero. Así, un cliente podría utilizar cualquiera de estas piezas codificadas para sustituir otra pieza que aún no haya descargado. Estas piezas codificadas son creadas mediante ecuaciones lineales que tienen en cuenta al resto de piezas del fichero. Para poder recontruir el fichero original, es necesario que el cliente descargue un número de piezas suficiente, y que resuelva el conjunto de ecuaciones matemáticas utilizadas para su codificación. De esta manera, se acelera la velocidad de descarga de los ficheros, ya que no es necesario descargar todas sus piezas, y también se reduce la dependencia del cliente de las semillas.

Con Avalanche, no es necesario que los nodos continuen sirviendo el fichero después de finalizar su descarga para ayudar a otros nodos, el rendimiento de la red continúa siendo el mismo, y se reduce la carga del servidor.

Otra característica a destacar es que este sistema de distribución permitirá identificar de forma única al proveedor de los contenidos, evitando así la descarga de piezas no autorizadas. Y asegura que el contenido descargado en cada cliente es exactamente el mismo que el compartido por el proveedor.

Todo esto sin la necesidad de conocer información de quién tiene un determinado archivo, ni de la topología de la red o ancho de banda disponible.

Avalanche ha sido desarrollado en el Laboratorio Microsoft Research en Cambridge por Pablo Rodríguez Rodríguez, el único español que está trabajando como investigador en este laboratorio, y Christos Gkantsidis.

Más información sobre Avalanche aquí.