ADR 0001:采用 Injective EVM V2 与不可变套件运行时
译文说明:本页是 英文原件 的信息性中文翻译;
docs/adr/中的英文原件是唯一事实源(不可变证据)。
- 状态:已接受为源码架构(Accepted for source architecture)
- 决策日期:2026-08-12
- 记录日期:2026-08-14
- 交付状态:切换(cutover)待定;未发布
- 取代:
cbd3d44中记录的基础期假设
[!IMPORTANT] 就当前测试网切换而言,ADR 0003 取代了本 ADR 的强制性 V1 导入要求。已接受的当前范围以空状态启动 EVM 套件,并将 V1 保留为显式的只读归档预览。
[!NOTE] 当前测试网状态:P1.2 部署证据与 P1.3 空状态(fresh-empty)激活已完成。 P1.4–P1.6 产品验收、安全评审、审批以及最终校验和绑定门禁仍未完成。
背景
CosmWasm V1 Push 工作流原生运行在 Linux 上。受支持的 Windows 工作流依赖
WSL2 来承载 Linux CLI 、injectived 与 Kubo。这一平台不对称性,是选择基于
Injective EVM 构建后继版本(而非执行环境中立的 V2 重写)的主要产品原因。
最初的 EVM 基础方案提出:V2 优先读取、迁移期间一个窄范围的 V1 读回退、 仅 V2 可写、无 V1 写回退、无双写。它还包含一个与最初单体合约布局绑定的 签名迁移执行器。后来的不可变套件(Suite)重写足以改变这些假设,因此这些 决策及其用户可见后果必须显式化。
决策
- 后继版本仍命名为 EVM V2,因为执行环境的变更正是从普通 Windows
操作中移除 WSL2 与
injectived的机制,同时保留原生 Linux 路径。 - 控制平面是一个以单一
SuiteDirectory为根的、不可升级的九合约套件。 普通客户端不接受任何直接模块地址、代理、混合后端或旧路径回退。 - 普通 CLI、Web 与 remote-helper 操作仅走 EVM。原先的 V1 读回退被显式 固定高度的归档证据取代。迁移范围的切换可以增加一次经过验证的一次性 导入;已接受的当前空状态切换不包含导入。
- 最初的单体 EVM 注册表 alpha 被
SuiteDirectory、BootstrapCoordinator、RepositoryCore与六个边界清晰的业务模块取代,模块绑定不可变且经代码 哈希验证。 - 基础期的迁移执行器不再用于该套件。当前的操作员执行器保留给另行审批的 迁移范围,提供仅追加的日志、安全续跑、回执验证与固定区块的导入状态 证据。当前的空状态切换不会调用它。
- EVM V2 源码就绪不等于达成平台目标。验收要求:无 WSL2、无
injectived的干净原生 Windows Git 工作流;无injectived的干净原生 Linux 工作流;Web 回执;最终性处理;以及独立的安全审批。状态证据按 范围区分:fresh-empty-suite用零状态激活证据,迁移范围的切换用导入 状态一致性证据。
EVM V2 这一产品世代名称并不意味着套件协议版本 2。当前
SuiteDirectory 的协议版本是 3。
后果
正面
- Windows 与 Linux 收敛到 EVM JSON-RPC、加密 EVM keystore 与操作系统 原生工具链。
- 普通客户端只有一个合约信任根,不会从 EVM 错误静默穿越到旧后端。
- 不可能出现 V1 写回退或双写状态。
- 不可变的模块绑定、有序导入与证据门禁的激活,使部分部署或被替换的 部署状态可被检测。
破坏性与运维影响
- 未导入的 V1 仓库无法通过普通客户端透明 clone。归档访问是一个证据 工作流,不是兼容性后端。
- 迁移范围的切换必须在切换前盘点、导入、比对并经由经验证的历史别名暴露 每个受支持的 V1 仓库。当前的空状态切换有意不携带 V1 状态。
- 部署需要九个合约、完整的地址与代码证据、模块一致性、激 活证据与固定
区块验证。迁移范围额外要求确定性导入与状态一致性;
fresh-empty-suite则要求零计数与匹配的空根。 - 当前操作员执行器可用于另行审批的迁移范围,但它不是当前空状态切换的 必要条件。
- 未来不兼容的协议变更需要后继套件与显式迁移,而不是原地升级。
验收
公开 profile 在全部发布证据通过之前保持为空。特别是,CI 配置不是验收 证据:确切的评审提交必须保留 Linux 与原生 Windows 结果、Web 回执、 最终性证据,以及独立的哈希绑定审批。迁移范围额外需要真实迁移与导入状态 证据;当前的空状态范围使用其零状态激活证据代替。
Pack 存储可移植性是一个相关但独立的决策,见 ADR 0002。