Saltar al contenido
Volver al catálogo
Proyecto bittorrentRedesAvanzadoPróximamente

Construye tu propio cliente BitTorrent

Construye un cliente BitTorrent desde cero. Decodifica bencode, consulta trackers y descarga un archivo real con el protocolo peer-to-peer.

Constrúyelo en tu lenguaje

El tester trata tu programa como una caja negra: sirve cualquier lenguaje. Estos son los más cómodos para este proyecto.

Idioma del temario

Las guías de las etapas se leen en este idioma. Solo aparecen los idiomas en los que este proyecto ya está traducido completo; el idioma de la interfaz no cambia.

De qué trata este proyecto

Proyecto en preparación: estamos completando y verificando el recorrido de implementación y sus pruebas. Las capacidades descritas son el objetivo del proyecto; todavía no está habilitado para comenzar.

BitTorrent es un sistema distribuido completo que puedes construir solo: descubrimiento de pares, un protocolo binario con handshake, transferencia por bloques y verificación de integridad. Y el resultado se comprueba abriendo el fichero descargado.

Empezarás decodificando un .torrent y terminarás descargando un fichero real desde varios pares a la vez, en paralelo, comprobando cada pieza con su hash antes de escribirla en disco.

Hoja de ruta

12 etapas repartidas en 4 fases. Cada etapa trae su guía y sus tests: avanzas cuando pasan.

  1. Fase 13 etapas

    Entender el .torrent

    Decodificador de bencode, metadatos del fichero e infohash.

  2. Fase 22 etapas

    Encontrar pares

    Consulta al tracker y lista de pares disponibles.

  3. Fase 34 etapas

    Hablar con un par

    Handshake, mensajes del protocolo y descarga de una pieza verificada.

  4. Fase 43 etapas

    Descargar el fichero

    Varios pares en paralelo, reintentos y ensamblado final en disco.

Antes de empezar

Un cliente BitTorrent funcional: decodificador de bencode, parseo del fichero .torrent y cálculo del infohash, comunicación con el tracker, handshake con pares, mensajes del protocolo (bitfield, interested, request, piece), descarga por bloques en paralelo y verificación SHA-1 de cada pieza.

  • mcp-server
    Beta

    Construye tu propio servidor MCP

    Construye un servidor MCP desde cero. Implementa Model Context Protocol con JSON-RPC, herramientas y recursos para conectar clientes de IA con tus programas.

    Intermedio5 etapas~12 hRedes
    MCPJSON-RPCagentes+1

    TypeScript · Python · Go

  • dns-resolver
    Próximamente

    Construye tu propio resolvedor DNS

    Construye un resolvedor DNS desde cero. Codifica y analiza paquetes UDP, y resuelve nombres recorriendo la jerarquía desde los servidores raíz.

    Intermedio8 etapas~9 hRedes
    UDPbinarioprotocolos

    Go · Rust · Python

  • http-server
    Próximamente

    Construye tu propio servidor HTTP

    Construye un servidor HTTP desde cero. Analiza peticiones desde los bytes del socket, gestiona conexiones y atiende tráfico concurrente con respuestas HTTP.

    Intermedio10 etapas~12 hRedes
    socketsTCPHTTP+1

    Go · Python · C · Rust