Estas aquiContenido / Madagascar: un nuevo p2p descentralizado y anónimo

Madagascar: un nuevo p2p descentralizado y anónimo


Porlenny_vpg- Publicado el21 Diciembre 2007

Hola amigos de Kriptópolis. Quería presentaros de forma breve madagascar, un nuevo sistema p2p descentralizado y con anonimato, que permite compartir datos entre distintos nodos. Este es un proyecto en el que llevo trabajando varios meses y del que ahora por fin tengo la primera beta.

Madagascar se basa en una red Pastry, un overlay p2p que permite la inserción y recuperación de mensajes en orden logarítmico. El anonimato se consigue porque cada mensaje salta de un nodo a otro hasta llegar al destino. Debido a que no hay servidores centrales, sigue la misma filosofía que las redes gnutella en lo referido a conexión: necesitamos conocer un nodo para poder conectar a una de estas redes, que yo llamo anillo. Otra cosa importante es el cifrado de los datos. Aunque no está habilitado, sí está implementado (AES-128) y será habilitado en la próxima versión...

Madagascar forma un gran disco duro virtual en el que todos los nodos colaboran y es el propio sistema el que administra el disco duro que compartimos. Ahora no es el usuario el que elige qué compartir. Si un usuario desea añadir contenido al anillo, simplemente lo sube y cuando finalice puede distribuir un pequeño archivo resultante para que los demás puedan acceder a él. La descarga es similar, usando el archivo anterior para poder encontrar las partes del contenido. Hasta aquí todo más o menos común. Omemo es similar, pero mi sistema implementa también permisos en los archivos y restricciones de acceso a un anillo. Aunque esto no está implementado en la primera beta, estará en posteriores. Cualquier usuario puede crear un anillo, y puede elegir que sea privado, en cuyo caso se hace uso de certificados para determinar si un nuevo usuario puede formar parte del anillo. Esto se consigue mediante el empleo de una autoridad certificadora (CA) común a todos los nodos del anillo.

Otro aspecto importante es la persistencia de los datos; puedes elegir entre una persistencia TOTAL, con lo que se garantiza que los datos estarán "siempre" disponibles, o una persistencia TEMPORAL, con lo que consigues que el contenido no descargado en 15 días sea eliminado del anillo.

Los datos estarán siempre disponibles si se cumplen unas condiciones: Cada fragmento de archivo tiene un factor de réplica, por defecto a 3. Eso quiere decir que cada fragmento se duplica 3 veces y será almacenado en los 3 nodos más cercanos al mismo. El fragmento dejaría de estar disponible SÓLO SI LOS 3 SE CAEN A LA VEZ. Si caen sólo dos, cuando se descargue el fragmento, el sistema detecta que solo hay una copia y la mandará a los 2 nodos más cercanos en ese momento.

Si queréis probarlo:

http://cube-grid.sourceforge.net/

La web está en contrucción.

Para ponerlo en marcha necesitáis los siguientes parámetros:

Host: hipercube.servebeer.com (Mi pc será una puerta de enlace, pero cualquiera puede serlo).
Puerto destino: 8429.
Puerto local: Tenéis que abriros uno tipo TCP/UDP y redirigirlo a vuestro PC.

Conectaréis con el anillo que he creado yo. Si deseáis crear otro nuevo simplemente le dáis un nombre y elegís el ámbito del mismo.

Todo el contenido que he ido subiendo está en: http://filezone07.wordpress.com/ Bajáis los fs que querais y a descargar.

Como soy el primer nodo todo el contenido está en mi PC. Por tanto tened paciencia: sólo tengo 90 Kb de subida.

Características generales:

  • Compilado para Java 1.6.
  • Multiplataforma.
  • Tabla DHT.
  • Open source (GPL v2): hoy subiré el codigo fuente.
  • Sistema de caché por nodo: reduce tráfico de red.

Espero que lo probéis y empecemos a formar una gran disco duro virtual. Gracias.

Etiquetas

Comentarios

Selecciona arriba tu forma preferida de visualizar los comentarios y pulsa el botón para guardar tu elección para próximas visitas (sólo si eres usuario registrado).

Una excelente forma de "celebrar" el triunfo del canon digital en el Congreso.

Tiene muy buena pinta, estupendo regalo de navidad ;D

Qué opinan de ella en Freenet?

Donde se publican los nodos seguros?

Eso es un tema que aun no tengo solucionado.

Entrad en el foro y proponeis soluciones. Voy a abrir el apartado de comunidad en la web.

Habría que aprender de los virus: se pueden buscar nodos simplemente haciendo intentos al azar. Primero intentando en las IPs parecidas a la propia y después en otras diferentes al azar. Al encontrar un nodo intercambiando información sobre los otros nodos descubiertos.

Personalmente me abstendría de usarlo por aquello de no colaborar con mi ancho de banda y recursos a que la gente distribuya según qué cosas de forma anónima.

Realmente se ve muy interesante, hace rato que estoy esperando un P2P con estas características.

Lo estuve probando y baja realmente bien, el problema que encontré es el consumo de procesador, por momentos utiliza hasta el 50 % de mi procesador y lamentablemente no puedo soportar eso porque utilizo la máquina para muchas otras cosas. Tratando de conectar al nodo se colgó el cliente un par de veces.

También puedo reportar que el menú de Servicio -> Bajar Archivo y Subir Archivo no responde, se debe hacer desde el botón del toolbar. Otro problema a reportar es que si el cliente se cierra inesperadamente no queda ningún registro de lo que uno estaba descargando, por lo que debe comenzar a descargar nuevamente.

Espero que les sirvan estos datos.

Me atrevo a pedir en lo posible que en la próxima versión el cliente se pueda minimizar a systray (aunque siempre se pueda con software externo).

¡Muchas gracias por el trabajo, y seguiré atento al progreso del proyecto!

Es la primera version y hay cosas que se me han olvidado :). Voy a solucionarlo para esta noche... espero.

Una cosa: el cliente puede quedar colgao, pues a veces sourceforge no responde bien durante el proceso de obtener la ip externa

Si no he entendido mal habrá archivos de enlace al estilo torrent, debería haber al menos un buscador para este tipo de archivos.

Java al ser interpretado suele consumir demasiados recursos de ordenador. Azureus es mucho más pesado que microtorrent.

Está muy bien para disponer automáticamente de una programación multiplataforma.

Pero yo lo consideraría como un comodín, para ahorrarse un desarrollo particular para cada SO.

E intentaría acercarme al excelente microtorrent en gasto de recursos. Con todas las ventajas que has mencionado, seguro que triunfa.

Para mejor proveer creo que deberías crear una versión que aunara protocolos, al estilo Ares, incluyendo el tuyo, incluyendo ciertos automatismos de subida para archivos más descargados de otras redes, de forma que incrementase la bajada de los que usen este programa combinado, e incrementase el volumen de este disco duro virtual. Pues como en todas las empresas, el alcanzar el tamaño crítico para ser exitosa es importante.

Reconozco que te pido demasiado estando aun en beta, pero espero que te lo tomes como ideas para ir desarrollando aunque no sea en la primera versión.

Compilado para Java 1.6

mmm... realmente es una lastima, java consume muchos recursos etc.

Creo que lo mejor seria c o c++ y crear un 'daemon' ligero, con una instalación limpia y pocas dependencias.

Aunque supongo que tendrás tus motivos. Ánimos y espero que llegue a funcionar masivamente.

Publicidad

Patrocinadores

Kriptópolis alojado en
Zilos-Veloxia Network

Tu mejor defensa:
Bufet Almeida

Publicidad