NanoFiles P2P System

May 2, 2025 · 1 min read
Arquitectura híbrida cliente-servidor + P2P
projects

Descripción

NanoFiles es un sistema distribuido de transferencia de archivos que combina una arquitectura cliente-servidor (directorio centralizado) con comunicación peer-to-peer (P2P) para la descarga eficiente de contenido.

El sistema permite descubrir archivos, compartir recursos y descargar desde múltiples nodos simultáneamente, optimizando rendimiento y escalabilidad.

Características técnicas

  • Protocolo fiable sobre UDP: Implementación propia con control de errores, retransmisiones y validación de mensajes.
  • Transferencia P2P sobre TCP: Comunicación directa entre peers para descarga y subida de archivos.
  • Descarga paralela multihilo: División de archivos en chunks descargados concurrentemente desde múltiples peers (round-robin + sincronización).
  • Cifrado AES en comunicaciones P2P: Protección frente a sniffing y mejora de la privacidad.
  • Sistema de directorio centralizado: Indexación de archivos y peers disponibles.
  • Gestión concurrente de conexiones: Uso de estructuras thread-safe y sincronización (locks).

Extras implementados

  • Upload de archivos con control de integridad
  • Userlist distribuido
  • Configuración dinámica de tamaño de chunks
  • Cierre seguro de sockets (try-with-resources)

Resultados

Sistema funcional capaz de:

  • Publicar archivos en red distribuida
  • Descargar desde múltiples fuentes en paralelo
  • Gestionar múltiples clientes concurrentes
Guillermo F. Parra
Authors
Mathematics & Computer Science Student | Founder & President @ Club de Finanzas FIUM

Mathematics and Computer Engineering student with a focus on the intersection of rigorous theory and high-performance implementation. With a background marked by 18+ “Matrículas de Honor” and multiple Regional Olympiad awards, I thrive on bridging the gap between abstract mathematical models and efficient computational systems.

My core interests lie in Quantitative Finance, Stochastic Calculus, and Numerical Optimization. I am particularly passionate about transforming complex financial frameworks into high-performance algorithmic solutions. Currently, I balance my research in Quant Finance and Deep Learning with active leadership in university commissions.