Archivo de la categoría: Cube Platform

Sistema de búsqueda distribuido sobre Pastry overlay p2p.

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. Lee el resto de esta entrada

Encontrar nodos en una red tipo Gnutella.

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.

Queda mucho camino

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 07.12.20: sigue la maldición de los nodos saturados

Crei que se había corregido pero no. Los nodos se saturan y las descargas/subidas quedan colgadas. Me pondré a corregirlo y en cuanto tenga solución lanzo una actualización.

nueva versión de madagascar: 07.12.20

He corregido algunos problemas en la parte del gestor de tareas y en las actualizaciones en el common Component. Perdonad todos lios de versiones pero hasta que no tenga algo estable estaré asi.

Madagascar source code.

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.

Chicos: nueva versión de madagascar 07.12.15 beta 0

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.

nuevo instalador

Ya he solucionado el tema del instalador, creando ahora accesos directos en Linux y Windows. Para ello he cambiado de IZPack a BitRock Installer.

Voy a corregir el otro problema que deja las descargas colgadas. En cuanto lo solucione lo subo a la web.

Ya he habilitado el foro para madagascar

He montado el foro en sourceforge y ya podeis acceder para dejar todo tipo de comentarios, sugerencias etc.

Ya podeis descargar madagascar: un nuevo p2p sin servidores centráles y con anonimato

madagascar

Por fin!!! Ahora si, ya está la primera beta. Para descargarlo solo teneis que entrar en la pagina oficial y descargarlo. Después ir a la zona de documentación y ver como se instala y configura. Sencillo!!!!.

Voy a poner mi maquina como nodo inicial, pero cualquiera que conecte puede servir para conectar a otros usuarios con simplemente pasarle su IP. Bueno, yo tendré mi pc 12h apróximadamente encendido para que conecteis y empecemos a formar un gran anillo. Para ello en los parámetros de conexión debeis poner hipercube.servebeer.com y puerto destino 8429. Como puerto local poned uno que tengais abierto tipo tcp/udp y dirigido a vuestro PC. OTRA COSA: en filezone07 Ya hay subidos musica y programas, para que empeceis a descargar. Como soy el primer nodo, todos estan en mi pc pero a medida que descargueis se iran repartiendo. DISFRUTAD, QUE NOSOTROS NO TENEMOS CANON JEJEJEJ.

Seguir

Get every new post delivered to your Inbox.