Filecoin区块链是一个分布式虚拟机,在Filecoin协议中实现共鸣、处理消息、核算存储并维护安全。它是连接Filecoin系统中各个参与者的主接口。
Filecoin区块链系统包括:
1)一个消息池子系统,节点用于跟踪和传播矿工声明要包含在区块链中的消息。
2)用于解释和执行消息以更新系统状态的虚拟机子系统。
3)状态树子系统,治理其创建和维护的虚拟机从给定子链中确定天生的状态树(系统状态)。
4)一种链同步(ChainSync)susbystem,它跟踪和传播经过验证的消息块,维护一组候选链,矿工可以在这些候选链上进行挖掘,并对传进的区块进行语法验证。
5)一种存储能力共鸣子系统,它跟踪给定链的存储状态(即存储子系统),并帮助区块链系统选择要扩展的子链和包含在其中的区块。
区块链系统还包括:
1)一种链治理器,它维护给定链的状态,为其他区块链子系统提供设施,这些子系统将查询有关最新链的状态以便运行,并确保进链的区块在包含到链中之前经过语义验证。
2)一种区块天生器,在成功地进行领导人选举时被调用,以便天生一个新的区块,在将当前最重的链转发给同步器进行传播之前,该区块将扩展当前最重的链。
从高层次来看,Filecoin区块链通过连续几轮的领导人选举而发展壮大,在选举中,很多矿工被选举产生一个区块,加进区块链将为他们赢得区块奖励。Filecoin的区块链依靠存储能力运行。也就是说,矿工通过其共鸣算法来确定要开采的子链取决于该子链的存储量。在高层,“存储功率共鸣”子系统维护一个功率表,跟踪存储矿工参与者通过扇区承诺和时空证实为网络贡献的存储量。
区块:
区块是Filecoin区块链的主要单元,大多数其他区块链也是如此。区块消息直接与Tipsets链接,Tipsets是区块消息的组。下面我们将讨论区块消息的主要结构以及在Filecoin区块链中验证块消息的过程。
Filecoin区块链中的区块结构包括:i)区块头,ii)区块内的消息列表,以及iii)签名消息。
留意:区块在功能上与Filecoin协议中的区块头相同。固然区块标题包含指向完整系统状态,消息和消息回执的Merkle链接,但可以将区块视为该信息的完整集合(不仅是Merkle根,还包括状态树的完整数据、消息树、收据树等)。由于完整区块的大小很大,因此Filecoin区块链由区块头而不是完整区块组成。
区块头是区块的规范表示。区块头在矿工节点之间传播,从区块头消息中,矿工拥有应用关联的FullBlock状态和更新链所需的所有信息。为了能够做到这一点,需要包含在区块头中的最小信息项集包括:矿工地址、票证、时空证实、IPLD DAG中此块的父级CID,以及消息自身的CID。
消息结构必须包括源(From)和目的地(to)地址、Nonce和GasPrice。
在将消息传递到链同步逻辑之前,还将对其进行验证 。
除了验证消息的签名外,没有对区块中包含的消息进行语义验证的方法。假如一个区块中包含的所有消息在语法上都是有效的,那么可以执行这些消息并天生一个回执。
链同步系统可以分阶段进行语法和语义验证,以减少不必要的资源消耗。
假如以上所有测试都成功,则区块将被标记为已验证。终极,无效区块不得进一步传播或验证为父节点。
0