AIMP — AI 网状协议

一种实验性的无服务器网络协议,用于在碎片化、低带宽网络中实现自主代理之间的弹性状态同步。构建于 Merkle-CRDT 和 加密身份 之上——无中央权威、无全局DNS、始终可写。
论文
作者资料: ResearchGate · ResearchHub
协议栈
新特性
v0.4.0 — 确定性语义拓扑
L3 v0.3.0 要求应用程序手动构建知识图谱(支持/矛盾边)。v0.4.0 通过自主边生成消除了这一瓶颈:
- 声明携带一个可选的
QuantizedEmbedding([u64; 4]) —— 一个 256 位的 SimHash,由应用程序端从规范嵌入模型计算得出。
- 在每个纪元边界,协议计算成对汉明距离(XOR + 位计数,每对约 1 ns),并为近距离对(d <= 30 位)发出支持边,为远距离对(d >= 200 位)发出矛盾边。
- 边强度随距离线性缩放,以基点为单位(d=0 → 10000 bps,d=30 → 1000 bps)。
max_k_nearest 上限将边密度限制在 O(N),防止信任传播膨胀。
embedding_version: u32 隔离不相交的潜在空间,用于协议级别模型升级。
- 自动边通过 L2 散布具体化,并借助全息路由存活于垃圾回收。
- 死区(31-199 位)孤立了模糊声明——认识论上正确的隔离。
// 自主真理发现:10,000 条声明 → 50 毫秒扫描,O(N) 边
// 无浮点数。无协调。无中央权威。
let edges = auto_edge_generator.generate_edges(&epoch_claims);
v0.3.0 — 相关性感知信念聚合
L3 v0.2.0 假设所有证据源在统计上独立(朴素贝叶斯)。当物理上相关的传感器(例如,同一屋顶上的 100 个物联网设备)或语义相关的代理(例如,在同一数据集上微调的 LLM)报告一致观察结果时,这会产生病态的过度自信。
v0.3.0 引入了 网格单元相关性折扣:
- 每条声明携带一个可选的
CorrelationCell(u64) —— 空间、语义或时间邻近性的离散坐标。
- 在每个单元内,证据按强度排序并进行几何折扣:最强源保留 100% 权重;每个后续源接收
discount_bps^rank / 10000^rank(默认为 30%)。
- 以 30% 折扣,N 个相关传感器收敛到约单个传感器证据的 1.42 倍——无论 N 是多少。朴素方法会产生 N 倍放大。
- CRDT 结合性问题(几何衰减在部分合并上不可结合)通过架构解决:纪元归约按
(temporal_grid, fingerprint, correlation_cell) 分桶,确保在完整集合上进行原子计算。
correlation_cell: None 的声明行为与 v0.2.0 完全相同(零回退)。
- 所有算术均为纯整数(i32/i64,基点)。无浮点数。零知识证明就绪。
// 100 个共址传感器,每个 70% 置信度:
// v0.2.0(朴素):100 × 847 = 84,700 毫对数几率 → 约 100%(过度自信)
// v0.3.0(30%):847 × Σ(0.3^i) ≈ 1,207 毫对数几率 → 约 77%(现实)
架构
aimp_node/ Rust 参考实现(Cargo 工作区成员)
src/
crdt/ Merkle-DAG 引擎、Actor 模型、竞技场分配器、法定人数共识
crypto/ Ed25519 身份、BLAKE3 哈希、零信任防火墙
network/ UDP 散布、Noise 协议 XX 会话、单对等点速率限制
protocol/ 线格式(MessagePack)、类型化负载枚举
epistemic.rs L3 认知层(v0.3.0):对数几率、信任传播、相关性折扣
semantic_topology.rs L3 语义拓扑(v0.4.0):SimHash 嵌入、自动边生成
decision_engine.rs 可插拔确定性决策引擎(trait + 规则引擎 + 热重载)
error.rs 统一 AimpError 类型层次结构
dashboard/ Ratatui TUI
config.rs 带验证的动态配置
event/ 结构化日志 + Prometheus 指标(计数器 + 直方图)
tests/ 集成测试
benches/ Criterion 基准测试
aimp_testbed/ Python SDK(aimp-client)+ CLI 工具 + 混沌测试
deploy/ Systemd 服务、Firecracker 微VM、安装脚本
formal/ TLA+ 收敛性 + 法定人数安全性 + 信念收敛规范
docs/ 论文 1(Typst 源 + PDF)
v0.2.0/ 论文 2:认知层(Typst 源 + PDF)
v0.3.0/ 论文 3:相关性感知聚合(Typst 源 + PDF)
战略优势
关键特性
核心引擎(v0.1.0)
- 通过
tokio::mpsc 实现零共享状态 CRDT 的 Actor 模型
- Slab/竞技场分配,O(1) 插入和 SoA 布局
- 通过 redb 实现持久存储,并使用 ChaCha20Poly1305 进行静态加密
- HKDF-SHA256 密钥派生,带域分离
- 带写时失效的缓存 Merkle 根
- 带 slab 内存回收的真正标记-清除垃圾回收
- 集成到 CRDT actor 中的基于纪元的垃圾回收跟踪
认知层(v0.2.0 — v0.4.0)
- 整数对数几率算术(i32,毫对数几率)——无浮点数,100% 确定性
- 两遍马尔可夫信任传播(支持 → 矛盾,无振荡)
- 抗女巫攻击声誉:新节点从 0 开始,需要委托,声誉花费
- 网格对齐的纪元归约与物化压缩(摘要存活于垃圾回收)
- 循环检测(排序 DFS)防止置信度膨胀循环
- v0.3.0:相关性感知聚合——共址传感器/LLM 的几何折扣
- v0.3.0:原子单元归约——按(纪元、指纹、单元)分桶以实现 CRDT 安全
- v0.4.0:确定性语义拓扑——SimHash 嵌入、自主边生成
- 比主观逻辑 / Dempster-Shafer 快 98-142 倍(跨架构位相同)
网络与安全
- Noise 协议 XX 加密会话(默认开启)
- 每对等点令牌桶速率限制(整数算术)
- 通过 HashSet + VecDeque 实现 O(1) 散布去重
- TTL 重放攻击检测,带断路器
- 会话 LRU 驱逐(TTL + 最大数量)
- 协议版本范围协商,支持滚动升级
决策引擎与共识
- 可插拔
DecisionEngine trait,带 RuleEngine 实现
- 从
aimp_rules.json 热重载规则(无需重启)
- BFT 法定人数投票,带持久化已验证决策
- 每个操作码的类型化
Payload 枚举(编译时安全)
可观测性
- Prometheus 计数器、计量器和延迟直方图
- 带子检查的复合
/health 端点,以及 HTTP 状态码
- 结构化
SystemEvent 日志,带 TUI 仪表盘
运维
- 统一
AimpError 类型层次结构(不再有 Box<dyn Error>)
- 配置验证(拒绝无效参数组合)
- 优雅关闭,带 5 秒超时
- Systemd 强化服务文件
- CI/CD:lint、测试、安全审查、文档、交叉编译发布
基准测试
使用 Criterion 在 Apple Silicon(M 系列)上测量,单线程,fast-crypto 模式:
系统级
模拟 5 节点集群,带反熵同步(进程内,Apple Silicon):
网络损伤(netem 模拟)
在模拟丢包、延迟和分区条件下的收敛(5 节点,每节点 50 次突变):
AIMP 在高达约 80% 丢包的情况下,仍能在几轮反熵内收敛,降级优雅。
跨平台(ARM64 资源受限)
Docker ARM64 Linux,RPi 类资源限制:
即使在 RPi Zero 类硬件上,吞吐量也比速率限制高出 3 个数量级。
与 Automerge v0.7 比较
相同硬件,相同操作,单线程,target-cpu=native:
使用 ring 的 AIMP 在突变性能上比 Automerge 快 1.37 倍(每次写入带 Ed25519),合并快 2.4 倍。Yrs 在突变上最快(无加密),但 AIMP 合并性能在 Yrs 的 26% 以内。
# 启用 ring 后端以获得最大吞吐量
RUSTFLAGS="-C target-cpu=native" cargo run --release --features fast-crypto,fast-alloc
本地运行基准测试:
cargo bench --manifest-path aimp_node/Cargo.toml # 微基准测试
cargo run --release -p aimp_node --example bench_convergence # 系统基准测试
cargo run --release -p aimp_node --example bench_netem # 网络损伤
docker build -f Dockerfile.bench -t aimp-bench . && \
docker run --rm --memory=1g --cpus=1 aimp-bench # ARM64 受限环境
形式化验证(TLA+)
L2 — CRDT 收敛
| 属性 | 描述 | 状态 |
|---|
| 收敛性 | 如果两个节点拥有相同的存储,它们计算相同的 Merkle 头 | 已验证 |
| 法定人数安全性 |
TLC 在不到 1 秒内探索了 46,063 个状态(9,558 个不同),深度为 16,使用 10 个并行工作器,零违规。发现的错误: 2 个正确性错误(乱序头、法定人数双重投票)。两者均已修复。
L3 — 信念收敛
| 属性 | 描述 | 状态 |
|---|
| 信念确定性 | 相同的声明 + 图 → 所有节点上相同的 BeliefState | 已验证 |
| 无振荡 |
穷举有界验证:199,902 个配置(5 个属性,最多 N=6 个节点)。发现的错误: 1 个信任传播公式错误(t_{k+1} = t_k + At_k 与正确的 t_{k+1} = t_0 + At_k)。已修复。
快速开始
1. 运行节点
cargo run -- --port 1337 --name node1
2. Python CLI
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. 运行测试与基准测试
make test # 基于属性的测试 + 集成测试
make bench # Criterion 基准测试
make lint # 格式化 + clippy
make docs # 生成 rustdoc
边缘部署
AIMP 设计为作为 单个静态二进制文件 运行,零运行时依赖。无需 Docker、无需容器运行时、无需 JVM。
快速部署(裸金属)
# 下载适用于您架构的二进制文件
curl -LO https://github.com/fabriziosalmi/aimp/releases/latest/download/aimp_node-aarch64-linux
chmod +x aimp_node-aarch64-linux
# 安装为 systemd 服务
sudo deploy/install.sh ./aimp_node-aarch64-linux
# 启动
sudo systemctl start aimp-node
curl localhost:9090/health
从源码交叉编译
make install-cross-targets # 一次性操作:安装 musl 目标
make edge-arm64 # ARM64(RPi 4/5、Jetson、Graviton)
make edge-armv7 # ARMv7(RPi 2/3、工业 PLC)
make edge-x86 # x86_64(边缘网关)
make edge-all # 全部三种
Firecracker 微VM(多租户隔离)
对于运行多个不可信工作负载的边缘网关:
sudo make microvm-rootfs # 构建约 15MB 的 Alpine rootfs,包含 AIMP
firecracker --no-api --config-file deploy/firecracker/vm-config.json
启动时间:约 125ms。内存:64MB。vCPU:1。
Systemd 服务
包含的服务文件(deploy/systemd/aimp-node.service)提供:
配置
配置从以下位置加载(优先级从高到低):
- CLI 参数(
--port、--name)
- 环境变量(
AIMP_PORT、AIMP_NOISE_REQUIRED、AIMP_PEER_RATE_LIMIT、...)
aimp.toml 文件(可选)
- 硬编码默认值
数据流
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]
相关工作
AIMP 建立在以下分布式系统研究领域的概念之上:
- CRDT — Shapiro 等人,《收敛和交换复制数据类型的综合研究》(INRIA,2011)
- Merkle-CRDT — Kleppmann & Howard,《拜占庭最终一致性与点对点数据库的基本限制》(2022)
- BFT 共识 — Castro & Liskov,《实用拜占庭容错》(OSDI,1999)
- 贝叶斯聚合 — Jaynes,《概率论:科学的逻辑》(2003);用于信念融合的对数几率算术
- 信任网络 — Kamvar 等人,《P2P 网络中声誉管理的 EigenTrust 算法》(WWW,2003)
- 主观逻辑 — Jøsang,《主观逻辑:不确定性推理的形式体系》(Springer,2016)
- Copula — Nelsen,《Copula 导论》(Springer,2006);用于相关证据的相关性建模
- Noise 协议 — Perrin,《Noise 协议框架》(2018);通过
snow crate 用于 XX 握手模式
- 散布协议 — Demers 等人,《复制数据库维护的流行病算法》(1987)
- Merkle 树 — Merkle,《基于传统加密函数的数字签名》(CRYPTO,1987)
- 向量时钟 — Mattern,《分布式系统的虚拟时间与全局状态》(1988)
许可证
MIT — Fabrizio Salmi,2026。