塔勒布在《反脆弱》一书中所定义的「反脆弱性」,是那些不仅能从混乱和波动中受益,而且需要这种混乱和波动才能维持生存和实现繁荣的事物的特性。然而经过这几天太空竞赛的表现,我们可以看到小矿工处于水深火热当中,主要源自:算力增长慢,存储成功率低,该如何「反脆弱」生长成为了其当下亟需解决的问题。
杀不死我的,只会让我更坚强。
——尼采
虽然 Filecoin 官方最新发布《缔造 Filecoin 经济》白皮书中提到一个简单铸造,里面涉及一个概念——抗脆弱性,就是为了让矿工可以在早期实现。因为技术、资金的缘由很有可能难以实现,所以原力区再次升级全球合作伙伴计划,助力暂时技术实力落后的矿工,赋能全网络在符合基准线要求的「200%」增长,共塑分布式存储的规模落地。
本文会通过介绍挖矿的流程,以及目前太空竞赛部分矿工存在的窘境,讲述我们该如何应对。
文前简述:通过这一轮的太空竞赛表现,目前很多矿工 除了算力规模不够大外,还有可能是因为高度跟不上、Worker 的 P1 和 P2 频频失败、没有矿工协助 winning 打包、没有存储需求方提供订单 、出块难等等原因,导致部分矿工早期算力难以增加,爆块成功率低等。从微观方面而言是该矿工有可能获取不了太空竞赛奖励,宏观方面而言就是网络难以进一步壮大。
Filecoin 全览图 :挖矿、存储与检索
热浪来潮,全球新数字时代、中国新基建的兴起,很多人朋友会问,IPFS 的时代意义是什么?Filecoin 的焦点又在何处?Filecoin 挖矿实际参与的是什么赋能行为?
IPFS 相当于 BT 协议的升级版,但其不仅限于内容存储的交流,还涉及到全领域的应用,可以理解为一个国际化、无中心、高安全、高隐秘性的新互联网络。其赋予的时代意义不仅限网络基建服务全面升级,更是赋予人性对隐私自由的追求。
而 Filecoin 是维护 IPFS 网络公平有序进行的一种价值媒介,相当于自由经济「法律」的制定和监督者,以经济手段合理监管和制裁每个理性经济人。总之,IPFS 是 Filecoin 映射的价值体现,IPFS 宏观意义会更大,Filecoin 属于该网络的价值体现。
BTC 的挖矿意义是维护和监督去中心化账本,是建立共识的基础,其采取的是 PoW 共识机制,通过工作量证明来形成共识,整体体现 BTC 的价值是共识,从而形成加密货币中最大的支付代币。
Filecoin 挖矿的本质除了维护账本之外,还可以提供存储、检索基础数据服务,所以 Filecoin 挖矿会给网络上赋予更多的实际价值,为服务提供网络架构。
Filecoin 挖矿全览图,来源:IPFS 原力区,2020-08-28
由上图可以看出,我们矿工在参与 Filecoin 网络中会涉及三个活动:区块打包、数据存储和数据检索,介绍如下:
- 区块打包(爆块奖励)。矿工通过搭建节点、创建钱包、申请水龙头等来生产矿工标识,然后通过一些硬件设备来支持整个网络,完成数据封装和时空证明,从而获取打包权限,获取爆块奖励。
- 数据存储(链上)。客户与存储矿工确定订单后,矿工通过复制证明和时空证明来确保数据服务,从而获取对应的存储服务收费。
- 数据检索(链下)。客户发出检索请求后,检索矿工活动订单后提供检索服务,从而支付对应的检索服务给矿工。
那么我们如何成为一名矿工?
如何成为一名矿工
很多用户都不是很了解如何成为一名矿工,其实从操作而言,我们也可以根据官方及网络信息成为一名合格的矿工,但是可能收益会存在一定的差异化,所以这块就需要借助专业运维的力量,让我们更好获得更高收益。话不多说,矿工操作指南如下:
- 搭建 Filecoin 测试节点
- 钱包创建及代币水龙头获取
- 存储提供方(矿工)的配置操作
- 存储需求方(用户)的配置操作
- 检索市场及检索矿工
- 如何单机部署多节点集群及矿池设计思路
- 交易证明、复制证明和时空证明
搭建 Filecoin 测试节点
首先我们可以尝试在 macOS 和 Linux 服务器上搭建 Filecoin 测试节点,搭建测试节点主要步骤分为以下:安装 Filecoin 安装包、运行与检查 Filecoin 软件、节点命名、激活节点,加入网络统计。
安装 Filecoin
其中有两种 release 安装包的获得方式,一种是通过源码进行自编译,另一种是下载官方发布的 release 安装包,两种方式各有利弊 。
自编译 release 安装包的好处:可自定义的源码编译环节,能够清晰的看到整个 Filecoin 从同步数据、挖矿、创建矿工、发布订单到接单的整个流程;其坏处:编译准备环节比较复杂,需要较强的 Debug 和运维能力,同时编译耗时长,对机器 CPU 性能要求更高。
自编译 release 安装包需要经历构建、安装、测试自编译包过程,从而为了更好地迎合开发,但是早期会随着官方版本调整需要重新构建和调整,该种方式比较适合运维能力强的团队。
获取官方 release 安装包。对于运维能力不是很强的团队可以使用官方开发的版本,但是官方公布的版本比较适合个人投资者;其好处是绕过了复杂和漫长的源码编译过程,可以直接使用;其坏处是由最新的代码包难以及时跟上最新的官网调整情况,实时性滞后。
可以通过 Github 下载最新版本的官方 release 安装包。
官方 release 安装包,来自 : 官网,2020-08-28
安装完之后就可以检查 Go-filecoin 测试网安装情况,初始化并运行 filecoin 节点,配置节点名字(Filecoin 网络可以配置节点的别名),最后可以检查到节点与网络的可视化监控,就就可以看到自己的节点在全球网络上了。
钱包创建与代币水龙头获取
矿工是推动 Filecoin 网络共识处理流程的积极参与者,也是期望共识(EC)的区块提议者。其既可以是矿工也可以是存储需求方。矿工需要随时在线,等待接受客户的存储订单,并提供存储服务,并密封扇区数据,赚取 FIL。不仅如此,其在该过程中还需要不断地执行时空证明(PoSt),以证明能否参与出块竞选。
来源:官网,2020
钱包搭建及获取水龙头
钱包搭建
Filecoin 钱包和很多区块链钱包一样,作为一个加密资产的承载体,是专属于区块链系统的一环,一般是非对称加密的公私钥。这里钱包地址是由节点自动初始化生成,地址信息十分重要,查询余额,导出和导入都需要。
水龙头
FIL Faucet 是一个代币水龙头,可以让一些早期参与的 Filecoin 节点用户提前获取一定数量的 FIL 代币参与早期市场活动,仅供测试阶段使用,不具备转账和权益价值。获取该测试 FIL 代币通过 GitHub 账号来分发,太空竞赛阶段每个账号 100 个 FIL,主要是抵押挖矿。
在建立钱包之后,我们还要区分节点 ID、账户、钱包地址、矿工 ID、内容 ID。
来源:IPFS 原力区,2019
- 节点 ID 可以是存储客户或者矿工,ID 是节点的唯一标识,就像 Facebook 的名称一样,永不重复;
- 账户 ID 与节点 ID 一一对应,账户可以存多个钱包地址,主要是与 FIL 直接挂钩,节点 ID 偏向识别属性,账户 ID 偏向资产属性,节点自动初始化生成;
- 矿工 ID 主要是与矿工收益有关,所以在布置好 Filecoin 节点后,需要矿工手动创建命令通过节点 ID 生产矿工 ID;
- 内容 ID 与网络存储的文件挂钩,每份文件会生产唯一的 ID,主要是为了方便快速索引数据。
存储提供方(矿工)的配置操作
成为存储矿工同时需要接受 Filecoin 存储市场的制定规则和 EC 共识,方可进行挖矿行为,因为在区块链世界里,代码即是法律。
存储提供方主要是承诺提供存储服务,通过订单协商沟通及确定后,复制和时空证明来证明服务,整体周期可以步骤为:
- 存储交易证明。建立身份,提交抵押和存储容量,成为一个存储矿工;
- 生产订单 。创建区块,创建 Ask 订单,与用户节点交易;
- 停止挖矿。密封数据并提交复制证明,更新订单状态完成交易,时空证明数据持续存储;
- 提高爆块能力证明。存储矿工持续手机证明,创建 post,提高存储算力和可证明算力,以提高爆块机率。
创建矿工 ID
创建矿工身份并获取 ID 后,同时需要承诺能够提供存储服务证明,不过针对不同群体测试网络不同:针对普通用户,扇区为 256MB,针对开发者用户,扇区为 1KB,主要群体不同标准不同,后者更为节约封闭扇区耗时,但是都不强制规定,都是根据各自的硬件配置和运维水平调整。
设置并发送 Ask 订单配置
存储提供方初始一个 Ask 订单设置,一来启动挖矿奖励,二来可以进行存储订单收益,后者的话网络可以根据订单来进行自由调节价格来撮合市场。
Ask 订单配置 问题 :矿工 worker 地址,主要是完成所有外在的事物,包含参与 Ask 订单提交证明、封存数据等,worker 常迁移和更变,安全级别较低;矿工 owner 地址,适合冷存私钥,安全级别更高;FIL/byte/block 为单价;生成一个区块时间;Gas 单次燃烧所需要的 FIL 费用值;Gas limit 总数。
在早期,矿工需要给自己灌数据,该过程主要是要满足矿工在早期阶段需要达到某个数据体量,有三种方式:
- 接受订单,目前该阶段是自动接受订单;
- 密封过程,数据封装;
- 时空证明,时空证明后就可以持续证明该数据稳定保存。
存储订单的交易成功后,将由存储算力(有效算力)和可证明存储能力(sector 成功率)两个重要参数作为与出块的概率直接挂钩。
目前很多小规模的矿工卡在该步骤,主要有四点:高度难以同步、难以撮合订单和矿工难以打包。
- 高度难以同步。因为技术的原因,很多矿工在做 Sector 过程中,P1 和 P2 阶段不稳定,以及失败率过高(下图,很多失败率高达 90% 以上),导致难以实现数据封存而失败。
全网节点 Sector 检查统计情况(部分),来源:IPFS 原力区,2020-08-27
- 撮合订单难。主要是目前太空竞赛阶段与测试网阶段不同,测试网结算是自动接单,太空竞赛是可选择阶段,导致小矿工可能生产不了订单,完成不了后面的存储矿工步骤,获取不了存储订单的收益,以及提高不了爆块的机率。
- 打包难。针对小规模的矿工,在完成 windows 和 winning 时空证明之后,没有矿工协助打包并广播网络,导致出块失败;反而对于多集群的矿工就可以互相协助。
- 出块难。随着算力的增长,存储规模的增大,特别是对于是 1PB 以上的矿工,出块需要随机访问整个存储中的部分扇区,这对响应时间是一个很大的挑战。在 30 秒内无法完成数据读取的矿工将会浪费一次出块机会,相应的收益就会减少。
原力区 winning 时空证明时间(平均 6 秒),IPFS 原力区,2020-08-27
反过头来想,对于存储提供方来说,我们其实还需要数据需求方才能完成整个撮合服务,那么他们是怎么操作的?
存储需求方(用户)的配置操作
需求方和提供方两者可以为同一体,就是节点既可以为矿工也可以为存储需求方,那么需求方是如何完成的?主要步骤可以分为:导入数据资源并获取 CID、查看 Ask 订单池、选择匹配的存储服务。
导入数据资源并获取 CID
需求方需要在 Filecoin 客户端中导入其想要存储的数据,并按照 IPFS 网络的数据加密形式来把数据进行切分、加密处理等后,生成内容 ID。同时该步骤可能需要反向验证是否到处成功,用 CID 来检验。
查看 Ask 订单池
在对全网的 Ask 订单池进行查询,并根据存储端(矿工)报价选择交易对象。该网络阶段在测试网阶段是自动匹配的,然而在太空竞赛开始时是自由撮合的。
选择匹配的存储服务
在选择适合的订单和矿工 ID 后,就可以选择匹配的服务内容,通过内容 ID 我们可以查到矿池所经历区块的个数。同时我们要准备充足的余额来匹配特定的服务(根据 FIL/byte/block 而定);矿工阶段存储状态,是否存在不稳定的情况;节点网络与集群的关系是否是相连的;单位数据单位服务矿工能否支持等。