今日推荐|Filecoin网络搭建逻辑与创新者的窘境

2020-08-31 17:56:18 作者: 今日推荐|F

官方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)存储需求方(用户)的配置操作