@nekzus/liop ofrece la experiencia de desarrollo en Node.js y TypeScript, los fundamentos del protocolo residen en el Backend de Rust ubicado en servers/liop-node/.
Este espacio de trabajo implementa los buffers de protocolo binario optimizados, la frontera de ejecución del motor Wasmtime con control de cuota de instrucciones (fuel metering) y la pila de transporte punto a punto nativa con rust-libp2p.
Interactúe directamente con el núcleo de Rust en estos escenarios:
- Creación de un SDK de LIOP para un lenguaje compilado (ej. Go, C++, extensiones nativas de Python).
- Modificación del gestor de trampas de memoria de Wasmtime o de los descriptores preabiertos de WASI.
- Ajuste de los algoritmos de enrutamiento en la DHT de Kademlia o en los protocolos de negociación Noise.
Arquitectura del Espacio de Trabajo Cargo
El espacio de trabajo divide las responsabilidades del protocolo en crates especializados:liop-core
Definición binaria del protocolo. Aloja las estructuras compiladas de Protobuf (
liop_core.proto) generadas mediante tonic y prost. Define la trama inmutable que viaja por la red.liop-node
Bastión del Nodo de Datos. Emplea
wasmtime para crear la frontera de ejecución WASI donde opera la lógica WebAssembly entrante. Incorpora interfaces para módulos de seguridad por hardware y cómputo de Recibos ZK.liop-client
Nodo Agente nativo. Despacha cargas de lógica a través de la malla mediante
rust-libp2p con enrutamiento Kademlia DHT y autenticación con el protocolo Noise.wasm-filters
Módulos de lógica precompilados orientados al target
wasm32-wasip1. Contiene algoritmos de filtrado estadístico, agregación y detección de anomalías para su despliegue in-situ.Pila de Transporte de Red
LIOP exige canales bidireccionales de baja latencia con multiplexación para procesar la ejecución de capacidades y la telemetría en tiempo real:- Tonic (gRPC sobre HTTP/2):
Tonic gestiona el empaquetado de mensajes, el control de flujo y la contrapresión de forma asíncrona sobre el runtime multihilo de
tokio. Todas las cargas se serializan en Protobuf binario; de este modo suprimen la sobrecarga de codificación JSON. - rust-libp2p (Noise y Kademlia):
Los nodos autentican su identidad criptográfica Ed25519 mediante el Noise Protocol Framework (patrón de negociación
XX). Los pares descubren capacidades y contenidos a través del identificador canónico de Kademlia DHT (/ipfs/kad/1.0.0), lo que suprime la dependencia de servidores DNS o autoridades de certificación centralizadas.
Frontera de Ejecución y Medición de Instrucciones (Fuel)
La ruta central de procesamiento se ubica enservers/liop-node/src/executor.rs:
Invariantes de Seguridad del Sandbox
- Trampas de Cuota de Instrucciones (Fuel): Cada instrucción ejecutada descuenta del contador asignado. Los bucles infinitos provocan una trampa determinista
Trap::OutOfFuelantes de saturar los núcleos de la CPU anfitriona. - Límites de Memoria Lineal: Las asignaciones de memoria se restringen a páginas fijas de 64 KB en WebAssembly. Todo intento de lectura o escritura fuera de la memoria reservada activa un fallo de segmentación contenido dentro del subproceso.
- Descriptores Preabiertos de WASI: Los módulos aislados no pueden recorrer el sistema de archivos del anfitrión. Solo acceden a subdirectorios montados explícitamente mediante
WasiCtxBuilder::preopened_dir().