A DNS resolver
Build and parse UDP packets bit by bit. Resolve names by walking the hierarchy from the root servers.
Go · Rust · Python
Bencode, trackers y el protocolo peer-to-peer. Descarga un fichero real hablando con peers de verdad.
Build it in your language
The tester treats your program as a black box: any language works. These are just the most convenient ones for this project.
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.
12 stages across 4 phases. Every stage comes with its guide and its tests: you move on when they pass.
Decodificador de bencode, metadatos del fichero e infohash.
Consulta al tracker y lista de pares disponibles.
Handshake, mensajes del protocolo y descarga de una pieza verificada.
Varios pares en paralelo, reintentos y ensamblado final en disco.
Build and parse UDP packets bit by bit. Resolve names by walking the hierarchy from the root servers.
Go · Rust · Python
Build a Model Context Protocol server from scratch with JSON-RPC, tools, and resources.
TypeScript · Python · Go
From raw bytes to a 200 response. Parse requests, manage connections and serve concurrent traffic.
Go · Python · C · Rust