FIL的架构和运行原理

释放双眼,带上耳机,听听看~!

FIL市场可以分为存储市场(链上)、检索市场(链下)。FIL区块链上可以分为三部分,分别是订单薄、转账记录、分配表。

FIL的架构和运行原理

订单薄(order):用户和矿工之间的交易订单集合,用来记录用户和矿工之间的交易记录。

转账记录:FIL代币的转账记录,和BTC的交易记录一样。

分配表:该表记录着全网所有矿工的数据存储情况。

FIL运行原理

在FIL协议里面,检索矿工不参与共识机制,只有存储矿工参与共识机制。在FIL的共识协议底层实质是POS,即权益证明,FIL的权益证明里面的“s”为存储(storage),具体流程为:

  • 在每一轮的出块权竞争上,全体矿工根据自己的存储算力来竞争区块链的出块权;
  • 本轮胜出的矿工进行出块并全网广播,其他矿工验证并接受结果。

在FIL网络中常见的选举方法是预期共识(EC:Expected Consensus)实现按照概率而言,每一轮期望产生几个领导人(出块者),在固定的区块时间内,每一轮预期产生e=5个出块者,每一轮5张选票拿到选票的矿工就可以出块。但是由于网络延迟、时空证明时间长、数据库访问等问题还会出现孤块的情况。

针对这些情况,目前官方的解决方案是使用区块总数以及贡献的存储算力来决定选择哪一条链;在每一个新纪元(开始竞争块epoch),每个区块中创建多个有效的同级区块,新一代的家谱发展出来,称之为TipSet。

矿工通过复制证明和时空证明向网络证明其有效数据存储量—FIL的算力。

  • 复制证明:用来证明存储矿工当前时间的存储量大小;
  • 时空证明:(一连串的复制证明)来证明一段时间内存储矿工的算力大小。存储矿工参与共识机制的时候,使用时空证明的结果来提交算力证明。
  • FIL的架构和运行原理

核心算法

每间隔一定的区块高度,矿工需要提交一次存储证明,一次时空证明成功提交需要网络大部分存储算力验证合法性,每一个新区块生成,都会更新当前分配表。

  • 全节点验证:全节点会保存完整区块链日志,进行全节点验证到当前区块回溯一次,再参考此时的分配表;
  • 简易存储验证:轻节点(并不会完整保存区块数据),验证网络全节点请求。

FIL根据当前存储算力选举新出块矿工。它的共识机制被称为期望共识,主要思路:

• 计算每个存储矿工为网络提供的有效存储空间占比;

• 通过查阅区块链中合法的存储证明,任何一个节点都能获得并且验证任意节点的存储算力。

• 在每个产生新区块的周期内,矿工利用这一周期生成的存储证明生成选票(ticket)-签名hash之后均匀分布在一个空间中。

• 每个矿工会检查自己的选票的哈希值是否小于该矿工的存储算力,如果满足,则说明该矿工当选本轮的领导节点,下一个区块可以由该矿工创建并发送给全网其他节点进行验证。

FIL的交易流程

在FIL真实的运行交易场景中是:

  • 客户和矿工分别发送一个竞价订单和出价订单到交易市场(Market),这里需要注意的是,如果是 bid order, 需要注明你这个文件的存储时间(比如三个月), 以及需要备份的数量,备份数量越多,文件丢失的概率就越低,当然价格也就更高一些。
  • 交易网络管理中心(Manage)分别验证订单是否合法,如果是竞价订单,系统会锁定客户资金,如果是出价订单,系统会锁定矿工的存储空间。
  • 分别执行 Put.MatchOrders 和 Get.MatchOrders 进行订单撮合,成功之后会运行 Manage.AssignOrders 来标记该订单为Deal Orders(成交订单),并在 AllocationTable 中记订单的 Pieces 和 Sector 信息。
  • 执行文件的 Put 操作,即把文件存储到矿工的硬盘,并生成PoRep(复制证明)发送给交易网络存储到区块链。
  • 矿工需要定期(every epoch)需要向交易网络发送PoSt(时空证明)来证明你这段时间确实存储了指定的文件,交易网络在验证之后,支付相应的Filecoin。

​文章来源:原力观察

矿业新闻

鉴查人人矿场IPFS算力虚实?外行人还是少说内行话

2021-6-3 12:48:05

矿业新闻

“四问BTC”之二:“挖矿”到底有多耗能?

2021-6-3 13:00:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索