一、Filecoin简介
Filecoin是一个存储文件的分布式网络,目标是将全世界空闲的硬盘利用起来,并形成一个算法市场。
内置的激励机制让提供硬盘空间的用户成为矿工,让想要存储文件的用户成为客户。矿工通过提供数据存储或数据检索服务来获得相应代币。客户则需要付费来进行数据存储和数据检索。矿工还能通过挖矿来获取代币。
二、发展历程
- 2014年:IPFS(星际文件系统)创建,旨在取代HTTP协议
- 2017年6-7月:Filecoin项目成立,旨在激励IPFS的发展
- 2017年8月:项目受到国际顶级风投的青睐,并最终完成2.57亿美元的投资
- (2018 年 6 月:开始在Githubs上提交代码,最早计划是和EOS一样在此时上线主网的,经历了两次延期)
- 北京时间2019年2月14日:Filecoin代码正式开源,上线开发测试网,之后开展首次线上会议
- 2019年12月11日:测试网第一阶段上线,目标主要为实施互操作测试、证明电路优化和实施基准测试等内容。
- 2020年5月15日:测试网第二阶段上线,主要目的在于找到并修复bug,并在Filecoin主网上线前排查解决所有问题
- 2020年8月25日:太空竞赛正式开启,主要目的在于对网络进行压力测试
- 北京时间2020年10月15日22:44:主网正式上线
- 2020年11月21日9:00:Filecoin网络全网有效算力超1EiB, 标志着Filecoin网络正式进入EB时代
三、角色
1、Filecoin角色
l 存储矿工:提供硬盘存储,存储数据获利,参与挖矿获利,需质押代币,硬件需求较高
l 检索矿工:提供检索服务,不参与挖矿,不用质押,硬件要求低,需在网
l 存储客户:需交费来存储自己的数据
l 检索客户:需交费取回想要的数据
2、存储矿工
- 要想成为存储矿工,用户必须用与存储空间成比例的抵押品来抵押(即代币FIL)。
- 存储矿工通过在特定时间内存储数据,来响应用户的Put请求(即上传文件)。
- 存储矿工生成时空证明并提交到区块链网络,来证明他们在特定时间内存储了数据。
- 如果数据失效或丢失,存储矿工将被罚没部分抵押品。存储矿工也可以挖掘新区块。
- 如果挖到了新区块,矿工就能获得挖取新块的奖励和新区块中的交易费用。
3、检索矿工
- 检索矿工通过响应用户请求来提供用户所检索的数据来赚取代币。
- 和存储矿工不同,他们不需要提交存储数据,不需要生成存储证明。
- 另外,存储矿工可以同时作为检索矿工参与到IPFS网络中。
4、存储矿工要取得收益,需要做以下的任务:
- 抵押:向区块链抵押与声明的存储空间对应的代币
- 抢单:以合适的价格向系统提供存储报价单
- 存储证明:向系统证明自身已经存储了数据
- 响应验证:在其它人验证的时候,给出验证结果
5、检索矿工要取得收益,需要做以下的任务:
- 内存:配置读取速度足够快的内存
- 带宽:配置传输速度足够高的带宽
- 硬盘:配置读取速度足够高的硬盘
- 抢单:以合适的价格向系统提供检索报价单
四、核心概念
1、复制证明(PoRep)
矿工从密封的硬盘里随机取出一段数据,公开给网络验证,证明矿工还在存储着这个文件数据,并且这段数据是无法伪造的,而且是随时要能接受网络的验证挑战,这个过程就叫复制证明。
2、时空证明(PoSt)
时空证明提出了证明链的数据结构,证明链把复制证明的挑战过程记录下来,这样即使验证者不在线,也可以在未来的某个时间内利用时空证明去验证该矿工生成了证明链,时空证明会记录在区块链上。
3、预期共识(EC)
Filecoin的EC共识基于存储证明(POC),存储证明的大概原理是:用特定加密格式的数据填充硬盘(P盘),这些数据都是一小块一小块的,然后等待区块链给出随机数据段,假如矿工P好的硬盘里有这段数据,就可以参与新块的挖掘并获取奖励;而Filecoin的EC共识机制是:矿工密封数据并提交到链(复制证明的过程),在经过一定的区块数量之后完成时空证明,这样一轮过程下来表明矿工存储了有效的文件,所以拥有了有效算力,当然存储的文件越多算力越高。这个算力值占全网的比例就是出块的概率。
注:证明机制用来计算算力,共识机制就是用来决定出块
五、挖矿流程
- 安装挖矿软件并运行;
- 创建节点并加入网络,加入之后同步链数据、创建钱包地址;
- 挖矿需要质押FIL,需要购买或者借贷FIL给钱包地址打入;
- 挖矿正式开始:矿工获取存储订单,数据密封(扇区封装,耗时最长),生成复制证明,验证数据,形成有效算力,获得打包权,提交时空证明,获得出块奖励;
- 算力越大的矿工,获得区块打包的权利或者概率越大,这是涉及两个参数:赢票率和出块率;赢票率就是获得选票的概率,出块率就是获得区块奖励的概率。
- 而在上面的流程中,扇区封装是一个不可忽略的因素。通过复制证明封装扇区是整个流程中计算量相对庞大的过程,从而生成该扇区独一无二的标识码。一旦数据被封装,存储矿工将生成证明,运行压缩证明;
- 最后,将压缩后的结果提交到区块链,作为存储承诺的证明。
用割麦子来比喻挖矿,可能会更加通俗易懂一些。
- 首先,大家所谓的矿机其实就是存储集群,就像我们用来装麦子的袋子。没有存储数据的矿机是没有什么价值,就像没有装满麦子的袋子也是没有什么价值的。
- 扇区封装获得算力的过程就像割麦子一样。
- 我们用收割机来割麦子,就像我们通过搭建计算集群来对数据进行计算封装获取算力。
- 收割好了麦子装进袋子,就像将数据封装进矿机的硬盘里,然后将收割好的麦子拿去卖掉换钱的过程,就是参与区块打包获得区块奖励一样。收割的麦子越多卖的钱越多,封装的数据越多、算力越大,获得的区块奖励也越多。
- 但是,如果你收割好的麦子没有进行妥善保存,麦子在仓库里被老鼠吃掉了、淋雨受潮变质甚至被偷掉了,你收割的麦子也会损失掉。而你封装好数据的扇区如果不能完成挑战提交时空证明,算力也会被扣罚。
- 与传统的比特币挖矿原理不同的是,比特币挖矿的算力是恒定的,矿机接入网络之后,每天的产币量就是一个恒定值。但Filecoin挖矿则不同,Filecoin挖矿的算力值根据封装数据来定,这意味着它的算力是在不断累积的。
六、出块原理
1、矿工存储数据
矿工存储的数据,可以是有效的数据文件,当没有交易文件时,就会用特定的加密数据(垃圾数据)填充硬盘,这个过程最耗时, 数据越多, 时间越长. 初期, 大家硬盘都是空的, 就比谁存的快,这个时候比的是"密封速度", 涉及软件算法的优化. CPU,内存,以及硬盘的读写能力。
2、生成复制证明
密封完数据后就需要生成复制证明,以验证密封的数据来源于客户的源数据,如果在指定时间内(30s)完成,并广播到全网,让别人确认你这个出块的有效,然后上链(形成时空证明);这个过程要用到GPU加速, 如果30秒内完不成, 就没有算力。
3、广播、上链
把复制证明发送到链,让网络验证,证明一直存储着有效的数据。
4、验证时空证明
矿工必须每30分钟左右,提交一次复制证明,证明数据还在。链上也会在每个出块时间随机发出挑战challenge,来验证数据是否存在。 如果失败, 则被扣除抵押币。
总结:密封(时间最长)->证明(30s内)->上链(毫秒级)
七、质押机制
Filecoin有三种不同的质押机制:前置质押、后置质押、市场质押:
- 前置质押:成为矿工的门槛,质押的数量和承诺提供的存储容量(抵押的扇区)成正比,具体值可查看客户端,扇区到期后一次性释放;
- 后置质押:指矿工通过挖矿得到的区块奖励,先释放25%,剩余部分180天线性释放;
- 市场质押:指客户端数据交易需要质押一定量的代币,以保证市场交易能够正常进行。
*质押机制的对象主要是矿工,有助于维持Filecoin网络的稳定,让矿工不会轻易退网和及时修复故障。
八、硬件要求
硬件类型 |
硬件作用 |
选型要点 |
CPU |
更快的完成数据封装 |
仅考虑CPU的单一方案下,具备Hash计算指令的AMD处理器相对更优 |
RAM |
封装32G/64G固定大小扇区需要相应的RAM容量 |
扇区越大所需RAM越大 |
GPU |
在一定的时间内完成零知识证明 |
Lotus网络中只支持N卡 |
硬盘 |
存储文件/区块数据 |
需要稳定存储,预留空间提供查询服务,参与主网至少100TB容量 |
网络 |
作用于机器封装时与存储矿工的通讯 |
10GbE+网卡和交换机
|
官方推荐最低硬件要求
- CPU:一个矿工需要8+ 核的 CPU,推荐支持Intel SHA Extensions的 CPU 型号
- 内存:至少需要128 GiB 的 RAM。这应该与非常快的 NVMe SSD存储介质上的 256 GiB 交换相辅相成
- GPU:有权威榜,其他需手动启用GPU模型
- 磁盘:建议使用最少 1TiB 的基于 NVMe 的磁盘空间用于缓存存储
九、释放机制
Filecoin代币总量是20亿枚,官方分配规则如下:
名词 |
比例 |
数量 |
释放机制 |
协议实验室 |
15% |
3亿枚 |
6年线性释放 |
基金会 |
5% |
1亿枚 |
6年线性释放 |
红衫资本等投资者 |
10% |
2亿枚 |
6个月、12个月、24个月、3年线性释放 |
生态构建奖励(矿工奖励) |
70% |
14亿枚 |
以每6年减半的方式线性释放 |
*约平均每月释放555.6万枚
生态构建的70%奖励又分为两部分:15%由社区分配给予检索、修复等类型矿工,即3亿枚;55%给予存储类矿工,即11亿枚;
而存储矿工的释放规则其实又分为两种:
名词 |
比例 |
数量 |
释放机制 |
简单释放 |
30% |
3.3亿枚 |
6年减半方式 |
基线释放 |
70% |
7.7亿枚 |
6年线性释放 |
*区块奖励180天线性释放:区块奖励不是立刻释放的,是分为25%立刻释放和75%180天线性释放。比如某日长币720枚,那当天可到手180枚,剩下的540枚被锁定分成180份,每天一份,每份3枚。
九、实时数据截图
*截于2021/07/23,来源:https://filscan.io/