在Linux系统上部署filecoin挖矿节点
一、下载官方release包
Linux版下载地址https://github.com/filecoin-proj ... -0.5.6-Linux.tar.gz
下载完成后,解压到home目录下,里面有两个可执行文件
go-filecoin paramcache
1
二、安装依赖软件gcc和glibc-2.18
安装命令
##安装gcc
sudo yum install gcc
##安装glibc
curl -O http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
tar -zxvf glibc-2.18.tar.gz
cd glibc-2.18/
mkdir build
cd build/
../configure --prefix=/usr
make -j 8
sudo make install
1
2
3
4
5
6
7
8
9
10
11
12
安装了gcc之后,才能安装glibc-2.18,有了glibc-2.18,才能运行官方release包里的可执行文件paramcache。
还需要安装jq,用来处理json数据,很方便。当然,用其他命令处理也可以。
安装jq命令
##安装jq
wget http://dl.fedoraproject.org/pub/ ... latest-7.noarch.rpm
sudo rpm -ivh epel-release-latest-7.noarch.rpm
yum repolist
sudo yum install jq
1
2
3
4
5
三、创建扇区
这里根据官方文档操作https://docs.filecoin.io/go-file ... etting-Started.html
先创建临时文件夹,再运行paramcache
mkdir -p /var/tmp/filecoin-proof-parameters
./paramcache
1
2
运行这一步没有任何输出,耗时一小时左右,很消耗CPU。
添加环境变量
export PATH="$(pwd)"PATH
1
四、运行filecoin节点
如果之前部署过,需要删除之前的缓存数据
rm -rf ~/.filecoin
1
初始化节点,指定user网络,和创世文件
go-filecoin init --devnet-user --genesisfile=https://genesis.user.kittyhawk.wtf/genesis.car
1
初始化的输出如下
11:30:18.619 INFO badger: All 2 tables opened in 13ms
logger.go:46
11:30:18.622 INFO badger: Replaying file id: 0 at offset: 142634485
logger.go:46
11:30:19.085 INFO badger: Replay took: 463.007998ms
logger.go:46
1
2
3
4
5
6
7
上面的命令运行几秒后,会自动中断,再以go-filecoin daemon命令重启。
重启后输出如下
My peer ID is QmRG41oWaHC77QgJ4iSBXxg4QY71Rdvhk5jM1nwdmkv6AC
Swarm listening on: /ip4/127.0.0.1/tcp/6000
Swarm listening on: /ip4/172.19.6.8/tcp/6000
11:30:19.163 INFO chain.stor: start loading chain at tipset: { bafy2bzacecyjgho2kkgkihwdxf6lnosx5mc2h2qpm7w4y8cteac4gos2r56b6 }, height: 13371 store.go:138
11:30:56.286 INFO chain.stor: finished loading 13371 tipsets from { bafy2bzacecyjgho2kkgkihwdxf6lnosx5zc2h2qpm6w4y7ctecc4gos2r56b6 } store.go:182
API server listening on /ip4/127.0.0.1/tcp/3453
1
2
3
4
5
6
7
五、为节点取名
重新开启一个终端,运行以下命令,双引号中是你为节点取的名字,也就是昵称。
go-filecoin config heartbeat.nickname "HopesOne"
1
查看节点的昵称
go-filecoin config heartbeat.nickname
1
六、设置心跳
为创世节点发送心跳,让官方仪表盘、浏览器能看到本节点的运行状态。
不要更改这条命令中的节点ID。
go-filecoin config heartbeat.beatTarget "/dns4/backend-stats.kittyhawk.wtf/tcp/8080/ipfs/QmUWmZnpZb6xFryNDeNU7KcJ1Af5oHy7fB9npU67sseEjR"
1
这条命令运行之后,需要手动中断节点,再手动重启
使用control➕C中断节点,也就是kill -2中断进程。
重启节点命令
go-filecoin daemon
1
待节点重启后,就可以在官方仪表盘看到自己的节点了
网址https://stats.kittyhawk.wtf/,输入自己的节点昵称,可以看到节点
七、获取FIL代币
获取代币的网址http://user.kittyhawk.wtf:9797/
将节点的默认地址提交到上述地址,保存好返回的CID,设置等待
export WALLET_ADDR=`go-filecoin address ls`
MESSAGE_CID=`curl -X POST -F "target=${WALLET_ADDR}" "http://user.kittyhawk.wtf:9797/tap" | cut -d" " -f4`
go-filecoin message wait ${MESSAGE_CID}
1
2
3
获取代币,要在节点同步完成后,才能成功获取。如果filecoin的网络状态不佳,比如半小时没有出块,也无法成功获取代币。
获取成功时输出如下
{
"meteredMessage": {
"message": {
"to": "t17ocnqk35s5ggwnwe5xbziz7kf4xlbdgctwbog7q",
"from": "t1jf5zjk2ctym474skuospvpdtfkwf46r6bpusz7q",
"nonce": "846",
"value": "1000",
"method": "",
"params": null
},
"gasPrice": "1",
"gasLimit": "0"
},
"signature": "TkNmQ9fXA4+2USIm5Q5TzHKCc2HPqf2Kca+AViaZFuIPz68sHhzX+HumqH2sH//1O0RBzETQ8sX1M/sYd/gSawA="
}
……………………
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
显示了转账的地址和金额。
查询钱包余额
go-filecoin wallet balance ${WALLET_ADDR}
1
注意事项
注意客户端节点和矿工节点是分开的,客户端节点不能创建矿工,矿工节点不能使用go-filecoin client命令。
节点的默认钱包地址有FIL代币后,才能创建矿工。
客户端节点同样如此,有FIL代币后,才能上传数据。
八、创建矿工
在另一台电脑重新部署一个节点,部署成功并获取到FIL后,在新节点创建矿工。
创建矿工命令
go-filecoin miner create 100 --gas-price=0.001 --gas-limit=300
1
create后面跟的100是抵押的FIL,如果钱包的FIL够多,可以多抵押一点。
gas-price不能大于1,也不能是0,可以设置很小,如0.000000000000000001。
创建矿工耗时比较长,创建成功后,会输出矿工地址,一般t2开头
t2hyy3f54baquoqhugfyn5hwp5cfrt5ml6z2tglfq
1
开始挖矿
go-filecoin mining start
1
查看挖矿状态
go-filecoin mining status
1
九、设置存储价格
go-filecoin miner set-price --gas-price=0.001 --gas-limit=1000 0.000000001 2880
1
gas-price设置成和创建矿工时一样,gas-limit也和矿工的limit一样。
设置成功后返回数据如下
Set price for miner t2hyy3f54baquoqhugfyn5hwp5cfrt5ml6z2tglfq to 0.000000000000000001.
Published ask, cid: bafy2bzaced3cpx3zvbe4goaekgt4rp65ipwaw5s6minggs452vqylxj5o7esm.
Ask confirmed on chain in block: bafy2bzacea4ifxirdfkhfq7hycafaelefd3l2a3imgbdv32yxchy5hli3edy4.
1
2
3
此时,就可以使用客户端节点给该矿工节点上传数据了。
十、上传数据
随便找一个文件,不要超过256M。
export CID=`go-filecoin client import ~/LessonOne.mp4`
1
查看CID
echo $CID
QmXYzArFLEJmA8amuRdj42czXLiXU297KwduDmS7QB3raJ
1
2
上传数据
go-filecoin client propose-storage-deal t2zesnfd6u2ygodduczw5gqaut25al3mdjhbbkvnq $CID 0 2880
1
上传成功输出如下,状态为已接收
State: accepted
Message:
DealID: bafy2bzaceafbpfxmlqjxaquiavgmrmd6c8ergiqr63alb5jqokdlicpsbcrm2
1
2
3
数据上传成功后,可以在客户端节点查看存储状态,根据dealID来查看.
./go-filecoin client query-storage-dealbafy2bzaceafbpfxmlqjxaquiavgmrmd6c8ergiqr63alb5jqokdlicpsbcrm2
Status: complete
Message:
1
2
3
rejected是拒绝,staged是正在存储,complete是已经成功存储。
也可以在矿工节点查看本节点存储了多少订单
go-filecoin deals list --miner
1
输出如下
{
"minerAddress": "t2mpmyigmpopcwguhe2tpdeonoppuht5mtvd2ljcq",
"pieceCid": {
"/": "QmbHmUVAkqZjQXgifDady7m5cYprX1fgtGaTYxUBBTX3At"
},
"proposalCid": {
"/": "zDPWYqFD8U3ktr58iiqWTwzEV3sKyz7SGQjLg1zKS1Mgpo5N2nr1"
},
"state": "staged"
}
1
2
3
4
5
6
7
8
9
10
之后可以根据proposalCid,在矿工节点查看某个订单的具体情况
go-filecoin deals show <proposal-cid>
1
filecoin目前为测试版,运行不是很稳定,部署过程中常常会遇到奇怪的error和bug,一定要有耐心,记录每一种错误,有些问题不能解决的,可以到filecoin的GitHub去提问。QQ76815288
————————————————
D1V1网平台
原
|