Filecoin 测试版解读系列(二):启动 Filecoin 节点

昨天早上小编还在睡梦中,就被老板喝醒! “Filecoin 上线了,赶紧进入一级战备状态!”

公司的程序猿小伙伴们,就开始加紧按照官方文档指导,编译好了 Filecoin 客户端 go-filecoin,然后加入了测试网络,不是我们吹,我们绝对有可能是亚洲第一个接入测试网的,嘿嘿嘿!

我们是怎么知道的呢?

https://stats.kittyhawk.wtf/ 是 Filecoin 的 网络状态监控面板,我们用 dcnode (点存节点)作为节点名字接入测试网之后,全亚洲就两个节点,所以,我们有50%的概率是全亚洲第一个接入测试网的,合情合理吧?

Filecoin 测试版解读系列(二):启动 Filecoin 节点_第1张图片
我们第一个!

这个仪表盘很炫酷啊,完全可以通过设置节点名字向全世界对心爱的姑娘表白啊!

是不是已经按捺不住想要试试?!如果你有编程基础,跟着小编一步步来,你也可以连上测试网络!

要求

  • 科学上网
  • Ubuntu 16.04 操作系统(目前支持 MacOS 和 Linux 系统)
  • git
  • 安装 Go v1.11.2 或更高版本的开发环境
  • 安装 Rust v1.31.0 或更高版本的开发环境
  • 安装 gcc v7.4.0或更高版本的开发环境
  • 其他还有一些依赖环境,例如 cargo, pkg-config, clang, gx 等,可以根据自己的实际情况来进行安装和配置。

下载并准备

  1. 从 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
  1. 安装项目依赖环境

此步骤耗时较长,需要耐心等待……

# 确保命令行所在路径是 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 源代码目录下

  1. 编译
go run ./build/*.go build

如果编译没什么问题,那么就基本成功一半了。

  1. 安装 go-filecoin 客户端
go run ./build/*.go install

该步骤会直接将 go-filecoin 可执行文件直接安装到 ${GOPATH}/bin 所在的目录

  1. 测试一下
go run ./build/*.go test

测试一下有没有问题,这个步骤也挺耗时的 ……

如果没有什么问题,那么就准备启动节点,接入测试网吧!

启动节点

  1. 初始化节点信息
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 目录看到如下的文件结构,这里有你的身份标识、节点配置,钱包信息等,除非你明确知道你要做什么,否者不要轻易删除。

Filecoin 测试版解读系列(二):启动 Filecoin 节点_第2张图片
初始化都做了什么

  1. 启动 go-filecoin 程序
go-filecoin daemon

启动成功,你应该能看到 My peer ID is 这样的提示,这里的 就是当前这个节点的唯一标识。

接入测试网后,虽然还没有开始挖矿,但已经开始在同步区块了。

Filecoin 测试版解读系列(二):启动 Filecoin 节点_第3张图片
同步区块

如果启动的时候,没有指定在后台运行,那么当前的终端是被占用的,你需要另起一个终端,然后,你可以使用 go-filecoin swarm peers 查看你都连接了哪些节点?

Filecoin 测试版解读系列(二):启动 Filecoin 节点_第4张图片
都连接了哪些节点?

或者使用 go-filecoin ping 看看与其他的节点网络是否通畅:

Filecoin 测试版解读系列(二):启动 Filecoin 节点_第5张图片
ping-pong

设置节点名称

如果没有节点名称,默认是以节点的 显示在 https://stats.kittyhawk.wtf/ 网络监控面板上的,这个是可以通过 go-filecoin config heartbeat.nickname "diancun" 修改的,例如:

修改节点名称

然后:

Filecoin 测试版解读系列(二):启动 Filecoin 节点_第6张图片
成功修改节点名称

首次修改一会儿就可以生效,不需要重启,之后修改要生效则需要等一会儿。还等什么,赶紧用节点名称来向老板表示你有多么热爱工作吧!

篇幅有先,本文先到这里,下一篇,我们讨论如何参与挖矿。

参考

  • Filecoin README.md
  • Filecoin Wiki: Getting Started
  • Install_gcc7_ubuntu_16.04.md
  • Devnets

关联目录

  • 上一篇 Filecoin 测试版解读系列(一):情人节
  • 下一篇 Filecoin 测试版解读系列(三):参与挖矿

或者关注点存科技(diancunkeji),小编已经给你准备好了零食,等你来唠!

Filecoin 测试版解读系列(二):启动 Filecoin 节点_第7张图片
杭州点存科技

你可能感兴趣的:(Filecoin 测试版解读系列(二):启动 Filecoin 节点)