AIMP — Protocolo de Malla de IA

Un protocolo de red experimental y sin servidor para la sincronización de estado resiliente entre agentes autónomos en redes fragmentadas y de bajo ancho de banda. Construido sobre Merkle-CRDTs e identidad criptográfica — sin autoridad central, sin DNS global, siempre escribible.
Artículos
Perfiles del autor: ResearchGate · ResearchHub
Pila de Protocolo
Novedades
v0.4.0 — Topologías Semánticas Deterministas
L3 v0.3.0 requería que las aplicaciones construyeran manualmente el grafo de conocimiento (aristas de Apoya/Contradice). v0.4.0 elimina este cuello de botella con la generación autónoma de aristas:
- Las afirmaciones llevan un
QuantizedEmbedding([u64; 4]) opcional — un SimHash de 256 bits calculado del lado de la aplicación a partir de un modelo de embedding canónico.
- En cada límite de época, el protocolo calcula distancias de Hamming por pares (XOR + popcount, ~1 ns por par) y emite aristas de Apoya para pares cercanos (d <= 30 bits) y de Contradice para pares lejanos (d >= 200 bits).
- La fuerza de la arista escala linealmente con la distancia en puntos base (d=0 → 10000 pb, d=30 → 1000 pb).
- Un límite
max_k_nearest acota la densidad de aristas a O(N), evitando la explosión de la propagación de confianza.
embedding_version: u32 aísla espacios latentes disjuntos para actualizaciones de modelo a nivel de protocolo.
- Las auto-aristas se materializan mediante gossip L2, sobreviviendo al GC mediante Enrutamiento Holográfico.
- Zona muerta (31-199 bits) huérfana de afirmaciones ambiguas — aislamiento epistemológicamente correcto.
// Descubrimiento autónomo de verdad: 10,000 afirmaciones → escaneo de 50 ms, aristas O(N)
// Sin flotantes. Sin coordinación. Sin autoridad central.
let edges = auto_edge_generator.generate_edges(&epoch_claims);
v0.3.0 — Agregación de Creencia Consciente de Correlación
L3 v0.2.0 asume que todas las fuentes de evidencia son estadísticamente independientes (Naive Bayes). Esto produce hiperconfianza patológica cuando sensores físicamente correlacionados (ej., 100 dispositivos IoT en el mismo tejado) o agentes semánticamente correlacionados (ej., LLMs ajustados en el mismo conjunto de datos) reportan observaciones concordantes.
v0.3.0 introduce Descuento de Correlación por Celda de Cuadrícula:
- Cada afirmación lleva un
CorrelationCell(u64) opcional — una coordenada discreta para proximidad espacial, semántica o temporal.
- Dentro de cada celda, la evidencia se ordena por fuerza y se descuenta geométricamente: la fuente más fuerte retiene el 100% del peso; cada fuente subsiguiente recibe
discount_bps^rank / 10000^rank (por defecto 30%).
- Con un descuento del 30%, N sensores correlacionados convergen a ~1.42x la evidencia de un solo sensor — independientemente de N. El enfoque ingenuo produciría amplificación Nx.
- El desafío de asociatividad CRDT (la decadencia geométrica no es asociativa a través de fusiones parciales) se resuelve arquitectónicamente: la reducción de época agrupa por
(temporal_grid, fingerprint, correlation_cell), garantizando cómputo atómico sobre el conjunto completo.
- Las afirmaciones con
correlation_cell: None se comportan idénticamente a v0.2.0 (regresión cero).
- Toda la aritmética es solo de enteros (i32/i64, puntos base). Sin flotantes. Listo para ZK.
// 100 sensores co-ubicados, 70% de confianza cada uno:
// v0.2.0 (ingenuo): 100 × 847 = 84,700 mili-log-odds → ~100% (hiperconfiado)
// v0.3.0 (30%): 847 × Σ(0.3^i) ≈ 1,207 mili-log-odds → ~77% (realista)
Arquitectura
aimp_node/ Implementación de referencia en Rust (miembro del espacio de trabajo Cargo)
src/
crdt/ Motor Merkle-DAG, modelo de actor, asignador de arena, consenso de quórum
crypto/ Identidad Ed25519, hash BLAKE3, firewall de confianza cero
network/ Gossip UDP, sesiones Noise Protocol XX, limitación de frecuencia por par
protocol/ Formato de cable (MessagePack), enumeración de payloads tipados
epistemic.rs Capa Epistémica L3 (v0.3.0): log-odds, propagación de confianza, descuento de correlación
semantic_topology.rs Topología Semántica L3 (v0.4.0): embeddings SimHash, generación automática de aristas
decision_engine.rs Motor de decisión determinista conectable (trait + motor de reglas + recarga en caliente)
error.rs Jerarquía unificada de tipos AimpError
dashboard/ TUI con Ratatui
config.rs Configuración dinámica con validación
event/ Registro estructurado + métricas Prometheus (contadores + histogramas)
tests/ Pruebas de integración
benches/ Puntos de referencia Criterion
aimp_testbed/ SDK de Python (aimp-client) + herramienta CLI + pruebas de caos
deploy/ Servicio systemd, microVM Firecracker, script de instalación
formal/ Especificación de convergencia TLA+, seguridad de quórum y convergencia de creencias
docs/ Artículo 1 (fuente Typst + PDF)
v0.2.0/ Artículo 2: Capa Epistémica (fuente Typst + PDF)
v0.3.0/ Artículo 3: Agregación Consciente de Correlación (fuente Typst + PDF)
Ventajas Estratégicas
Características Clave
Motor Central (v0.1.0)
- Modelo de Actor con CRDT de estado compartido cero mediante
tokio::mpsc
- Asignación Slab/Arena con inserción O(1) y diseño SoA
- Persistencia duradera mediante redb con cifrado ChaCha20Poly1305 en reposo
- Derivación de clave HKDF-SHA256 con separación de dominios
- Raíz Merkle en caché con invalidación al escribir
- GC real de marcar y barrer con recuperación de memoria de slab
- Seguimiento de GC basado en épocas integrado en el actor CRDT
Capa Epistémica (v0.2.0 — v0.4.0)
- Aritmética de log-odds enteros (i32, mili-log-odds) — sin flotantes, 100% determinista
- Propagación de confianza markoviana de dos pasos (Apoya → Contradicciones, sin oscilación)
- Reputación resistente a Sybil: los nuevos nodos comienzan en 0, se requiere delegación, gasto de reputación
- Reducción de época alineada con cuadrícula y compactación materializada (los resúmenes sobreviven al GC)
- Detección de ciclos (DFS ordenado) evita bucles de inflación de confianza
- v0.3.0: Agregación consciente de correlación — descuento geométrico para sensores/LLMs co-ubicados
- v0.3.0: Reducción atómica de celda — agrupación por (época, fingerprint, celda) para seguridad CRDT
- v0.4.0: Topologías semánticas deterministas — embeddings SimHash, generación autónoma de aristas
- 98-142x más rápido que Lógica Subjetiva / Dempster-Shafer (idéntico bit a bit entre arquitecturas)
Red y Seguridad
- Sesiones cifradas Noise Protocol XX (activadas por defecto)
- Limitación de frecuencia por par con cubo de fichas (aritmética entera)
- Desduplicación de gossip O(1) mediante HashSet + VecDeque
- Detección de ataques de reproducción TTL con interruptor de circuito
- Evicción LRU de sesiones (TTL + número máximo)
- Negociación de rango de versión de protocolo para actualizaciones continuas
Motor de Decisión y Consenso
- Trait
DecisionEngine conectable con implementación RuleEngine
- Reglas de recarga en caliente desde
aimp_rules.json (sin necesidad de reinicio)
- Votación de quórum BFT con decisiones verificadas persistentes
- Enumeración tipada
Payload por código de operación (seguridad en tiempo de compilación)
Observabilidad
- Contadores, medidores e histogramas de latencia de Prometheus
- Punto final
/health compuesto con subcomprobaciones y códigos de estado HTTP
- Registro estructurado de eventos con panel TUI
Operaciones
- Jerarquía unificada de tipos
AimpError (sin más Box<dyn Error>)
- Validación de configuración (rechaza combinaciones de parámetros inválidas)
- Apagado gradual con tiempo de espera de 5 segundos
- Archivo de servicio systemd reforzado
- CI/CD: lint, pruebas, auditoría de seguridad, documentación, versiones compiladas de forma cruzada
Puntos de Referencia
Medidos con Criterion en Apple Silicon (serie M), monohilo, modo fast-crypto:
Nivel de Sistema
Clúster simulado de 5 nodos con sincronización anti-entropía (en proceso, Apple Silicon):
Degradación de Red (simulación netem)
Convergencia bajo pérdida de paquetes simulada, latencia y particiones (5 nodos, 50 mutaciones/nodo):
AIMP converge hasta ~80% de pérdida de paquetes en unas pocas rondas anti-entropía, degradándose gradualmente.
Docker ARM64 Linux con límites de recursos similares a Raspberry Pi:
Incluso en hardware clase RPi Zero, el rendimiento es 3 órdenes de magnitud por encima del límite de frecuencia.
Comparación con Automerge v0.7
Mismo hardware, mismas operaciones, monohilo, target-cpu=native:
AIMP con ring supera a Automerge en 1.37x en mutaciones (con Ed25519 por escritura) y 2.4x en fusión. Yrs es más rápido en mutación (sin criptografía), pero la fusión de AIMP está dentro del 26% de Yrs.
# Habilitar backend ring para máximo rendimiento
RUSTFLAGS="-C target-cpu=native" cargo run --release --features fast-crypto,fast-alloc
Ejecutar puntos de referencia localmente:
cargo bench --manifest-path aimp_node/Cargo.toml # Micro-puntos de referencia
cargo run --release -p aimp_node --example bench_convergence # Puntos de referencia del sistema
cargo run --release -p aimp_node --example bench_netem # Degradación de red
docker build -f Dockerfile.bench -t aimp-bench . && \
docker run --rm --memory=1g --cpus=1 aimp-bench # ARM64 con restricciones
L2 — Convergencia CRDT
TLC exploró 46,063 estados (9,558 distintos) hasta profundidad 16 en <1 segundo con 10 trabajadores paralelos y cero violaciones. Errores encontrados: 2 errores de corrección (cabezas fuera de orden, doble voto en quórum). Ambos corregidos.
L3 — Convergencia de Creencia
Verificación exhaustiva acotada: 199,902 configuraciones (5 propiedades, hasta N=6 nodos). Errores encontrados: 1 error en la fórmula de propagación de confianza (t_{k+1} = t_k + At_k vs correcto t_{k+1} = t_0 + At_k). Corregido.
Inicio Rápido
1. Ejecutar el Nodo
cargo run -- --port 1337 --name node1
2. CLI de Python
cd aimp_testbed
pip install -e .
aimp-cli health --target 127.0.0.1 --metrics-port 9090
aimp-cli infer "Check valve pressure in sector north"
3. Ejecutar Pruebas y Puntos de Referencia
make test # Pruebas basadas en propiedades + integración
make bench # Puntos de referencia Criterion
make lint # Formato + clippy
make docs # Generar rustdoc
Despliegue en el Borde
AIMP está diseñado para ejecutarse como un único binario estático sin dependencias de tiempo de ejecución. Sin Docker, sin tiempo de ejecución de contenedor, sin JVM.
Despliegue Rápido (hardware real)
# Descargar el binario para su arquitectura
curl -LO https://github.com/fabriziosalmi/aimp/releases/latest/download/aimp_node-aarch64-linux
chmod +x aimp_node-aarch64-linux
# Instalar como servicio systemd
sudo deploy/install.sh ./aimp_node-aarch64-linux
# Iniciar
sudo systemctl start aimp-node
curl localhost:9090/health
Compilación Cruzada desde el Código Fuente
make install-cross-targets # Una vez: instalar objetivos musl
make edge-arm64 # ARM64 (RPi 4/5, Jetson, Graviton)
make edge-armv7 # ARMv7 (RPi 2/3, PLCs industriales)
make edge-x86 # x86_64 (puertas de enlace de borde)
make edge-all # Todos los tres
MicroVM Firecracker (aislamiento multiinquilino)
Para puertas de enlace de borde que ejecutan múltiples cargas de trabajo no confiables:
sudo make microvm-rootfs # Construye ~15MB de rootfs Alpine con AIMP
firecracker --no-api --config-file deploy/firecracker/vm-config.json
Tiempo de arranque: ~125ms. Memoria: 64MB. vCPU: 1.
Servicio Systemd
El archivo de servicio incluido (deploy/systemd/aimp-node.service) proporciona:
Configuración
La configuración se carga desde (prioridad más alta primero):
- Argumentos CLI (
--port, --name)
- Variables de entorno (
AIMP_PORT, AIMP_NOISE_REQUIRED, AIMP_PEER_RATE_LIMIT, ...)
- Archivo
aimp.toml (opcional)
- Valores predeterminados codificados
Flujo de Datos
graph TD
UDP[Socket UDP] -->|Sobre| RL[Limitador de Frecuencia]
RL -->|Permitido| NP[Noise Protocol]
NP -->|Descifrar| FW[Cortafuegos de Seguridad]
FW -->|Válido| BP[Semáforo de Contrapresión]
BP -->|Permiso| Parser[Analizador de Protocolo]
Parser -->|AimpData| CRDT[Actor CRDT]
CRDT -->|Mutación| DAG[Merkle-DAG + redb]
DAG -->|Podar| GC[GC de Época]
CRDT -->|Solicitud de Evaluación| DE[Motor de Decisión]
DE -->|Decisión + Evidencia| CRDT
CRDT -->|Voto de Quórum| QM[Gestor de Quórum]
Trabajo Relacionado
AIMP se basa en conceptos de las siguientes áreas de investigación en sistemas distribuidos:
- CRDTs — Shapiro et al., "Un Estudio Integral de Tipos de Datos Replicados Convergentes y Conmutativos" (INRIA, 2011)
- Merkle-CRDTs — Kleppmann & Howard, "Consistencia Eventual Bizantina y los Límites Fundamentales de las Bases de Datos Peer-to-Peer" (2022)
- Consenso BFT — Castro & Liskov, "Tolerancia Práctica a Fallos Bizantinos" (OSDI, 1999)
- Agregación Bayesiana — Jaynes, "Teoría de la Probabilidad: La Lógica de la Ciencia" (2003); aritmética de log-odds para fusión de creencias
- Redes de Confianza — Kamvar et al., "El Algoritmo EigenTrust para Gestión de Reputación en Redes P2P" (WWW, 2003)
- Lógica Subjetiva — Jøsang, "Lógica Subjetiva: Un Formalismo para Razonar Bajo Incertidumbre" (Springer, 2016)
- Cópulas — Nelsen, "Una Introducción a las Cópulas" (Springer, 2006); modelado de correlación para evidencia dependiente
- Noise Protocol — Perrin, "El Marco del Protocolo Noise" (2018); utilizado a través de la crate
snow para el patrón de enlace XX
- Protocolos de Gossip — Demers et al., "Algoritmos Epidémicos para el Mantenimiento de Bases de Datos Replicadas" (1987)
- Árboles Merkle — Merkle, "Una Firma Digital Basada en una Función de Cifrado Convencional" (CRYPTO, 1987)
- Relojes Vectoriales — Mattern, "Tiempo Virtual y Estados Globales de Sistemas Distribuidos" (1988)
Licencia
MIT — Fabrizio Salmi, 2026.