Filecoin虚拟机(VM)是负责执行所有角色代码的系统组件。它总共有11个内置系统角色,但不是所有的角色都与VM交互。每个角色都由一个 Code ID
(或CID
)标识。
VM 程序需要以下两个角色:
-
InitActor
用于创建新的角色和记录网络名称 -
CronActor
负责在每个区块高度执行重要操作的调度。
还有另外两个角色与VM交互:
-
AccountActor
负责用户的账号(原型) -
RewardActor
负责块奖励和代币归属
其余7个不直接与VM交互的内置系统角色如下:
-
StorageMarketActor
: 负责管理存储和检索交易 -
StorageMinerActor
: 负责处理存储操作和收集并提供证明 -
MultisigActor(Multi-Signature Wallet Actor)
: 负责处理Filecoin钱包的相关操作 -
PaymentChannelActor
: 负责支付渠道资金的建立和结算 -
StoragePowerActor
: 负责跟踪每个存储矿机分配的存储功率 -
VerifiedRegistryActor
: 负责管理已经确认的客户端 -
SystemActor
: 一般系统角色
CronActor
在生成状态中,CronActor
的分派表调用StoragePowerActor
和StorageMarketActor
来维护内部状态并处理延迟事件。原则上,它可以在网络升级后调用其他角色。
InitActor
InitActor
有能力创建新的角色,例如那些进入系统的角色。它维护一个表,将公钥和临时角色地址解析为它们的规范ID-address。确保无效的CID不会提交到状态树。
注意,在链重组的情况下,规范的ID-address不会一直存在。但是角色地址或公钥在链重组后仍然有效。
RewardActor
RewardActor是存放未释放的FIL的地方。RewardActor直接分配奖励给固定的miner。当前高度使用的奖励值在高度结束时通过计划标记更新。
AccountActor
AccountActor
负责用户帐号的管理。AccountActor
不是由InitActor创建的,但是它们的构造函数由系统调用。AccountActor
是通过向一个公开密钥样式的地址发送消息来创建的。地址必须是BLS或SECP,否则会出现退出错误。AccountActor
正在用新的参与者地址更新状态树。
翻译自https://spec.filecoin.io/#section-systems.filecoin_vm.sysactors