archivo

Cube Platform

Una de las necesidades más importantes en un sistema p2p puro, en el que todos los nodos desempeñan el mismo papel, es poder encontrar los que se necesita en el menor tiempo posible. Al fin y al cavo, no sirve de nada poseer datos distribuidos si no se puede acceder a ellos. En redes como Gnutella, que emplean el método de la inundación, la búsqueda es sencilla. Un nodo A necesita un contenido, por ejemplo un pdf que hable sobre sistemas linux. El usuario escribe un patrón de búsqueda: “sistemas Linux”. La cadena de búsqueda es enviada por el nodo A a todos sus contactos, y cada uno de estos la reenvia a los suyos… etc. Esto tiene que parar, pues la profundidad de un arbol de búsqueda de este tipo puede ser enorme y el tráfico que genera diréctamente proporcional. El número de saltos máximo para la búsqueda viene dado por el hops-to-lives. Cada nodo, al recibir la petición, realiza una exploración en su contenido y contestará al nodo A con los datos que concuerden con la cadena de búsqueda o parte de ella. Read More

Madagascar nos es una red que se base en el protocolo Gnutella ni variantes, pero posee el mismo problema que este tipo de redes y en general cualquier descentralizada. Una opción es elaborar una lista con nodos que se suponen que tienen disponibilidad las 24h del dia y los 365 dias del año, pero no es fiable. Para Madagascar propongo algo similar pero más automatico: La creacion de un servidor que almacene una lista de nodos vivos, que se va editando a medida que algunos nodos caen, y que en caso de no existir nigun nodo, se cree automáticamente el anillo. Para ello es necesario elaborar un protocolo que permita el intercambio de mensajes para mantener dicha lista, pemitiendo comunicar acciones como que el nodo ha desaparecido, eliminandose automáticamente de la lista y pasando al siguiente. La lista de nodos se mantiene en exclusivamente en memoria, de manera que cerrado el servidor no queda rasto de dicha lista. La creación de este sistema implica modificar la forma en que madagascar conecta, no siendo necesario indicar de forma explícita la creación del anillo.

Cada dia encuentro nuevos fallos en madagascar: logico, estamos en los primeros lanzamientos y es ahora cuando estoy teniendo la oportunidad de verlo funcionar realmente. En estos momentos estamos reestructurando codigo, incluso estamos usando AOP: programación orientada a aspectos. Además de la reestructuración, estoy haciendo lo posible con los profiler para detectar las zonas en las que hay un exceso de CPU. Hay que tener en cuenta que por cada descarga se lanza un hilo, y en cada ciclo tiene un periodo de sleep. Por supuesto, hay que añadir más sleep si la cola de subida o bajada está llena.

Otro punto importante es el anonimato: En el foro me pasaron artículos acerca del anonimato en las redes Pastry. Es importante este aspecto por lo que haré todo lo posible por incorporar todas las novedades referentes a este tema.

El sistema de búsqueda de archivos en un sistema p2p es muy importante. Tengo pensadas dos opciones: una centralizada y otra descentralizada y montada sobre Pastry. La segunda es basada en el sistema de búsqueda que implementa la red GhostShare, que se basa en aplicar un resumen, mediante SHA-1 por ejemplo, a las palabras clave e insertando en la DHT una n-tupla con la información de los datos que se suben. Aunque parece un poco lioso, podeis ver el articulo aqui.

Proporciono un breve To-do con lo que creo que es más importante en este momento:

  • Estabilizar madagascar.
  • Controlar y reducir los recursos de CPU.
  • Reestructurar el código y hacerlo más eficiente.
  • Activar el cifrado de archivos y emplear socket seguros.

Madagascar es una aplicación desarrollada en Java que es open source. La libero bajo los terminos de la licencia GPL v2. Algunas personas preguntan ¿porqué no la v3? Simplemente porque aun no la he leido.

El proyecto lo desarrollo con NetBeans de manera que en los fuentes teneis el proyecto creado, listo para  compilar y funcionar.

Por fin los bug que encontré se han corregido. Sobretodo el que dejaba las colas de subidas o descargas colgadas. La nueva versión viene con el nuevo instalador que crea los iconos en el escritorio. La acabo de subir para Linux, la de windows estará para mañana o pasado. No tengo ese sistema instalado. Mñn subire la instalació multiplataforma.

Bug corregidos:

  • Corregido el problema del cierre fulminante: Si cerrabas la aplicacion
    usando el boton de cierre de la ventana, salia sin almacenar los cambios
    y sin cerrar el anillo.
  • Habilitadas las funciones de subir y bajar archivo en el menu servicio.
  • Corregido el problema de los track erroneos negativos.
  • Corregido el problema de el bloqueo de colas.

Gracias!!! y a disfrutar.

PD: Para instalar, simplemente instalar sobre la anterior. No se eliminaran los fragmentos compartidos.

A %d blogueros les gusta esto: