昨天早上小编还在睡梦中,就被老板喝醒! “Filecoin 上线了,赶紧进入一级战备状态!”
公司的程序猿小伙伴们,就开始加紧按照官方文档指导,编译好了 Filecoin 客户端 go-filecoin
,然后加入了测试网络,不是我们吹,我们绝对有可能是亚洲第一个接入测试网的,嘿嘿嘿!
我们是怎么知道的呢?
https://stats.kittyhawk.wtf/ 是 Filecoin 的 网络状态监控面板,我们用 dcnode
(点存节点)作为节点名字接入测试网之后,全亚洲就两个节点,所以,我们有50%的概率是全亚洲第一个接入测试网的,合情合理吧?
这个仪表盘很炫酷啊,完全可以通过设置节点名字向全世界对心爱的姑娘表白啊!
是不是已经按捺不住想要试试?!如果你有编程基础,跟着小编一步步来,你也可以连上测试网络!
要求
- 科学上网
- Ubuntu 16.04 操作系统(目前支持 MacOS 和 Linux 系统)
- git
- 安装 Go v1.11.2 或更高版本的开发环境
- 安装 Rust v1.31.0 或更高版本的开发环境
- 安装 gcc v7.4.0或更高版本的开发环境
- 其他还有一些依赖环境,例如
cargo
,pkg-config
,clang
,gx
等,可以根据自己的实际情况来进行安装和配置。
下载并准备
- 从 GitHub 上克隆 Filecoin 源代码
# 在你的 Go 工作目录下创建 filecoin 目录
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
- 安装项目依赖环境
此步骤耗时较长,需要耐心等待……
# 确保命令行所在路径是 filecoin 源代码目录
cd ${GOPATH}/src/github.com/filecoin-project/go-filecoin
# 安装依赖
FILECOIN_USE_PRECOMPILED_RUST_PROOFS=true go run ./build/*.go deps
在尝试的的过程中,第一次很大几率不会成功,下次再安装依赖的时候,可以使用
FILECOIN_USE_PRECOMPILED_RUST_PROOFS=true go run ./build/*.go smartdeps
可以稍微节省一点时间。
安装过程部分:
λ FILECOIN_USE_PRECOMPILED_RUST_PROOFS=true go run ./build/*.go deps
pkg-config --version
0.29.1
Installing dependencies...
go get -u github.com/whyrusleeping/gx
go get -u github.com/whyrusleeping/gx-go
gx install
[done] [fetch] 1ms QmRoARq3nkUb13HSKZGepCZSWe5GrVPwx7xURJGZ7KWv9V go-ipld-cbor
[done] [fetch] 2ms QmWHbPAp5UWfwZE3XCgD93xsCYZyk12tAAQVL3QXLKcWaj toml
[done] [fetch] 1ms QmcWjZkQxyPMkgZRpda4hqWwaD6E1yqCvcxZfxbt98CEAK go-fs-lock
[done] [fetch] 0s QmVmDhyTTUcQXFD1rRQ64fGLMSAoaQvNH3hwuaCFAPq2hy errors
[done] [fetch] 0s QmTQdH4848iTVCJmKXYyRiK72HufWTLYQQ8iN3JaQ8K1Hq go-merkledag
[done] [fetch] 0s QmdcULN1WCzgoQmcCaUAmEhwcxHYsDrbZ2LvRJKCL8dMrK go-homedir
[done] [fetch] 0s QmVRxA4J3UPQpw74dLrQ6NJkfysCA1H4GU28gVpXQt9zMU go-libp2p-pubsub
[done] [fetch] 0s Qma6uuSyjkecGhMFFLfzyJDPyoDtNJSHJNweDccZhaWkgU go-ipfs-cmds
...
...
gx-go rewrites
go get -u github.com/alecthomas/gometalinter
gometalinter --install
Installing:
deadcode
dupl
errcheck
gochecknoglobals
...
...
go get -u github.com/stretchr/testify
go get -u github.com/xeipuuv/gojsonschema
go get -u github.com/ipfs/iptb
...
...
./scripts/install-rust-proofs.sh
using precompiled rust-proofs
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 5685 100 5685 0 0 4300 0 0:00:01 0:00:01 --:--:-- 4297
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:06 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:07 --:--:-- 0
./scripts/install-bls-signatures.sh
using local bls-signatures
~/Workspace/go/src/github.com/filecoin-project/go-filecoin/bls-signatures/bls-signatures ~/Workspace/go/src/github.com/filecoin-project/go-filecoin
cargo 1.32.0-nightly (5e85ba14a 2018-12-02)
Updating crates.io index
Updating git repository `https://github.com/dignifiedquire/pairing`
Finished release [optimized] target(s) in 0.15s
~/Workspace/go/src/github.com/filecoin-project/go-filecoin
./proofs/bin/paramcache
Feb 16 13:00:57.558 INFO parameter set identifier for cache: layered_drgporep::PublicParams{ drg_porep_identifier: drgporep::PublicParams{graph: zigzag_graph::ZigZagGraph{expansion_degree: 8 base_graph: drgraph::BucketGraph{size: 32; degree: 5} }; sloth_iter: 0}, challenges: Tapered { layers: 4, count: 2, taper: 0.3333333333333333, taper_layers: 2 } }, target: params, place: storage-proofs/src/parameter_cache.rs:54 storage_proofs::parameter_cache, root: storage-proofs
Feb 16 13:00:57.558 INFO checking cache_path: "/tmp/filecoin-proof-parameters/v9-zigzag-proof-of-replication-f8b6b5b4f1015da3984944b4aef229b63ce950f65c7f41055a995718a452204d", target: params, place: storage-proofs/src/parameter_cache.rs:83 storage_proofs::parameter_cache, root: storage-proofs
Feb 16 13:00:57.558 INFO reading groth params from cache: "/tmp/filecoin-proof-parameters/v9-zigzag-proof-of-replication-f8b6b5b4f1015da3984944b4aef229b63ce950f65c7f41055a995718a452204d", target: params, place: storage-proofs/src/parameter_cache.rs:126 storage_proofs::parameter_cache, root: storage-proofs
Feb 16 13:01:04.585 INFO groth_parameter_bytes: 770902584, target: stats, place: storage-proofs/src/parameter_cache.rs:131 storage_proofs::parameter_cache, root: storage-proofs
Feb 16 13:01:04.629 INFO parameter set identifier for cache: layered_drgporep::PublicParams{ drg_porep_identifier: drgporep::PublicParams{graph: zigzag_graph::ZigZagGraph{expansion_degree: 8 base_graph: drgraph::BucketGraph{size: 8388608; degree: 5} }; sloth_iter: 0}, challenges: Tapered { layers: 4, count: 2, taper: 0.3333333333333333, taper_layers: 2 } }, target: params, place: storage-proofs/src/parameter_cache.rs:54 storage_proofs::parameter_cache, root: storage-proofs
Feb 16 13:01:04.629 INFO checking cache_path: "/tmp/filecoin-proof-parameters/v9-zigzag-proof-of-replication-52431242c129794fe51d373ae29953f2ff52abd94c78756e318ce45f3e4946d8", target: params, place: storage-proofs/src/parameter_cache.rs:83 storage_proofs::parameter_cache, root: storage-proofs
Feb 16 13:01:04.629 INFO reading groth params from cache: "/tmp/filecoin-proof-parameters/v9-zigzag-proof-of-replication-52431242c129794fe51d373ae29953f2ff52abd94c78756e318ce45f3e4946d8", target: params, place: storage-proofs/src/parameter_cache.rs:126 storage_proofs::parameter_cache, root: storage-proofs
Feb 16 13:01:19.214 INFO groth_parameter_bytes: 1670980536, target: stats, place: storage-proofs/src/parameter_cache.rs:131 storage_proofs::parameter_cache, root: storage-proofs
./scripts/copy-groth-params.sh
/tmp/filecoin-proof-parameters ~/Workspace/go/src/github.com/filecoin-project/go-filecoin
~/Workspace/go/src/github.com/filecoin-project/go-filecoin
编译,安装与测试
确保命令行所在的路径还是 Filecoin 源代码目录下
- 编译
go run ./build/*.go build
如果编译没什么问题,那么就基本成功一半了。
- 安装
go-filecoin
客户端
go run ./build/*.go install
该步骤会直接将 go-filecoin
可执行文件直接安装到 ${GOPATH}/bin
所在的目录
- 测试一下
go run ./build/*.go test
测试一下有没有问题,这个步骤也挺耗时的 ……
如果没有什么问题,那么就准备启动节点,接入测试网吧!
启动节点
- 初始化节点信息
go-filecoin init --devnet-user --genesisfile=http://user.kittyhawk.wtf:8020/genesis.car
-
init
用于初始化,其实也就是根据init
之后的参数来在home
目录创建.filecoin
目录,以及一些文件 -
--devnet-user
指定接入的网络,其实就是设置启动的时候都使用user 测试网
的地址和参数 -
genesisfile=http://user.kittyhawk.wtf:8020/genesis.car
使用的创世区块 DAG 文件
User 测试网
是什么?
这次公开测试,官方主要开放了三种测试网络:
- User,默认使用的测试网,如果你啥也不知道,就用它
- Nightly,主要面向希望为 filecoin 社区贡献的群体,例如提交代码之类的,每天 UTC 6:00 (北京时间 14:00)重启
- Test 主要是给 Infra 团队使用的
初始化后,你可以在 ~/.filecoin
目录看到如下的文件结构,这里有你的身份标识、节点配置,钱包信息等,除非你明确知道你要做什么,否者不要轻易删除。
- 启动
go-filecoin
程序
go-filecoin daemon
启动成功,你应该能看到 My peer ID is
这样的提示,这里的
就是当前这个节点的唯一标识。
接入测试网后,虽然还没有开始挖矿,但已经开始在同步区块了。
如果启动的时候,没有指定在后台运行,那么当前的终端是被占用的,你需要另起一个终端,然后,你可以使用 go-filecoin swarm peers
查看你都连接了哪些节点?
或者使用 go-filecoin ping
看看与其他的节点网络是否通畅:
设置节点名称
如果没有节点名称,默认是以节点的
显示在 https://stats.kittyhawk.wtf/ 网络监控面板上的,这个是可以通过 go-filecoin config heartbeat.nickname "diancun"
修改的,例如:
然后:
首次修改一会儿就可以生效,不需要重启,之后修改要生效则需要等一会儿。还等什么,赶紧用节点名称来向老板表示你有多么热爱工作吧!
篇幅有先,本文先到这里,下一篇,我们讨论如何参与挖矿。
参考
- Filecoin README.md
- Filecoin Wiki: Getting Started
- Install_gcc7_ubuntu_16.04.md
- Devnets
关联目录
- 上一篇 Filecoin 测试版解读系列(一):情人节
- 下一篇 Filecoin 测试版解读系列(三):参与挖矿
或者关注点存科技(
diancunkeji
),小编已经给你准备好了零食,等你来唠!