【Filecoin相关】Filecoin开发版安装解析

【Filecoin相关】Filecoin开发版安装解析

2019年2月14日,Filecoin源码上线,同时Devnet开始运行,相信很多小伙伴都按耐不住,纷纷试用起来。但从目前网络的状况来看,在线运行的节点仅80个左右,数量非常少。我想其中

一个重要的原因是当前的Devnet更多的是为开发者使用,其安装过程看似简单,但实际上涉及面很广。

本着希望更多的开发者更多参与进来,推动产品的成熟和稳定的考虑。本文通过对安装过程进行初步解析,以提供更多的资料,使新进入的开发者少走弯路。


【Filecoin相关】Filecoin开发版安装解析


安装过程总共可分为以下步骤:

  1. 运行环境准备

  2. 下载 Filecoin 源码

  3. 下载编译相关依赖包

  4. 产生存储证明需要的原始数据

  5. 生成filecoin运行代码


按照此步骤进行完成,你就可以开始运行 filecoin 了。

这些步骤中最为复杂的是第三步和第四步。下文中将进行细解。


1. 运行环境准备—一台不错的主机

首先,当前的Filecoin版本不支持Windows,建议使用Linux或Mac进行测试。

其次,在进行环境准备是考虑一下因素:

  • 一个稳定的速度较高的网络环境,真的有很多东西要下载

  • 一个还不错的主机,因为有大量的编译和运算工作要做,如果你像我一样采用一个用了多年的两核Mac,够你忙一天的。

  • F.Q.,这个不多说,都懂得。


然后,就是考虑软件环境了,Filecoin的软件主要由Go, C/C++ 和 Rust 语言写成,而且,你知道,协议实验室的那些家伙都是些极客,玩的都是新东西,不仅是语言比较新,版本也是比较新的。请准备好以下软件环境:

  • Golang >= v1.11.2

  • Rust >= v1.31.0 和 cargo (Rust的包管理工具)

  • pkg-config (对版本没有特殊要求,我用 0.29.0)

  • Clang 或 gcc >= v7.4.0

注意:C编译器使用clang就可以,也可以使用 gcc。但在Mac上 gcc7及以上的有些版本有一些已知 bugs,希望你运气好不会碰到。我是碰到了,所以我改用clang。


软件的安装这里不细讲,不同的系统有不同的软件包管理工具,自行Google就好了。


2. 下载 Filecoin 源码

这一步非常简单,直接从 github 上克隆搞定:

mkdir -p ${GOPATH}/src/github.com/filecoin-project git clone https://github.com/filecoin-project/go-filecoin.git ${GOPATH}/src/github.com/filecoin-project/go-filecoin


3. 下载编译相关依赖包

在Filecoin 的 Readme 中,这一步被包含在以下简单的步骤中:

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

但其实,这里面包含很多步骤,根据你运行主机的配置不同,网络状况不同,你可能需要数小时,让它自动完成所有安装。当然,前提是你运气比较好,前面的所有配置又没有问题的情况下。但我相信,很多人会在这个过程中失败,可能是你运行环境的原因,也可能是网络的原因,抑或是你的VPN暂时不工作。


对于开发者而言,当然希望在有问题的时候获得更多的信息。这里,对这一个安装过程进行分解,解释。大家也可以按照以下所示的步骤逐步执行,确保每一个步骤成功。


1.
 安装 gx 和 gx-go

gx 是为 IPFS 系统的包管理工具,由协议实验室的核心开发者 whyrusleeping 开发,在IPFS相关项目中广泛使用,主要用于管理存放于IPFS(当然以后包括Filecoin)网络中的包。此工具当然也可以用于其他项目。


$ cd ${GOPATH}/src/github.com/filecoin-project/go-filecoin

$ go get -v -u github.com/whyrusleeping/gx

$ go get -v -u github.com/whyrusleeping/gx-go

$ gx install

$ gx-go rewrite

 

请单步执行以上命令,强烈建议在 go get 时带 -v 参数,这样,你能够掌握详细信息。获取gx 或 gx-go的过程中需要FQ。根据你的配置不同方法不一样,比如我喜欢直接在命令中加入代理设置,就像这样:

$ https_proxy=127.0.0.1:64513 go get -v -u github.com/whyrusleeping/gx


请确保每一步成功,不成功请找出原因并解决掉。


2.
 安装 gometalinter

这是 go 语言源码规范检查工具套装,是保证源码质量的辅助工具。


$ go get -v -u github.com/alecthomas/gometalinter

$ gometalinter –install


如果前一步没有问题,这一步一般不会有问题。


3.
 安装一系列其他依赖包

依次安装就可以了


$ go get -v -u github.com/stretchr/testify $ go get -v -u github.com/xeipuuv/gojsonschema $ go get -v -u github.com/ipfs/iptb $ go get -v -u github.com/docker/docker/api/types $ go get -v -u github.com/docker/docker/api/types/container $ go get -v -u github.com/docker/docker/client $ go get -v -u github.com/docker/docker/pkg/stdcopy $ go get -v -u github.com/ipsn/go-secp256k1 $ go get -v -u github.com/json-iterator/go $ go get -v -u github.com/prometheus/client_golang/prometheus $  $ go get -v -u github.com/jstemmer/go-junit-report  $ go get -v -u github.com/pmezard/go-difflib/difflib


这里,我们看到有几个docker有关的包也被含进来了。真得希望日后Filecoin的发布可以通过容器的方式,这样适用面广,安装也简单。


好了,所有依赖包已经安装完毕,马上开始准备数据。


4. 产生存储证明需要的原始数据


注意:存储证明有关的代码基本上都是采用 rust 编写,因此你会看到 rust 和 C 相关的编译过程。


1.
编译安装存储证明模块

这一步需要这个环境变量了: FILECOIN_USE_PRECOMPILED_RUST_PROOFS

为了方便,你可以执行以下命令来设置环境变量。

$ export FILECOIN_USE_PRECOMPILED_RUST_PROOFS=true


其实等于啥都没有关系,只要定义了就行,在以下命令中只检查有没有定义。再其实,第一次安装定义不定义也没有关系,因为没有预编译的 rust_proofs,反正要从头编译。

接下来仍在我们前面步骤所在的目录下执行以下命令:

./scripts/install-rust-proofs.sh


这个脚本主要是编译 proofs/rust-proofs/ 目录下的代码。经过大约140多个警告错误(看来需要优化和改进),经过200多个步骤后,正常退出,表示完成。


2.
安装签名模块

$ ./scripts/install-bls-signatures.sh


签名模块大家都懂的,就是证明你是你需要用到的代码部分。这在去中心化的系统中至关重要,不然大家都可以冒名顶替了。


3.
产生存储证明需要的数据

这一步是最为耗时的一步,在我的两核+4G内存的Mac上起了六个线程,几乎占据所有内存,运行了将近 3 个小时,简直就是煎熬【Filecoin相关】Filecoin开发版安装解析。当然,相信你们的配置会好很多,一个小时之内可以搞定【Filecoin相关】Filecoin开发版安装解析运行的时候尽管去洗澡好了,泡个吧回来也行。


./proofs/bin/paramcache


paramcache 是在前面编译证明模块的时候生成的。这里paramcache到底做什么呢?需要那么久?它就是用来产生在数据存储封印(sealing)和存储证明(proving)的时候需要的魔法信息【Filecoin相关】Filecoin开发版安装解析。 这些信息在后面的 zigzag证明(Filecoin的存储证明算法)中要用的。因为很大,所以需要很久。


运行结束后,你可以检查你的以下目录,应该可以看到相关文件如下:

$ pwd /tmp/filecoin-proof-parameters $ ls -l total 4784144 lrwxr-xr-x  1 zxm  wheel          95 Feb 17 14:22 params.out -> v9-zigzag-proof-of-replication-52431242c129794fe51d373ae29953f2ff52abd94c78756e318ce45f3e4946d8 -rw-r--r--  1 zxm  wheel  1670980536 Feb 17 14:21 v9-zigzag-proof-of-replication-52431242c129794fe51d373ae29953f2ff52abd94c78756e318ce45f3e4946d8 -rw-r--r--  1 zxm  wheel   770902584 Feb 17 12:30 v9-zigzag-proof-of-replication-f8b6b5b4f1015da3984944b4aef229b63ce950f65c7f41055a995718a452204d


怎么样,产生两个很大的文件,总共差不多 2.5GB


注:这两个文件实际上对任何节点都是一样的,完全可以放到网上下载就可以,项目方在以后的版本中也准备这么做。这样以后的安装应该轻松多了。


5. 生成Filecoin的运行代码


最后一步了,激动不?如果前面没问题,这一步非常简单。

$ go run ./build/main.go build

$ go run ./build/main.go install 


前一个命令编译,链接,生成初始数据;

后一个命令直接调用 go install 把 go-filecoin 安装至 ${GOPATH}/bin/ 目录。


至此,大功告成!!!   恭喜你!!!


接下来,你就可以开始初始化 filecoin,运行 daemon,查看链接情况,最重要的,挖矿试试看。这些都不在本文范围,敬请参看官方文档。 



【Filecoin相关】Filecoin开发版安装解析



【IPFS原力区】

总部位于上海,深耕IPFS社区发展与商业生态建设。

Force系列产品布局IPFS商业应用,贯通视频娱乐、文件共享、浏览器入口、数据加密管理等服务,为企业与个人的使用提供一站式服务。

旗下IPFS原力区是IPFS顶级价值生态社区,聚集了众多技术大咖和IPFS爱好者,通过持续输出全面、精细、优质的IPFS咨询和技术支持,将生态中的爱好者转化为IPFS支持者和参与者,推动IPFS生态的健康发展。


【Filecoin相关】Filecoin开发版安装解析


原文始发于微信公众号(IPFS原力区):【Filecoin相关】Filecoin开发版安装解析

原创文章,作者:admin,如若转载,请注明出处:https://blog.ipfsforce.com/df5b15bc54/

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

135-8568-8154

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息