专栏名称: IPFS星鉴网
星鉴网是全球首家专注于ipfs生态的垂直媒体,集信息传播、技术推广、应用孵化于一身,内容包含项目资讯、技术研讨、行业分析、人物专访、项目展示等维度,为数十万IPFS爱好者提供最具参考价值的媒体服务,成为ipfs爱好者的每日必读媒体。
目录
相关文章推荐
理想汽车  ·  离乡返工,把家的味道带回家 ·  5 天前  
润农畜牧报价  ·  2025年2月6日 ... ·  3 天前  
51好读  ›  专栏  ›  IPFS星鉴网

【Filecoin源码仓库全解析】第一章:搭建Filecoin测试节点

IPFS星鉴网  · 公众号  ·  · 2019-02-16 16:14

正文


2019.2.14 情人节,Filecoin项目开放了核心源码仓库go-filecoin,并更新了 filecoin-project organization下的诸多核心成果,这意味着,Filecoin已然度过了最困难的难点攻关期, 进入到了全民公测阶段

本系列文章将协助大家对源码仓库进行全解析 ,帮助大家系统地学习和了解Filecoin这个项目,发现新的机遇和商机,小编将在这段时间密切关注Filecoin动态,和大家一起度过 Filecoin全民公测阶段



章节目录

Filecoin里程碑

第一章:搭建Filecoin测试节点

第二章:如何创建钱包,获取FIL Mock代币

第三章:存储提供方(矿工)的配置操作

第四章:存储需求方的配置操作

第五章:如何让自己的节点加入测试网络

第六章:如何组建多节点矿工集群('矿池')

第七章:如何参与复制证明游戏测试

第八章:Filecoin Organization介绍

More



Filecoin里程碑

(万事开头难,一起追溯和回顾一下Filecoin的革命历程)


  • 2015年7月15日,Filecoin发布了第一版白皮书:
    《Filecoin: A Cryptocurrency Operated File Storage Network》


  • 2016年,Juan Benet首次对外发布Filecoin主题演讲,向大众宣告:IPFS准备添加一个名为Filecoin,基于区块链的货币层,以激励IPFS网络上的数据存储。


  • 2017年7月19号,Filecoin发布了第二版白皮书:《Filecoin: A Decentralized Storage Network》。

  • 2017年8月-9月,Filecoin发布了SAFT协议,开始在Coinlist上发起众筹,吸引来自50个国家的2100+投资人参与,成功募集2.57亿美金,并承诺于2022年之前完成此项目。

  • 2018年8月,Filecoin在Lab Day技术日,发布了Demo和测试网络模拟器演示,并向大众开放Github之上的filecoin-project organization。

  • 2019年2月14日,filecoin-project organization开源了核心源码库:go-filecoin, 开启全民公测阶段

  • 未来,更多期待...

本章我们将一步一步,尝试在自己的macOS和Linux服务器上搭建Filecoin测试节点,小编的实战操作系统环境如下:

Darwin daijialedeMBP.lan 17.4.0 Darwin Kernel Version 17.4.0: Sun Dec 17 09:19:54 PST 2017; root:xnu-4570.41.2~1/RELEASE_X86_64 x86_64

第一章 搭建Filecoin测试节点

1.1 准备环境依赖

在安装和配置go-filecoin的测试节点之前,需要做的准备工作比较繁多,相对复杂,因为小编机器采用的是macOS,将使用homebrew包管理器来安装语言环境。

1.1.1 golang安装

为啥安装就不解释了...

# 需要安装大于v1.11.2版本的golangbrew install gogo version go1.11.2 darwin/amd64

设置GOPATH,由于小编采用的是zsh,而非macOS自带的bash,所以环境变量设置在.zshrc中:


vim ~/.zshrc

编辑.zshrc,添加如下图所示内容:

记得重启终端,新的环境变量GOPATH才会生效

1.1.2 rust安装

Filecoin的复制证明工程实现,基本都是使用rust编写的,为此,我们需要安装rust环境:

# 需要安装大于v1.31.0版本的rust/Cargobrew install rustcrustc -Vrustc 1.32.0cargo -Vcargo 1.32.0

1.1.3 pkg-config安装

处理编译go-filecoin产生的linker flags

brew install pkg-config


1.2 安装配置go-filecoin

这里,将介绍两种release安装包的获得方式,一种是通过源码进行自编译,另一种是下载官方发布的release安装包,两种方式各有利弊,小编都实测了一下。

1.2.1 自编译release安装包

可以重构go-filecoin相关源码,定制自己专属的go-filecoin binary release包,方便大伙们来炫技、PR、以及装B。


  • 好处:绕过了复杂和漫长的源码编译环节

  • 坏处:编译准备环节比较复杂,需要较强的Debug和运维能力,同时编译耗时长,对机器CPU性能要求更高。


a.下载go-filecoin源码仓库:

mkdir -p ${GOPATH}/src/github.com/filecoin-projectgit clone [email protected]:filecoin-project/go-filecoin.git ${GOPATH}/src/github.com/filecoin-project/go-filecoin

熟悉go语言的朋友肯定不会陌生,源码路径习惯统一维护在${GOPATH}的src下,协议实验室也是提倡大家遵守这样的开发规范。

b.检查并更新gcc/Clang版本

go-filecoin在构建时需要引用到cgo-compatible rust-proofs library 证明依赖,因此需要c编译器支持,比较常见的c编译器工具有:gcc/clang,下面分别介绍两个工具的配置:

Clang

macOS用户如果安装过xcode,默认应该是高版本的clang配置,小编机器的Clang配置如下:

如图所示,Clang-902.0.39.1版本,是符合接下来的编译需求的。

gcc

gcc需要v7.4.0的高版本支持,以及指定特殊系统变量$CC

brew install gcc-7export CC=gcc-7


c.安装gx包管理工具

gx需要单独介绍一下,这是一个很有意思的golang包管理工具,其管理的所有依赖库都存储于IPFS网络之中,由协议实验室的核心工程师whyrusleeping所创造,并灵活运用于协议实验室的各个代码库之中,而go-filecoin的依赖安装也离不开gx:

go get -u github.com/whyrusleeping/gxgx version

设置了GOPATH,gx是能被识别为全局环境变量的,否则无法进行后续依赖安装。

d.安装依赖并编译源码

cd ${GOPATH}/src/github.com/filecoin-project/go-filecoinFILECOIN_USE_PRECOMPILED_RUST_PROOFS=true go run ./build/*.go deps

提示:此过程比较漫长,小编机器跑了44分钟多,且CPU过热导致风扇不停,大家可以看一下自己机器的情况....

d.构建、安装、测试自编译包

洗了个澡、泡了杯茶,刷了会抖音...

45分钟过去了:

嗯...终于看到了安装并编译好的半成品...

别急,release成品就快了:

# 构建release包go run ./build/*.go build# 安装go-filecoin至${GOPATH}/bin目录下go run ./build/*.go install# 单元测试go run ./build/*.go test


1.2.2 获取官方release安装包

如上图所示,可以在https://github.com/filecoin-project/go-filecoin/releases中直接下载官方于2019年2月11日发布的0.0.1版本,将安装包解压至{$gopath}/bin目录下。

  • 好处:绕过了复杂和漫长的源码编译环节。

  • 坏处:由于官方代码仓库在频繁更新,无法获取最新的代码包,实时性滞后。

PS:好奇官方为啥不配置个自动化持续集成...我也是无语了

1.3 验证安装

经过1.2节操作后,全局运行 go-filecoin -help ,出现如下图菜单栏,说明节点已经成功安装。

1.4 初始化节点

测试网络有多种类型:







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