一种实验性的无服务器网络协议,用于在碎片化、低带宽网络中实现自主代理之间的弹性状态同步。构建于 Merkle-CRDT 和 加密身份 之上——无中央权威、无全局DNS、始终可写。
| # | 版本 | 标题 | 链接 |
|---|---|---|---|
| 1 | v0.1.0 | Merkle-CRDT 协议(L1/L2) | ResearchGate |
| 2 | v0.2.0 | 认知层(L3) | ResearchGate |
| 3 | v0.3.0 | 相关性感知聚合(L3) | ResearchGate |
| 4 | v0.4.0 | 确定性语义拓扑(L3) | ResearchGate |
作者资料: ResearchGate · ResearchHub
| 层 | 版本 | 目的 |
|---|---|---|
| L1/L2 | v0.1.0 | Merkle-DAG CRDT、Ed25519 签名、Noise 协议传输、BFT 法定人数 |
| L3 | v0.2.0 | 认知层:整数对数几率、两遍信任传播、抗女巫攻击声誉 |
| L3 | v0.3.0 | 相关性感知聚合:针对相关传感器/LLM 的几何折扣 |
| L3 | v0.4.0 | 确定性语义拓扑:通过 256 位 SimHash 实现自主边生成 |
L3 v0.3.0 要求应用程序手动构建知识图谱(支持/矛盾边)。v0.4.0 通过自主边生成消除了这一瓶颈:
QuantizedEmbedding([u64; 4]) —— 一个 256 位的 SimHash,由应用程序端从规范嵌入模型计算得出。max_k_nearest 上限将边密度限制在 O(N),防止信任传播膨胀。embedding_version: u32 隔离不相交的潜在空间,用于协议级别模型升级。// 自主真理发现:10,000 条声明 → 50 毫秒扫描,O(N) 边
// 无浮点数。无协调。无中央权威。
let edges = auto_edge_generator.generate_edges(&epoch_claims);
L3 v0.2.0 假设所有证据源在统计上独立(朴素贝叶斯)。当物理上相关的传感器(例如,同一屋顶上的 100 个物联网设备)或语义相关的代理(例如,在同一数据集上微调的 LLM)报告一致观察结果时,这会产生病态的过度自信。
v0.3.0 引入了 网格单元相关性折扣:
CorrelationCell(u64) —— 空间、语义或时间邻近性的离散坐标。discount_bps^rank / 10000^rank(默认为 30%)。(temporal_grid, fingerprint, correlation_cell) 分桶,确保在完整集合上进行原子计算。correlation_cell: None 的声明行为与 v0.2.0 完全相同(零回退)。// 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)
| 特性 | AIMP(Merkle-CRDT) | 传统(Raft/Paxos) |
|---|---|---|
| 拓扑 | 点对点网状 / 去中心化 | 领导者 / 法定人数 |
| 可用性 | AP(始终可写) | CP(需要多数) |
| 排序 | 因果(向量时钟) | 总序(顺序) |
| 完整性 | 加密(Merkle-DAG) | 基于日志 |
| 硬件 | 边缘/物联网优化 | 数据中心级 |
tokio::mpsc 实现零共享状态 CRDT 的 Actor 模型DecisionEngine trait,带 RuleEngine 实现aimp_rules.json 热重载规则(无需重启)Payload 枚举(编译时安全)/health 端点,以及 HTTP 状态码SystemEvent 日志,带 TUI 仪表盘AimpError 类型层次结构(不再有 Box<dyn Error>)使用 Criterion 在 Apple Silicon(M 系列)上测量,单线程,fast-crypto 模式:
| 操作 | 时间 | 吞吐量 |
|---|---|---|
append_mutation(100 次操作) | 41.8 µs | ~2.4M 次突变/秒 |
get_merkle_root(缓存) | 4.8 ns | O(1) |
| BLAKE3 哈希(1 KB) | 925 ns | ~1.08 GB/s |
| MessagePack 序列化/反序列化 | 204 / 210 ns | — |
| Ed25519 签名(ring) | 9.3 µs | ~108K 次操作/秒 |
| Ed25519 验证 | 25.0 µs | ~40K 次操作/秒 |
模拟 5 节点集群,带反熵同步(进程内,Apple Silicon):
| 场景 | 结果 |
|---|---|
| 吞吐量(5 节点 x 1000 次突变,带 Ed25519 签名) | 96,289 次突变/秒 |
| 收敛(5 个分歧节点,每个 250 DAG) | 0.68 ms(1 轮同步) |
| 分区/合并(2 组,每组 30 次突变,完全合并) | 0.21 ms |
| 加密热路径(每条消息签名 + 验证) | 45.0 µs → 22K 条消息/秒最大 |
| 加密预算(速率限制=50/秒) | 0.23% 利用率 |
在模拟丢包、延迟和分区条件下的收敛(5 节点,每节点 50 次突变):
| 条件 | 已收敛 | 轮数 |
|---|---|---|
| 基线(0% 丢包) | 是 | 1 |
| 10% 丢包 | 是 | 2 |
| 30% 丢包 | 是 | 2 |
| 50% 丢包 | 是 | 2 |
| 20% 丢包 + 100ms 延迟 + 30ms 抖动 | 是 | 2 |
| 分区(10 轮)然后合并 | 是 | 1 |
| 分区(50 轮)然后合并,20% 丢包 | 是 | 1 |
| 80% 丢包(压力) | 是 | 4 |
AIMP 在高达约 80% 丢包的情况下,仍能在几轮反熵内收敛,降级优雅。
Docker ARM64 Linux,RPi 类资源限制:
| 指标 | macOS ARM64 | Linux 1C/1GB(RPi 4) | Linux 1C/256MB(RPi Zero) |
|---|---|---|---|
| 吞吐量 | 96,289 mut/s | 24,802 mut/s | 29,709 mut/s |
| 收敛 | 0.68 ms | 3.06 ms | 1.30 ms |
| Ed25519 签名 | 8.7 µs | 16.2 µs | 15.1 µs |
| Ed25519 验证 | 20.5 µs | 34.6 µs | 45.2 µs |
| 最大消息/秒 | 34,329 | 19,695 | 16,573 |
| 加密预算 @50/s | 0.15% | 0.25% | 0.30% |
即使在 RPi Zero 类硬件上,吞吐量也比速率限制高出 3 个数量级。
相同硬件,相同操作,单线程,target-cpu=native:
| 基准测试 | AIMP(ring) | Automerge | Yrs(Yjs) |
|---|---|---|---|
| 突变(1000 次操作) | 129K ops/s | 94K ops/s | 632K ops/s |
| 2 副本合并 | 0.48 ms | 1.17 ms | 0.38 ms |
| 5 副本合并 | 2.16 ms | 3.89 ms | — |
| 状态大小(1000 次操作) | ~18 KB | 4 KB | — |
使用 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