Filecoin面向用户的大部分功能(付款,存储市场,算力表等)都通过Filecoin虚拟机(Filecoin VM)进行管理。网络会生成一系列区块,并同意区块中的哪一条链是正确的。每个区块包含一系列称为消息的状态转换,以及在应用这些消息后当前全局状态的检查点。
这里的全局状态由一组参与者组成,每个参与者都有自己的私有状态。
Filecoin的Actor(参与者)相当于以太坊的智能合约,它本质上是文件币网络中的一个“对象”,具有状态和一组可用于与其交互的方法。每个参与者都有一个Filecoin余额,一个状态指针,一个代码CID来告诉系统其参与者的类型,以及一个随机数(nonce)来跟踪该角色发送消息的数量。 (TODO:随机数实际上仅是外部用户界面参与者所需要的,即账户参与者。也许我们应该找到一种方法来清理它?
在actor上调用方法有两种。 第一种,是以系统的外部参与者(即Filecoin的普通用户)的身份调用方法,您必须将已签名的消息发送到网络,并向包含您消息的矿工支付一笔费用。 消息上的签名必须与Filecoin的帐户关联的密钥相匹配,并且用户账户里有足够的Filecoin用来支付执行该消息的费用。 这里的执行费用就如同于比特币和以太坊中的交易手续费用,它与处理消息的工作量成比例(比特币消息费用为每字节,以太坊使用“ gas”的概念。我们也使用“ gas”) 。
第二种,参与者可以在调用另一个参与者的方法时调用该方法。 但是,这种情况唯一可能发生的原因是外部用户消息调用了某个actor(注意:用户调用的actor可能会调用另一个actor,然后再调用另一个actor,执行到可以承受运行的最多层。
[ID:ipfsunion6]
扫描二维码
关注官方公众号