Filecoin是基于区块链机制的分布式存储网络。Filecoin矿工可以为提供网络存储容量,通过定期生成证明(矿工正在提供指定容量的加密证明)来获得Filecoin加密货币。此外,Filecoin使网络参与各方能够通过Filecoin区块链上共享账本中记录的交易来交换FIL货币。
Filecoin并没有使用Bitcoin的工作量证明(POW)来维持区块链的共识,而是使用存储证明本身:矿工在共识协议中的能力与其所提供的存储量成正比。
Filecoin区块链不仅维护FIL交易和帐户的分类帐,还会实现Filecoin VM,这是一种复制状态机,可执行网络参与者之间各种加密合约和市场规则。这些合同包括存储交易,客户向矿工支付FIL货币,以换取存储客户请求的特定文件数据。
随着时间的推移,通过Filecoin VM的分布式机构,存储交易和链上记录的其他合同机制将继续处理,而无需请求数据存储的客户端亦可进行进一步的交互。
1、Data structures(数据结构)是语义标记数据成员(例如,结构,接口或类型)的集合;
2、Functions(函数)是不依赖于外部状态的计算过程(数学函数或不引用全局变量的编程语言函数)
3、Components(组件)是功能集,旨在在实现结构中表示为单个软件单元。根据语言和特定组件的选择,这可能对应于单个软件模块,运行某个主循环的线程或进程,磁盘支持的数据库或多种其他设计选择。
4、API是用于将消息传递到组件的接口。例如对矿工节点的存储矿工组件的请求在存储市场中存储文件就需要执行一系列API请求。
5、Nodes (节点)是与协议交互的完整软件和硬件系统。节点可能会不断运行上述组件中的几个,参与多个子系统,并在本地和或通过网络公开API,具体取决于节点配置。
6、Subsystems (子系统)是整个Filecoin协议的概念划分,无论是按照完整的协议(例如存储市场或检索市场),还是就功能(比如VM- 虚拟机)而言。它们不一定对应于任何特定的节点或软件组件。
7、Actors是体现在Filecoin VM状态中的虚拟实体。协议参与者类似于智能合约的参与者。一个参与者具有FIL货币余额,并且可以通过VM的操作与其他参与者进行交互,但不一定对应于任何特定的节点或软件组件。
Filecoin面向用户的大部分功能(付款,存储市场,power table等)都通过Filecoin虚拟机(Filecoin VM)进行管理。网络生成一系列区块,并同意正确的区块链。每个块包含一系列的状态转换messages,以及global state应用这些转换后的当前检查点messages。
在global state这里由一组的actors,每一个都有自己的私人state。
一个 actor是Filecoin的等同于以太坊智能合约的文件,本质上是Filecoin网络中的一个“对象”,具有状态和一组可用于与其交互的方法。每个参与者都有一个Filecoin余额,一个state指针,一个code CID(标注参与者属性)以及一个nonce跟踪该参与者发送的消息数量的CID 。
在上调用方法有两种方法actor。
首先,要以系统的外部参与者(也就是使用Filecoin的普通用户)的方式调用方法,用户必须向message网络发送签名,并向包括对应的矿工支付费用message。消息上的签名必须与具有足够Filecoin的帐户关联的密钥相匹配,用来支付消息的执行费用。这里的费用等同于比特币和以太坊中的交易费用,在这里它与处理消息的工作成比例(比特币为每字节消息定价,以太坊使用“ gas”的概念。我们也使用“ gas”) 。
其次,在actor调用一个参与者的方法时,可以在另一个参与者上调用一个方法。但是,这种情况唯一可能发生的原因是外部用户消息调用了某个参与者(说明:用户调用的参与者可能会先调用另一个参与者,然后再调用另一个参与者,执行层可以执行的层次尽可能多争取)。