filecoin测试网节点,需要钱包地址有虚拟FIL,才能创建矿工,才能上传数据,虚拟FIL需要到官方水龙头网站获取http://user.kittyhawk.wtf:9797/,每一小时可获取一次,每次获取耗时10分钟。获取代币实际是一种转账,是``这个地址,向你的账户转账,数额为1000FIL。
然而,目前filecoin网络bug较多,极不稳定,有时几小时不出块,不出块就无法转账,也就无法获取到FIL,所以在向水龙头网站提交钱包地址时,常常遇到发送资金失败的错误
failed to send funds
这种情况只能等到filecoin网络正常出块,才能获取到FIL。
其次,在网络正常的时候,也不一定每次都能获取到FIL,经常在设置等待之后,等了10分钟,等到的是网络超时。
有时候我们工作的时候,无法获取到FIL,而晚上休息的时候,filecoin网络却可能很正常,获取FIL非常快。
所以为了尽可能节省时间,最好通过脚本定时自动获取FIL。
有些filecoin节点能上传几TB的数据,因为他们的账户有几万个FIL,比如有一个账户曾经有9万个FIL,这么多FIL,不可能全都手动去获取,只能定时自动获取。
命令如下,就不解释了
#!/usr/bin/env bash
while [[ true ]]; do
#statements
cd $HOME/filecoin
addr=`./go-filecoin address default`
MESSAGE_CID=`curl -X POST -F "target=${addr}" "http://user.kittyhawk.wtf:9797/tap" | cut -d" " -f4`
echo $MESSAGE_CID
./go-filecoin message wait $MESSAGE_CID
sleep 3700s
done
每隔3700秒,也就是一小时,自动获取一次FIL。
nohup sh getfil.sh &
把脚本放到后台去自动执行,nohup
表示忽略挂起命令,&
表示后台执行。
获取FIL命令
#!/usr/bin/bash
cd $HOME/filecoin
addr=`./go-filecoin address ls|head -n 1`
MESSAGE_CID=`curl -X POST -F "target=${addr}" "http://user.kittyhawk.wtf:9797/tap" | cut -d" " -f4`
echo $MESSAGE_CID
./go-filecoin message wait $MESSAGE_CID
Mac上自带crontab,可以直接使用,Linux系统上需要自己安装,
安装命令
sudo yum install vixie-cron
sudo yum install crontabs
安装完以后开启crontab服务sudo service crond start
查看定时任务crontab -l
,无任务时没有任何输出,有定时任务时,会输出任务列表
编辑任务,输入命令crontab -e
,终端会进入vim编辑器,
0 * * * * ~/getfil.sh
,表示每小时执行一次getfil.sh
脚本,也就是每小时去获取一次FIL。
crontab命令具体用法参考网站https://crontab.guru/every-1-hour。
目前filecoin测试网不稳定,节点经常自动挂机,10月10日晚上有超过150个节点都挂掉了。这种情况正式网上线后也可能会遇到,所以一定要通过脚本,实时监控filecoin节点运行状况,在节点挂掉之后,自动重启
#!/usr/bin/env bash
while [[ true ]]; do
#statements
#获取节点ID
processid=$(lsof -i:3453 | awk NR==2 | awk '{print $2}')
echo $processid
#如果ID长度为0,说明节点挂掉了,则重启节点
if [[ -z $processid ]]; then
#statements
cd $HOME/filecoin
nohup ./go-filecoin daemon &
#等待五分钟,开始挖矿
#sleep 300s
#cd $HOME/filecoin && ./go-filecoin mining start
fi
#每30分钟检测一次
sleep 1800s
done
filecoin占用的固定端口是3453,在初始化节点时可以看到
Swarm listening on: /ip4/127.0.0.1/tcp/6000
Swarm listening on: /ip4/172.19.0.8/tcp/6000
12:58:49.459 INFO chain.stor: start loading chain at tipset: { bafy2bzaceaxemeuwqe3cqvlkim3eliiocn7wywualrakyehziuosxa6k4y5fi }, height: 0 store.go:139
12:58:49.461 INFO chain.stor: finished loading 0 tipsets from { bafy2bzaceaxemeuwqe3cqvlkim3eliiocn7wywualrakyehziuosxa6k4y5fi } store.go:183
API server listening on /ip4/127.0.0.1/tcp/3453
API监听端口为3453,查看3453端口,可以查到go-filecoin的进程ID
[hongkong@VM_0_8_centos ~]$ lsof -i:3453
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
go-fileco 16164 hongkong 24u IPv4 17720673 0t0 TCP VM_0_8_centos:pscupd (LISTEN)
[hongkong@VM_0_8_centos ~]$
每30分钟查看一次3453端口,就可以知道filecoin进程是否挂掉了。
脚本很简单,几分钟就写完了,但是能解放时间,解决很重要的问题。
filecoin节点初始化后,会自动生成两个文件夹,两个文件夹中的数据一样,其中一个是备份。
.filecoin
.filecoin-20191013-125603-v002
里面保存了节点运行的数据,包括节点的配置文件,节点的版本,私钥和钱包数据。
api badger chain config.json deals keystore repo.lock snapshots version wallet
创建矿工成功,开始挖矿后,会自动生成一个名为filecoin-
的文件夹。
里面有两个文件夹,其中是客户端给矿工节点上传的数据,数据不可直接读取,只能通过filecoin 客户端命令,根据订单CID来读取。
seal
文件夹中的数据时已经存储完成,已经密封的数据,staged
文件夹中是正在存储的数据
节点运行数据,也就是filecoin的缓存数据,以及矿工存储的数据,都默认保存在用户目录下,节点部署后不可更改,只能在初始化时指定。
go-filecoin init --sectordir=/home/data/filecoin
使用--sectordir
参数,就可以把矿工存储数据放到/home/data/filecoin
文件夹下。
filecoin测试网bug很多,部署过程中会遇到各种奇葩的error,都有哪些error,如何解决,请继续关注。