专栏名称: IPFS星鉴网
星鉴网是全球首家专注于ipfs生态的垂直媒体,集信息传播、技术推广、应用孵化于一身,内容包含项目资讯、技术研讨、行业分析、人物专访、项目展示等维度,为数十万IPFS爱好者提供最具参考价值的媒体服务,成为ipfs爱好者的每日必读媒体。
目录
相关文章推荐
山西省教育厅  ·  山西省教育厅关于组织参加2025年寒假教师研 ... ·  3 天前  
山西省教育厅  ·  山西省教育厅关于组织参加2025年寒假教师研 ... ·  3 天前  
青海教育  ·  AI时代,如何做不可替代的智慧教师? ·  3 天前  
青海教育  ·  AI时代,如何做不可替代的智慧教师? ·  3 天前  
51好读  ›  专栏  ›  IPFS星鉴网

【Filecoin源码仓库全解析】第三章(上):存储提供方(矿工)的配置操作

IPFS星鉴网  · 公众号  ·  · 2019-02-20 19:00

正文


欢迎大家来到第三章,经过 前章 《【Filecoin源码仓库全解析】第二章:如何创建账户钱包并获取FIL Mock代币》 的内容阅读后,我们应该能顺利在Filecoin系统中创建自己的账户钱包,并获取参与测试的FIL Mock代币了, 本章,我们将配置自身节点角色,成为存储提供方(矿工),参与挖矿。

第三章部分内容和数据来源于 星际大陆(IPFSMAIN)詹总的私下交流 ,感谢星际大陆(IPFSMAIN)团队在此方面投入的机器资源成本和分享。

由于这块周边内容比较多,因此拆为 上下篇两部分 来介绍。

3.1 前章问题补充

这几天后台收到了不少朋友的建议和求助,在linux环境上编译go-filecoin源码和安装遇到了大量的问题。

别着急,别沮丧,毕竟juanbenet(协议实验室创始人)本人配置的过程也都不是一帆风顺:

好消息是,晨雾科技团队为大家拉取了最新的源码,针对不是macOS的用户,编译好了一份目前(2月19日)最新的filecoin-Linux.tar.gz release包(内涵彩蛋,欢迎体验),免去了编译环节的繁琐步骤, 下载渠道如下:

晨雾科技(mornmist.tech)linux版:https://github.com/mornmist/Filecoin-For-Chinese/releases/tag/0.0.2

3.2 身份与职能

在第二章中,我们通过区分各个ID的概念知道了Filecoin体系中节点所扮演的两重角色,四重身份。

而Filecoin作为一个去中心化的存储解决方案,对比目前成熟的中心化存储解决方案,这几种身份的职能可以类比为:


  • 存储矿工(Storage miners):比较像传统互联网中,负责专门存储数据的Web服务器。


  • 检索矿工(Retrieval miners):比较像内容分发网络CDN的作用,负责检索抓取数据,服务于存储需求方用户。

  • 存储客户(Storage clients):想存储数据的需求方用户。


  • 检索客户(Retrieval clients):想检索数据的需求方用户。

Filecoin体系中的节点同时具备这四重身份,并且集其身份所对应的功能于一身,在整个网络中发挥着对应的职能。这也是区块链网络区别于传统互联网的精髓之处。大家清楚了节点所承载的角色之后,会更加好理解后续的一些测试点和操作,也能 同时从产品、技术等多个角度 ,更加理性地去分析和评判Filecoin的系统设计。



3.3 Filecoin存储市场(上帝)

节点之所以有多重身份与职能,主要是源于Filecoin体系中设计的市场机制。在这样的一个机制中,需求者和提供者基于存储合约(storage contracts)进行订单的发现、协商(双向选择)和交易。

Filecoin中存在与 以太坊中智能合约比较相似 的设计,这块被定义为 Actor Actor 在程序设计上是一个具有自己状态和方法集的链上对象。这个对象将被 矿工、账户、存储市场 等多角色所继承。

没错, 存储市场(storage market)本身也是一个 Actor 为方便理解,可以类比为比特币系统中的 “上帝” (考虑到检索市场并不参与链上出块)。

这是继承 Actor 后,存储市场(上帝)的部分接口实现:

type StorageMarket interface {    //通过指定公钥和自定的抵押FIL金额以及libp2p所要连接的节点ID,来创建存储矿工角色    CreateStorageMiner(pubk PublicKey, pledge BytesAmount, pid libp2p.PeerID) Address    //检测到矿工存在作弊行为时,需要削减奖励    SlashConsensusFault(blk1, blk2 BlockHeader)    //在规定的时间内无法提供PoSt证明,抵押代币将被削减    SlashStorageFault(miner Address)    //动态更新当前存储市场参与者数据与总存储量等数据    UpdateStorage(delta BytesAmount)    //全网总算力计算    GetTotalStorage() BytesAmount}


3.4 成为一名存储矿工

成为存储矿工:

  • 意味着默认接受Filecoin存储市场Actor的规则,进行挖矿行为。即 Code is law

  • 意味着将是推动Filecoin网络共识处理流程的积极参与者,也是期望共识(EC)的区块提议者。

  • 意味着随时在线,等待接受客户的存储订单,并提供存储服务,并密封扇区数据,赚取FIL。


  • 意味着应该不断地执行时空证明(PoSt),以证明能否参与出块竞选。


  • 还意味着,你规规矩矩地做了这么多事情后, 到头来!!!真得能得到Filecoin存储市场Actor(上帝)所分配的额外出块奖励。


创建矿工ID

创建矿工身份,获取ID,需要承诺能提供存储服务的10个扇区(扇区大小和测试网络环境相关,如下),

《【Filecoin源码仓库全解析】第一章:搭建Filecoin测试节点》 中,测试网络有多种类型:

  • devnet-user :针对普通用户,扇区(SECTORS)为256MiB


  • devnet-nightly :针对开发者用户,扇区(SECTORS)为1KiB,可节约封闭扇区耗时,便于测试。


测试网络的选择,在初始化的时候指定,并在启动daemon过程时,需要加上:

env FIL_USE_SMALL_SECTORS=true go-filecoin daemon

承诺能提供存储服务的扇区之后,需要抵押100FIL,设置消息的gas price为0FIL/unit,限制1000 gas units(和以太坊的gas类似,合约函数的防死循环限制)。

brew install jqgo-filecoin miner create 10 100 --price=0 --limit=1000 --peerid QmQ43XdtJAmSwZMA8QijJd4Zo1fT9YgsKevNbr158aAmif

这样的设置缘由是:除了抵押之外,这样不需要额外花费FIL。

执行成功后,将等待一段时间,此过程耗时取决于网络环境,小编耗时12分钟左右:

之后,会返回给你生成好的矿工ID,并且系统中多出了一部分的磁盘空间被此程序虚拟化成扇区空间。

1)启动挖矿进程

go-filecoin mining start


2)Filecoin区块链浏览器验证

我们可以登录:

http://nightly.kittyhawk.wtf:8000/

在Filecoin区块链浏览器中查询验证我们的矿工Actor:

3)结束挖矿进程

go-filecoin mining stop


3.5 设置并发送Ask订单

在创建好矿工身份之后,我们可以初始化一个Ask订单配置,启动挖矿进程后,Filecoin存储市场中的用户,可以根据网络中矿工们的众多Ask订单价格和容量来自由选择。







请到「今天看啥」查看全文