轮虫 v0.5.5:基础加固——在四个关键漏洞演变为实际问题前予以修复

发布日期:2026-03-21 10:01:54   浏览量 :3
发布日期:2026-03-21 10:01:54  
3

我们暂停了功能开发,以修复基础架构。一次实现审计发现我们的规范与代码之间存在四个关键差距。v0.5.5 版本已全部修复这四个问题。

差距一:命令行工具绕过了 WASM 沙箱

rotifer testrotifer agent run 在 Node.js 中直接调用了 import() —— 基因以完整的主机访问权限运行,没有燃料计量,也没有内存隔离。WasmtimeSandbox 虽然已在 Rust 中实现,但命令行工具从未调用它。

修复:新增了一个 NAPI 函数 executeGene(),将原生基因的执行路由至 Rust 沙箱。执行报告现在包含 fuel_consumed(消耗燃料)、memory_peak(内存峰值)和 execution_time_ms(执行耗时,单位毫秒)。对于未封装的基因,系统会回退到 Node.js 并发出警告:⚠ 未在沙箱中运行 —— 请先运行 'rotifer compile'

差距二:L0 内核毫无强制约束

PermissionSet 虽被传入执行上下文,但从未被检查。一个基因即使声明了 network_access: false,仍可发起 HTTP 请求。

修复:L0Gate::check() 在执行前进行四项检查(域名白名单、资源限制、网络权限、文件系统权限)。每次执行 —— 无论通过或被阻止 —— 都会被记录到 .rotifer/audit.jsonl 文件中。

差距三:代数执行器未集成

Rust 中已完整实现了包含五个操作符的代数执行器(Seq/Par/Cond/Try/Transform)。但命令行工具却在 TypeScript 中重新实现了一个仅支持 Seq 的循环,忽略了其余部分。

修复:通过 executeAlgebra() NAPI 桥接,命令行工具现已连接至 Rust 执行器。rotifer agent run --composition Par 现在可以正常工作,且 rotifer agent create 支持 Par/Cond/Try 的配置。

差距四:适应度公式偏离规范

规范定义了一个乘法模型:若成功率为零,则适应度为零。而原有实现使用的是加法平均模型,导致较差的分数可通过其他指标补偿。

修复:compute_fitness() 现在实现了规范中的公式:F(g) = [S_r · log(1+C_util) · (1+R_rob)] / [L · Resource_Cost]。历史数据通过 formula_version 字段共存。

合规性测试

rotifer test --compliance 执行六项结构性检查:沙箱执行、燃料消耗、L0Gate 通过情况、表型合规性、F(g) 可计算性以及 IR 段完整性。

统计:Rust 224 个测试 + 1 个文档测试 · TypeScript 188 个测试 · 全部通过

源码: gitlab.com/rotifer-protocol/rotifer-playground

本文最初发表于 rotifer.dev。欢迎在 GitLab 上关注本项目,或安装命令行工具:npm i -g @rotifer/playground

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
支持 反馈 订阅 数据
回到顶部