Filecoin 原本不是”通用计算机”
提到 Filecoin,多数人的第一反应是”租硬盘”:客户付 FIL 请存储提供方保存数据,网络周期性地核验数据还在、还完整。在早年的主网里,这条链的执行层其实是不通用的:存储、质押、奖励、惩罚的规则全部写成协议内置程序,开发者插不进自己的逻辑。Filecoin 改进提案 FIP-0030 改变了这一点——它规定以基于 WebAssembly 的 Filecoin 虚拟机(FVM)取代旧的非可编程执行层(此后被称为 Legacy VM),让链上第一次可以运行受约束的任意代码。官方文档把这个执行层描述为”面向 IPLD 数据的 WASM 多语言执行环境”:任何能编译成 WASM 的语言写的合约都能跑;官方项目页还记录,在正式切换之前,主网上先跑过一批金丝雀节点来验证 WASM 化的内置代码,随后主网原子式换用新的执行层。
Actor:合约自带岗位说明书

Filecoin 不叫它们智能合约,叫 actor。官方规格给了直接类比:Filecoin 里的 actor 等价于 EVM 里的智能合约,而 FVM 就是负责执行所有 actor 代码的系统组件。actor 分两层:内置 actor 是协议预先写好的程序,负责网络关键子系统;用户 actor 由任何开发者编写,与 FVM 交互。官方文档列出十一类内置 actor:Cron、Init、Account、Reward、StorageMarket、StorageMiner、Multisig、PaymentChannel、StoragePower、VerifiedRegistry、System。连起来读就像一份岗位说明书:Cron actor 在每个纪元末尾定 tick,提醒出块与权益模块处理内部状态和延后事件;Init actor 维护一张映射表,把公钥地址和临时地址解析成正式的 ID 地址;Account actor 负责用户账户;Reward actor 管理未发行的代币并把奖励发给矿工;StorageMiner actor 承担存储挖矿与证明收集。内置 actor 的逻辑同样以 Wasm 字节码形式部署——内置与用户两层跑在同一个执行环境里,这是 FIP-0030 的要点之一。
一台刻意保守的虚拟机
FIP-0030 的技术选型相当克制。运行时是带 32 位内存的 WebAssembly:支持 64 位整数类型与运算,官方认为这个地址空间对区块链状态机足够,但也坦承对更通用的应用有上限。更值得注意的是禁用清单:Wasm SIMD 指令、浮点数值与运算、线程被明令禁止,原因是这些特性会带来跨机器算出不同结果的非确定性风险——共识节点必须逐位复现同一个状态。初始版本的 FVM 被官方描述为”相对简单、刻意保守”,先保证稳,再谈扩展。以太坊系开发者不必推倒重来:FVM 通过运行时仿真支持 EVM、Secure EcmaScript、eBPF 等外部运行时,Solidity 合约编译成 EVM 字节码在 Filecoin 上跑的这条路径,在生态里被称作 FEVM。
一条消息怎么走完执行栈
FIP-0030 给出的参考架构有六个组件:Machine、Call Manager、Invocation Container、Kernel、Syscalls、Externs。翻译成动线:在某个具体纪元、某个具体状态根上启动一台 Machine,装载链上 Wasm 模块并预检消息;消息是交易在 Filecoin 里的封装形式,Call Manager 负责在 actor 之间路由调用;轮到某个 actor 执行时,进入它专属的沙箱 Invocation Container,同一 actor 的重入或递归不复用旧沙箱,而是再开一个新的;actor 只能通过 Kernel 暴露的少量系统调用读写状态、发起跨 actor 调用,Syscalls 与 Externs 是虚拟机与外层节点程序之间的边界。整条流水线跑完一个区块里的一串消息,产出一棵新的状态树——状态树用 CID 标识,最新那棵就是全网当前认可的事实来源。
用户该怎么理解这一切
对用户,FVM 的意义是把 Filecoin 的存储市场从固定流程变成可编程原料。官方文档列举的方向包括:给指定地址集合发放取回许可、用 DataDAO 共同管理数据集与收益池、给存储合约装上到期自动续约或改投更便宜提供方的条件(由一笔 FIL 捐赠供养、可长期滚动)、一份数据一次提交后按地域、延迟与价格上限自动复制到多家,以及质押出租与还款记账。这些是文档说明机制支撑得起的用法,不是已经交付的现货产品。还有一条朴素边界:FVM 的执行照常计 gas,合约调用要花 FIL;可编程性本身也不改变 Filecoin 存储业务的基本盘。本文只解释执行层机制,不构成投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。