AIMP — AI Mesh Protocol

Um protocolo de rede experimental e sem servidor para sincronização resiliente de estado entre agentes autónomos em redes fragmentadas e de baixa largura de banda. Construído sobre Merkle-CRDTs e identidade criptográfica — sem autoridade central, sem DNS global, sempre escrevível.
Artigos
Perfis do autor: ResearchGate · ResearchHub
Pilha de Protocolo
Novidades
v0.4.0 — Topologias Semânticas Determinísticas
A L3 v0.3.0 exigia que as aplicações construíssem manualmente o grafo de conhecimento (arestas de Suporta/Contradiz). A v0.4.0 elimina este gargalo com geração autónoma de arestas:
- As afirmações carregam um
QuantizedEmbedding([u64; 4]) opcional — um SimHash de 256 bits calculado no lado da aplicação a partir de um modelo de incorporação canónico.
- A cada limite de época, o protocolo calcula distâncias de Hamming aos pares (XOR + popcount, ~1 ns por par) e emite arestas de Suporte para pares próximos (d <= 30 bits) e arestas de Contradição para pares distantes (d >= 200 bits).
- A força da aresta escala linearmente com a distância em pontos base (d=0 → 10000 bps, d=30 → 1000 bps).
- Um limite
max_k_nearest limita a densidade de arestas a O(N), evitando a explosão da propagação de confiança.
embedding_version: u32 isola espaços latentes disjuntos para atualizações de modelo ao nível do protocolo.
- As auto-arestas são materializadas via gossip L2, sobrevivendo à GC via Roteamento Holográfico.
- Zona morta (31-199 bits) abandona afirmações ambíguas — isolamento epistemologicamente correto.
// Descoberta autónoma da verdade: 10.000 afirmações → digitalização de 50 ms, arestas O(N)
// Sem floats. Sem coordenação. Sem autoridade central.
let edges = auto_edge_generator.generate_edges(&epoch_claims);
v0.3.0 — Agregação de Crenças Sensível à Correlação
A L3 v0.2.0 assume que todas as fontes de evidência são estatisticamente independentes (Naive Bayes). Isto produz hiperconfiança patológica quando sensores fisicamente correlacionados (ex.: 100 dispositivos IoT no mesmo telhado) ou agentes semanticamente correlacionados (ex.: LLMs ajustados no mesmo conjunto de dados) reportam observações concordantes.
A v0.3.0 introduz Desconto de Correlação por Célula de Grelha:
- Cada afirmação carrega um
CorrelationCell(u64) opcional — uma coordenada discreta para proximidade espacial, semântica ou temporal.
- Dentro de cada célula, a evidência é classificada por força e descontada geometricamente: a fonte mais forte retém 100% do peso; cada fonte subsequente recebe
discount_bps^rank / 10000^rank (padrão 30%).
- Com desconto de 30%, N sensores correlacionados convergem para ~1.42x a evidência de um único sensor — independentemente de N. A abordagem ingénua produziria amplificação Nx.
- O desafio de associatividade do CRDT (decadência geométrica não é associativa entre mesclagens parciais) é resolvido arquitetonicamente: a redução de época agrupa por
(temporal_grid, fingerprint, correlation_cell), garantindo computação atómica no conjunto completo.
- Afirmações com
correlation_cell: None comportam-se de forma idêntica à v0.2.0 (regressão zero).
- Toda a aritmética é inteira (i32/i64, pontos base). Sem floats. Pronto para ZK.
// 100 sensores co-localizados, 70% de confiança cada:
// v0.2.0 (ingénuo): 100 × 847 = 84.700 mili-log-odds → ~100% (hiperconfiante)
// v0.3.0 (30%): 847 × Σ(0.3^i) ≈ 1.207 mili-log-odds → ~77% (realista)
Arquitetura
aimp_node/ Implementação de referência em Rust (membro do workspace Cargo)
src/
crdt/ Motor Merkle-DAG, modelo de ator, alocador arena, consenso de quórum
crypto/ Identidade Ed25519, hash BLAKE3, firewall de confiança zero
network/ Gossip UDP, sessões Noise Protocol XX, limitação de taxa por par
protocol/ Formato de fio (MessagePack), enum de payloads tipadas
epistemic.rs Camada Epistémica L3 (v0.3.0): log-odds, propagação de confiança, desconto de correlação
semantic_topology.rs Topologia Semântica L3 (v0.4.0): Embeddings SimHash, geração automática de arestas
decision_engine.rs Motor de decisão determinístico plugável (trait + motor de regras + recarga a quente)
error.rs Hierarquia unificada de tipos AimpError
dashboard/ TUI Ratatui
config.rs Configuração dinâmica com validação
event/ Registro estruturado + métricas Prometheus (contadores + histogramas)
tests/ Testes de integração
benches/ Benchmarks Criterion
aimp_testbed/ SDK Python (aimp-client) + ferramenta CLI + testes de caos
deploy/ Serviço Systemd, microVM Firecracker, script de instalação
formal/ Especificação TLA+ de convergência + segurança de quórum + convergência de crenças
docs/ Artigo 1 (fonte Typst + PDF)
v0.2.0/ Artigo 2: Camada Epistémica (fonte Typst + PDF)
v0.3.0/ Artigo 3: Agregação Sensível à Correlação (fonte Typst + PDF)
Vantagens Estratégicas
Características Principais
Motor Principal (v0.1.0)
- Modelo de Ator com CRDT de estado zero compartilhado via
tokio::mpsc
- Alocação Slab/Arena com inserção O(1) e layout SoA
- Persistência durável via redb com encriptação ChaCha20Poly1305 em repouso
- Derivação de chave HKDF-SHA256 com separação de domínios
- Raiz Merkle em cache com invalidação na escrita
- GC real de marcação e varredura com recuperação de memória slab
- Rastreamento de GC baseado em épocas integrado ao ator CRDT
Camada Epistémica (v0.2.0 — v0.4.0)
- Aritmética de log-odds inteiros (i32, mili-log-odds) — sem floats, 100% determinística
- Propagação de confiança Markoviana em duas passagens (Suportes → Contradições, sem oscilação)
- Reputação resistente a Sybil: novos nós começam em 0, delegação necessária, gasto de reputação
- Redução de época alinhada à grelha com compactação materializada (Resumos sobrevivem à GC)
- Deteção de ciclos (DFS ordenada) evita loops de inflação de confiança
- v0.3.0: Agregação sensível à correlação — desconto geométrico para sensores/LLMs co-localizados
- v0.3.0: Redução atómica de células — agrupamento por (época, fingerprint, célula) para segurança CRDT
- v0.4.0: Topologias semânticas determinísticas — Embeddings SimHash, geração autónoma de arestas
- 98-142x mais rápido que Lógica Subjetiva / Dempster-Shafer (bit-identical entre arquiteturas)
Rede e Segurança
- Sessões encriptadas Noise Protocol XX (ativadas por padrão)
- Limitação de taxa por par com token bucket (aritmética inteira)
- Deduplicação de gossip O(1) via HashSet + VecDeque
- Deteção de ataques de replay TTL com disjuntor
- Evicção LRU de sessões (TTL + contagem máxima)
- Negociação de intervalo de versão do protocolo para atualizações contínuas
Motor de Decisão e Consenso
- Trait
DecisionEngine plugável com implementação RuleEngine
- Regras recarregáveis a quente a partir de
aimp_rules.json (sem necessidade de reinício)
- Votação de quórum BFT com decisões verificadas e persistentes
- Enum de
Payload tipada por opcode (segurança em tempo de compilação)
Observabilidade
- Contadores, gauges e histogramas de latência Prometheus
- Endpoint
/health composto com subverificações e códigos de estado HTTP
- Registo estruturado
SystemEvent com painel TUI
Operações
- Hierarquia unificada de tipos
AimpError (sem mais Box<dyn Error>)
- Validação de configuração (rejeita combinações de parâmetros inválidas)
- Encerramento gracioso com timeout de 5 segundos
- Ficheiro de serviço Systemd endurecido
- CI/CD: lint, teste, auditoria de segurança, docs, lançamentos cross-compilados
Benchmarks
Medidos com Criterion em Apple Silicon (série M), single-threaded, modo fast-crypto:
A Nível de Sistema
Cluster simulado de 5 nós com sincronização anti-entropia (in-process, Apple Silicon):
Degradação de Rede (simulação netem)
Convergência sob perda de pacotes, latência e partições simuladas (5 nós, 50 mutações/nó):
O AIMP converge até ~80% de perda de pacotes dentro de algumas rondas de anti-entropia, degradando-se graciosamente.
Docker ARM64 Linux com limites de recursos ao nível de RPi:
Mesmo em hardware classe RPi Zero, a taxa de transferência é 3 ordens de grandeza acima do limite de taxa.
Mesmo hardware, mesmas operações, single-threaded, target-cpu=native:
O AIMP com ring supera o Automerge por 1.37x em mutações (com Ed25519 por escrita) e 2.4x em mesclagem. O Yrs é o mais rápido em mutação (sem criptografia), mas a mesclagem do AIMP está dentro de 26% do Yrs.
# Ativar backend ring para máxima taxa de transferência
RUSTFLAGS="-C target-cpu=native" cargo run --release --features fast-crypto,fast-alloc
Execute benchmarks localmente:
cargo bench --manifest-path aimp_node/Cargo.toml # Micro-benchmarks
cargo run --release -p aimp_node --example bench_convergence # Benchmarks de sistema
cargo run --release -p aimp_node --example bench_netem # Degradação de rede
docker build -f Dockerfile.bench -t aimp-bench . && \
docker run --rm --memory=1g --cpus=1 aimp-bench # ARM64 com recursos limitados
L2 — Convergência CRDT
O TLC explorou 46.063 estados (9.558 distintos) até profundidade 16 em <1 segundo com 10 trabalhadores paralelos e zero violações. Erros encontrados: 2 erros de correção (cabeçalhos fora de ordem, dupla votação no quórum). Ambos corrigidos.
L3 — Convergência de Crenças
Verificação exaustiva limitada: 199.902 configurações (5 propriedades, até N=6 nós). Erros encontrados: 1 erro na fórmula de propagação de confiança (t_{k+1} = t_k + At_k vs correto t_{k+1} = t_0 + At_k). Corrigido.
Início Rápido
1. Executar o Nó
cargo run -- --port 1337 --name node1
2. CLI 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. Executar Testes e Benchmarks
make test # Testes baseados em propriedades + integração
make bench # Benchmarks Criterion
make lint # Formatação + clippy
make docs # Gerar rustdoc
Implantação na Borda
O AIMP foi projetado para ser executado como um único binário estático com zero dependências em tempo de execução. Sem Docker, sem runtime de contentor, sem JVM.
# Descarregue o binário para a sua arquitetura
curl -LO https://github.com/fabriziosalmi/aimp/releases/latest/download/aimp_node-aarch64-linux
chmod +x aimp_node-aarch64-linux
# Instale como serviço systemd
sudo deploy/install.sh ./aimp_node-aarch64-linux
# Iniciar
sudo systemctl start aimp-node
curl localhost:9090/health
Cross-Compilar a partir do Código Fonte
make install-cross-targets # Uma vez: instalar alvos musl
make edge-arm64 # ARM64 (RPi 4/5, Jetson, Graviton)
make edge-armv7 # ARMv7 (RPi 2/3, PLCs industriais)
make edge-x86 # x86_64 (gateways de borda)
make edge-all # Todos os três
MicroVM Firecracker (isolamento multi-inquilino)
Para gateways de borda a executar múltiplas cargas de trabalho não confiáveis:
sudo make microvm-rootfs # Constrói rootfs Alpine ~15MB com AIMP
firecracker --no-api --config-file deploy/firecracker/vm-config.json
Tempo de arranque: ~125ms. Memória: 64MB. vCPU: 1.
Serviço Systemd
O ficheiro de serviço incluído (deploy/systemd/aimp-node.service) fornece:
Configuração
A configuração é carregada de (maior prioridade primeiro):
- Argumentos CLI (
--port, --name)
- Variáveis de ambiente (
AIMP_PORT, AIMP_NOISE_REQUIRED, AIMP_PEER_RATE_LIMIT, ...)
- Ficheiro
aimp.toml (opcional)
- Valores predefinidos
Fluxo de Dados
graph TD
UDP[UDP Socket] -->|Envelope| RL[Rate Limiter]
RL -->|Allowed| NP[Noise Protocol]
NP -->|Decrypt| FW[Security Firewall]
FW -->|Valid| BP[Backpressure Semaphore]
BP -->|Permit| Parser[Protocol Parser]
Parser -->|AimpData| CRDT[CRDT Actor]
CRDT -->|Mutation| DAG[Merkle-DAG + redb]
DAG -->|Prune| GC[Epoch GC]
CRDT -->|Evaluation Req| DE[Decision Engine]
DE -->|Decision + Evidence| CRDT
CRDT -->|Quorum Vote| QM[QuorumManager]
Trabalhos Relacionados
O AIMP baseia-se em conceitos das seguintes áreas de investigação de sistemas distribuídos:
- CRDTs — Shapiro et al., "A Comprehensive Study of Convergent and Commutative Replicated Data Types" (INRIA, 2011)
- Merkle-CRDTs — Kleppmann & Howard, "Byzantine Eventual Consistency and the Fundamental Limits of Peer-to-Peer Databases" (2022)
- Consenso BFT — Castro & Liskov, "Practical Byzantine Fault Tolerance" (OSDI, 1999)
- Agregação Bayesiana — Jaynes, "Probability Theory: The Logic of Science" (2003); aritmética de log-odds para fusão de crenças
- Redes de Confiança — Kamvar et al., "The EigenTrust Algorithm for Reputation Management in P2P Networks" (WWW, 2003)
- Lógica Subjetiva — Jøsang, "Subjective Logic: A Formalism for Reasoning Under Uncertainty" (Springer, 2016)
- Cópulas — Nelsen, "An Introduction to Copulas" (Springer, 2006); modelação de correlação para evidência dependente
- Noise Protocol — Perrin, "The Noise Protocol Framework" (2018); usado via a crate
snow para padrão de handshake XX
- Protocolos de Gossip — Demers et al., "Epidemic Algorithms for Replicated Database Maintenance" (1987)
- Árvores Merkle — Merkle, "A Digital Signature Based on a Conventional Encryption Function" (CRYPTO, 1987)
- Relógios Vetoriais — Mattern, "Virtual Time and Global States of Distributed Systems" (1988)
Licença
MIT — Fabrizio Salmi, 2026.