Visión general para desarrolladores
Primeros pasos
Si solo quieres saber cómo publicar en Hashiverse de forma programática — mediante un botón, Python o la línea de comandos — empieza aquí. Si en cambio quieres saber cómo se construyó Hashiverse, sigue leyendo.
Hashiverse es una red social P2P descentralizada y resistente a la criptografía post-cuántica. Las ambiciones descritas en la sección Visión se traducen directamente en decisiones técnicas que conviene comprender antes de zambullirse en el código. Esta sección cubre esas decisiones: por qué se tomaron, qué cuestan y dónde viven en el código fuente.
Estructura del repositorio
hashiverse/
├── hashiverse-rust/ Workspace de Rust (nightly)
│ ├── hashiverse-lib/ Protocolo base — nativo + WASM
│ ├── hashiverse-server-lib/ Biblioteca de servidor (infra reutilizable)
│ ├── hashiverse-server/ Binario de servidor (envoltorio fino)
│ ├── hashiverse-client-wasm/ Wrapper WASM para navegador
│ └── hashiverse-integration-tests/ Pruebas de extremo a extremo
├── hashiverse-client-web/ SPA en TypeScript / React 19
└── www/ Este sitio (Astro) El diseño en dos capas
hashiverse-lib es el protocolo. Compila a código nativo (para el servidor) y a WebAssembly (para el cliente del navegador). Toda la criptografía, la lógica DHT, la codificación de publicaciones y la API del cliente viven aquí. Cualquier plataforma capaz de ejecutar WASM o Rust nativo puede ser un participante pleno en la red.
hashiverse-client-web es el cliente de navegador de referencia — una SPA en React 19 que carga el cliente WASM en un Web Worker, manteniendo el hilo principal libre. Habla con el módulo WASM mediante una interfaz de paso de mensajes; la lógica de protocolo que invoca es idéntica a la que se ejecuta nativamente en el servidor.
Cuatro módulos en hashiverse-lib
- transport/ — Traits abstractos (
TransportFactory,TransportServer,TransportServerHandler) con dos implementaciones: en memoria (para pruebas) y HTTP/TCP (para producción). Se puede cambiar de transporte sin tocar la lógica del protocolo. - protocol/ — Codificación/decodificación de paquetes RPC con proof-of-work y compresión, structs de pares, tipos de petición/respuesta, estructuras de datos para publicaciones y bundles.
- client/ — API
HashiverseClient, rastreador de pares, gestión de bundles de publicaciones, cronología con recorrido recursivo de buckets, y traits enchufablesClientStorage/KeyLockerManager. - tools/ — Tipos base (
Hash,Id,Signature), primitivas criptográficas, proof-of-work, abstracciónTimeProvidery configuración del protocolo.
Por dónde empezar
Si eres nuevo en la base de código, los mejores puntos de entrada son:
-
hashiverse-lib/src/lib.rs— el mapa de módulos. Cuatro módulos de nivel superior, cada uno con un alcance claro. -
hashiverse-lib/src/client/mod.rs— la API pública del cliente. La superficie con la que interactúa quien construye sobre el protocolo. -
hashiverse-integration-tests/tests/— pruebas de extremo a extremo que levantan topologías reales de servidores en memoria y ejercitan toda la pila del protocolo. Leerlas es la forma más rápida de entender cómo encajan las piezas.
Las secciones de esta guía para desarrolladores cubren cada una un área de diseño concreta. Cada sección remite a los archivos fuente relevantes para que puedas seguir las ideas directamente al código.