挖矿指南:Filecoin网络搭建逻辑与创新者的窘境
他强由他强,清风拂山岗;
他横由他横,明月照大江;
他自狠来他自恶,我自一口真气足。
-- 金庸《倚天屠龙记》
塔勒布在《反脆弱》一书中所定义的“反脆弱性”,是那些不仅能从混乱和波动中受益,而且需要这种混乱和波动才能维持生存和实现繁荣的事物的特性。然而经过这几天太空竞赛的表现,我们可以看到小矿工处于水深火热当中,主要源自:算力增长慢,存储成功率低,该如何“反脆弱”生长成为了其当下亟需解决的问题。
虽然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测试节点
钱包创建及代币水龙头获取
存储提供方(矿工)的配置操作
存储需求方(用户)的配置操作
检索市场及检索矿工
如何单机部署多节点集群及矿池设计思路
交易证明、复制证明和时空证明
1)搭建Filecoin测试节点
首先我们可以尝试在macOS和Linux服务器上搭建Filecoin测试节点,搭建测试节点主要步骤分为以下:安装 Filecoin安装包、运行与检查Filecoin软件、节点命名、激活节点,加入网络统计。
安装 Filecoin
其中有两种release安装包的获得方式,一种是通过源码进行自编译,另一种是下载官方发布的release安装包,两种方式各有利弊。
自编译release安装包的好处:可自定义的源码编译环节,能够清晰的看到整个 Filecoin从同步数据、挖矿、创建矿工、发布订单到接单的整个流程;其坏处:编译准备环节比较复杂,需要较强的Debug和运维能力,同时编译耗时长,对机器CPU性能要求更高。
自编译release安装包需要经历构建、安装、测试自编译包过程,从而为了更好地迎合开发,但是早期会随着官方版本调整需要重新构建和调整,该种方式比较适合运维能力强的团队。
获取官方release安装包。对于运维能力不是很强的团队可以使用官方开发的版本,但是官方公布的版本比较适合个人投资者;其好处是绕过了复杂和漫长的源码编译过程,可以直接使用;其坏处是由最新的代码包难以及时跟上最新的官网调整情况,实时性滞后。
可以通过https://github.com/filecoin-project/go-filecoin/releases下载最新版本的官方release安装包。
官方release安装包,来自:官网,2020-08-28
安装完之后就可以检查Go-filecoin测试网安装情况,初始化并运行filecoin节点,配置节点名字(Filecoin网络可以配置节点的别名),最后可以检查到节点与网络的可视化监控,就就可以看到自己的节点在全球网络上了。
2)钱包创建与代币水龙头获取
矿工是推动Filecoin网络共识处理流程的积极参与者,也是期望共识(EC)的区块提议者。其既可以是矿工也可以是存储需求方。矿工需要随时在线,等待接受客户的存储订单,并提供存储服务,并密封扇区数据,赚取FIL。不仅如此,其在该过程中还需要不断地执行时空证明(PoSt),以证明能否参与出块竞选。
来源:官网,2020
3)钱包搭建及获取水龙头
钱包搭建
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,主要是为了方便快速索引数据。
4)存储提供方(矿工)的配置操作
成为存储矿工同时需要接受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
反过头来想,对于存储提供方来说,我们其实还需要数据需求方才能完成整个撮合服务,那么他们是怎么操作的?
5)存储需求方(用户)的配置操作
需求方和提供方两者可以为同一体,就是节点既可以为矿工也可以为存储需求方,那么需求方是如何完成的?主要步骤可以分为:导入数据资源并获取CID、查看Ask订单池、选择匹配的存储服务。
导入数据资源并获取CID
需求方需要在Filecoin客户端中导入其想要存储的数据,并按照IPFS网络的数据加密形式来把数据进行切分、加密处理等后,生成内容ID。同时该步骤可能需要反向验证是否到处成功,用CID来检验。
查看Ask订单池
在对全网的Ask订单池进行查询,并根据存储端(矿工)报价选择交易对象。该网络阶段在测试网阶段是自动匹配的,然而在太空竞赛开始时是自由撮合的。
选择匹配的存储服务
在选择适合的订单和矿工ID后,就可以选择匹配的服务内容,通过内容ID我们可以查到矿池所经历区块的个数。同时我们要准备充足的余额来匹配特定的服务(根据FIL/byte/block而定);矿工阶段存储状态,是否存在不稳定的情况;节点网络与集群的关系是否是相连的;单位数据单位服务矿工能否支持等。
三、原力区赋能:没人需要被牺牲,小规模矿工会更加坚强
在我们了解了挖矿存储流程之后,也更加清楚目前主要是因为小矿工规模小、技术薄弱,导致一段期间内难以实现Sector难以生成、没有协助的订单需求方、区块打包方和出块难等等,直接导致该阶段小规模矿工难以获得太空奖励,间接导致全网算力增速过慢。
对此,我们可以选择运维技术实力过硬的矿商进行节点合并或者运维技术支持来提高算力,强强联手才是最后Filecoin最终要走向的大同局面,难道不是嘛?