内容简介:2019年2月14日,Filecoin 源码上线,同时Devnet开始运行,相信很多小伙伴都按耐不住,纷纷试用起来。但从目前网络的状况来看,在线运行的节点仅80个左右,数量非常少。我想其中一个重要的原因是当前的Devnet更多的是为开发者使用,其安装过程看似简单,但实际上涉及面很广。本着希望更多的开发者更多参与进来,推动产品的成熟和稳定的考虑。本文通过对安装过程进行初步解析,以提供更多的资料,使新进入的开发者少走弯路。安装过程总共可分为以下步骤:按照此步骤进行完成,你就可以开始运行 filecoin 了。
2019年2月14日,Filecoin 源码上线,同时Devnet开始运行,相信很多小伙伴都按耐不住,纷纷试用起来。但从目前网络的状况来看,在线运行的节点仅80个左右,数量非常少。我想其中一个重要的原因是当前的Devnet更多的是为开发者使用,其安装过程看似简单,但实际上涉及面很广。本着希望更多的开发者更多参与进来,推动产品的成熟和稳定的考虑。本文通过对安装过程进行初步解析,以提供更多的资料,使新进入的开发者少走弯路。
image
安装过程总共可分为以下步骤:
- 运行环境准备
- 下载 Filecoin 源码
- 下载编译相关依赖包
- 产生存储证明需要的原始数据
- 生成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/prometheus/client_golang/prometheus/promhttp $ 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 个小时,简直就是煎熬
image
。当然,相信你们的配置会好很多,一个小时之内可以搞定
image
。运行的时候尽管去洗澡好了,泡个吧回来也行。
$ ./proofs/bin/paramcache
paramcache 是在前面编译证明模块的时候生成的。这里paramcache到底做什么呢?需要那么久?它就是用来产生在数据存储封印(sealing)和存储证明(proving)的时候需要的魔法信息。 这些信息在后面的 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,查看链接情况,最重要的,挖矿试试看。这些都不在本文范围,敬请参看官方文档。
feitonghu.jpg
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- K8S 1.12大特性最快最深度解析:通过ComponentConfig更轻松安装和升级
- Golang入门:从安装、部署以及GoLand的安装开始
- Win2016上安装SFB2015先决条件安装失败:RewriteModule
- mac:Go安装和配置+GoLand安装和使用之完整教程
- Pulsar本地单机(伪)集群 (裸机安装与docker方式安装) 2.2.0
- 如何将Rancher 2.1.x 从单节点安装迁移到高可用安装
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
One Click
Richard L. Brandt / Portfolio Hardcover / 2011-10-27 / 25.95
An insightful look at how Amazon really works and how its founder and CEO makes it happen. Amazon's business model is deceptively simple: make online shopping so easy and convenient that customers ......一起来看看 《One Click》 这本书的介绍吧!