Iroh 1.0: la evolución técnica de un protocolo P2P ligero

Fuentes: Iroh 1.0: the technical evolution of a lightweight P2P protocol

El equipo de desarrollo de iroh ha lanzado la versión 1.0 del protocolo, tras cuatro años de trabajo y múltiples pivotes estratégicos. Este artículo técnico detalla la trayectoria del proyecto, que comenzó como una implementación en Rust de IPFS con el objetivo de optimizar el rendimiento en dispositivos móviles con recursos limitados. La decisión clave fue abandonar la compatibilidad con el ecosistema IPFS para centrarse en una arquitectura más ligera y eficiente, abandonando los protocolos de transporte complejos en favor de QUIC y el cifrado BLAKE3.

El proyecto nace de la necesidad de resolver un caso de uso específico: la transferencia de historiales de chat de Deltachat entre dispositivos. Los desarrolladores identificaron que la implementación basada en IPFS era demasiado pesada y lenta para este escenario. En su lugar, crearon una biblioteca de sincronización desde cero, utilizando QUIC como capa de red y BLAKE3 para la transferencia de blobs, lo que permitió una implementación con un árbol de dependencias mínimo. Esta versión inicial, aunque funcionalmente limitada, demostró su viabilidad al ser adoptada por Deltachat, que integró la librería en su base de código Rust para usuarios en Windows, Linux, iOS y Android.

Para mejorar la conectividad, el equipo implementó un mecanismo de 'hole punching' inspirado en Tailscale, permitiendo que los dispositivos se conecten directamente sin necesidad de un servidor central, aunque mantuvieron un servidor de ayuda para casos donde la red no lo permitiera. Finalmente, se resolvió la complejidad de la autenticación mediante la integración de claves públicas crudas en TLS, eliminando la necesidad de certificados autofirmados. El resultado es un toolkit P2P 'batteries included' que prioriza la simplicidad, la eficiencia y la portabilidad sobre la compatibilidad con estándares existentes.